Main Page
Modules
Namespaces
Classes
Files
File List
File Members
Extension.h
Go to the documentation of this file.
1
/* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2
3
This file is part of the TerraLib - a Framework for building GIS enabled applications.
4
5
TerraLib is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License,
8
or (at your option) any later version.
9
10
TerraLib is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU General Public License for more details.
14
15
You should have received a copy of the GNU General Public License
16
along with TerraLib. See COPYING. If not, write to
17
TerraLib Team at <terralib-team@terralib.org>.
18
*/
19
20
/*!
21
\file Extension.h
22
23
\brief This class models an extension element that can be used to extend an existing simpleType or complexType element.
24
*/
25
26
#ifndef __TERRALIB_XSD_INTERNAL_EXTENSION_H
27
#define __TERRALIB_XSD_INTERNAL_EXTENSION_H
28
29
// TerraLib
30
#include "
Annotated.h
"
31
#include "
Identifiable.h
"
32
#include "
TypeDerivation.h
"
33
34
// Boost
35
#include <boost/ptr_container/ptr_vector.hpp>
36
37
namespace
te
38
{
39
namespace
xsd
40
{
41
// Forward declarations
42
class
AbstractAttribute;
43
class
AnyAttribute;
44
class
Content;
45
class
QName;
46
47
/*!
48
\class Extension
49
50
\brief This class models an extension element that can be used to extend an existing simpleType or complexType element.
51
*/
52
class
TEXSDEXPORT
Extension
:
public
TypeDerivation
,
public
Identifiable
,
public
Annotated
53
{
54
public
:
55
56
/*!
57
\brief Constructor.
58
59
\param id It specifies a unique ID for the element. It can be a NULL value.
60
\param base It specifies the name of a built-in data type, a SimpleType element or a ComplexType element. It can not be a NULL value.
61
*/
62
Extension
(
QName
* base = 0,
Annotation
* ann = 0, std::string*
id
= 0);
63
64
/*!
65
\brief Copy constructor.
66
67
\param rhs Right-hand-side object.
68
69
\todo Implement!
70
*/
71
Extension
(
const
Extension
& rhs);
72
73
/*! \brief Destructor. */
74
~
Extension
();
75
76
/*!
77
\brief Assignment operator.
78
79
\param rhs Right-hand-side object.
80
81
\return A reference to this object.
82
83
\todo Implement!
84
*/
85
Extension
& operator=(
const
Extension
& rhs);
86
87
/*!
88
\brief It returns the name of a built-in data type, simple type or complex type that will be extended.
89
90
\return The name of a built-in data type, simple type or complex type that will be extended.
91
*/
92
QName
* getBase()
const
;
93
94
/*!
95
\brief It returns the content of Extension element.
96
97
\return The content of this Extension element.
98
*/
99
Content
* getContent()
const
;
100
101
/*!
102
\brief It returns the list of attributes of this Extension element.
103
104
\return The list of attributes.
105
*/
106
const
boost::ptr_vector<AbstractAttribute>& getAttributes()
const
;
107
108
/*!
109
\brief It returns the anyAttribute defined on this Extension element.
110
111
\return The anyAttribute.
112
*/
113
AnyAttribute
* getAnyAttribute()
const
;
114
115
/*!
116
\brief It sets the name of a built-in data type, simple type or complex type that will be extended.
117
118
\param base The name of a built-in data type, simple type or complex type that will be extended.
119
120
\note The Extension object will take the ownership of the given pointer.
121
*/
122
void
setBase(
QName
* base);
123
124
/*!
125
\brief It sets the content of this Extension element. It can be one of: group | all | choice | sequence.
126
127
\param c The appropriate content to Extension element.
128
129
\note The Extension object will take the ownership of the given pointer.
130
*/
131
void
setContent(
Content
* c);
132
133
/*!
134
\brief It adds an attribute to this Extension element.
135
136
\param a The attribute that will be added.
137
138
\note The Extension object will take the ownership of the given pointer.
139
*/
140
void
addAttribute(
AbstractAttribute
* a);
141
142
/*!
143
\brief It sets the anyAttribute to Extension element.
144
145
\param a It specifies the anyAttribute.
146
147
\note The Extension object will take the ownership of the given pointer.
148
*/
149
void
setAnyAttribute(
AnyAttribute
* a);
150
151
// TODO
152
TypeDerivation
*
clone
()
const
{
return
0; }
153
154
private
:
155
156
QName
*
m_base
;
//!< It specifies the name of a built-in data type, a SimpleType element or a ComplexType element. (Required)
157
Content
*
m_content
;
//!< It can be: group | all | choice | sequence. (Optional)
158
boost::ptr_vector<AbstractAttribute>
m_attributeVec
;
//!< The list of attributes (attributes and attributeGroups). (Optional)
159
AnyAttribute
*
m_anyAttr
;
//!< The anyAttribute element. (Optional)
160
};
161
162
}
// end namespace xsd
163
}
// end namespace te
164
165
#endif // __TERRALIB_XSD_INTERNAL_EXTENSION_H
te::xsd::Extension::m_base
QName * m_base
It specifies the name of a built-in data type, a SimpleType element or a ComplexType element...
Definition:
Extension.h:156
te::xsd::Extension::m_anyAttr
AnyAttribute * m_anyAttr
The anyAttribute element. (Optional)
Definition:
Extension.h:159
te::xsd::Annotated
A base class for XSD classes that may allow annotation.
Definition:
Annotated.h:49
Annotated.h
A base class for XSD classes that may allow annotation.
te::xsd::Content
A base class for elements that are not definitions nor declarations. This class is just for creating ...
Definition:
Content.h:43
TypeDerivation.h
SimpleType, SimpleContent and ComplexContent can be used to extend other types. This is just a base c...
te::xsd::AnyAttribute
It models an XML anyAttribute element.
Definition:
AnyAttribute.h:49
te::xsd::AbstractAttribute
This is the base class for XML Schema Attribute classes.
Definition:
AbstractAttribute.h:41
te::xsd::Extension::m_content
Content * m_content
It can be: group | all | choice | sequence. (Optional)
Definition:
Extension.h:157
te::xsd::Identifiable
A base class for XSD classes that must provide a unique ID property.
Definition:
Identifiable.h:46
te
URI C++ Library.
Definition:
AddressGeocodingOp.h:51
te::xsd::TypeDerivation
SimpleType, SimpleContent and ComplexContent can be extend other types. This is just a base class for...
Definition:
TypeDerivation.h:41
Identifiable.h
A base class for XSD classes that must provide a unique ID property.
TEXSDEXPORT
#define TEXSDEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition:
Config.h:57
te::xsd::Extension
This class models an extension element that can be used to extend an existing simpleType or complexTy...
Definition:
Extension.h:52
te::xsd::QName
A class to be used to represent XML qualified names.
Definition:
QName.h:49
te::xsd::Extension::clone
TypeDerivation * clone() const
Definition:
Extension.h:152
te::xsd::Extension::m_attributeVec
boost::ptr_vector< AbstractAttribute > m_attributeVec
The list of attributes (attributes and attributeGroups). (Optional)
Definition:
Extension.h:158
te::xsd::Annotation
A class that models a XSD annotation element.
Definition:
Annotation.h:55
git_master
terralib5
src
terralib
xsd
Extension.h
Generated on Mon Feb 29 2016 13:55:43 for TerraLib by
1.8.9.1