3.8.2. Configuration-based type setup
3.8.2.1. XSD definition
<xs:complexType name="type">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="attributes" type="attributes" minOccurs="0" />
<xs:element name="group-item" type="group-item" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
<xs:attribute name="code" type="xs:string" use="required" />
<xs:attribute name="label" type="xs:string" use="required" />
<xs:attribute name="description" type="xs:string" use="optional" />
<xs:attribute name="visibility" type="visibility" use="optional" />
<xs:attribute name="geometryType" type="geometryType" use="required" />
<xs:attribute name="isGeometryEditable" type="xs:boolean" />
<xs:attribute name="isGroup" type="xs:boolean" />
</xs:complexType>3.8.2.2. Attribute XSD definition
<!-- Common Attributes of all attributes -->
<xs:attributeGroup name="attribute">
<!-- name: The name of the attribute -->
<xs:attribute name="code" type="xs:string" use="required" />
<!-- label:The display label of the attribute -->
<xs:attribute name="label" type="xs:string" />
<!-- description: A description of the purpose of attribute -->
<xs:attribute name="description" type="xs:string" />
</xs:attributeGroup>
<xs:complexType name="text">
<xs:attributeGroup ref="attribute" />
</xs:complexType>
<xs:complexType name="term">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="option">
<xs:complexType>
<xs:attribute name="code" type="xs:string" use="required" />
<!-- label:The display label of the attribute -->
<xs:attribute name="label" type="xs:string" />
<!-- description: A description of the purpose of attribute -->
<xs:attribute name="description" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="attribute" />
</xs:complexType>
<xs:complexType name="classification">
<xs:attributeGroup ref="attributeClassification" />
</xs:complexType>
<xs:attributeGroup name="attributeClassification">
<xs:attributeGroup ref="attribute" />
<xs:attribute name="root" type="xs:string" use="required" />
<xs:attribute name="classificationType" type="xs:string" use="required" />
</xs:attributeGroup>
<xs:attributeGroup name="attributeDec">
<xs:attributeGroup ref="attribute" />
<xs:attribute name="precision" type="xs:integer" />
<xs:attribute name="scale" type="xs:integer" />
</xs:attributeGroup>
<!-- Represents a Boolean object in the database -->
<xs:complexType name="boolean">
<xs:attributeGroup ref="attribute" />
</xs:complexType>
<!-- Represents a Double object in the database -->
<xs:complexType name="integer">
<xs:attributeGroup ref="attribute" />
</xs:complexType>
<!-- Represents a Decimal object in the database -->
<xs:complexType name="decimal">
<xs:attributeGroup ref="attributeDec" />
</xs:complexType>
<!-- Represents a Date object in the database -->
<xs:complexType name="date">
<xs:attributeGroup ref="attribute" />
</xs:complexType>Example:
Last updated