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