Языки информационного обмена



              

Определение сложных типов


Тип элемента называется сложным, если в элемент вложены другие элементы и/или в открывающем теге элемента есть атрибуты.

Сложный тип определяется компонентом complexType, имеющим вид:

<xsd:complexType name="имя типа" >

Определение типа

</xsd:complexType>

Необязательный атрибут name задает имя типа, а в содержимом компонента complexType описываются элементы, входящие в сложный тип, и/или атрибуты открывающего тега.

Определение сложного типа можно разделить на три группы:

  1. определение типа пустого элемента (элемента, не содержащего тела, а содержащего только атрибуты в открывающем теге).

    Каждый атрибут объявляется одним компонентом attribute, например:

    <xsd:complexType name="imageType"> <xsd:attribute name="href" type="xsd:anyURI" /> </xsd:complexType>

  2. определение типа элемента с простым телом (элемента, содержащего тело простого типа и атрибуты в открывающем теге).

    Этот тип отличается от простого типа только наличием атрибутов и определяется компонентом simpleContent. В теле этого компонента должен быть либо компонент restriction, либо компонент extension. Атрибутом base задают тип (простой) тела описываемого элемента.

    В компоненте extension указываются атрибуты открывающего тега описываемого элемента.

    В компоненте restriction, кроме атрибутов, описывается простой тип содержимого элемента и/или фасетки, ограничивающие тип, заданный атрибутом base.

  3. определение типа элемента, содержащего вложенные элементы.

    Если значениями определяемого сложного типа будут элементы, содержащие вложенные элементы, то перед тем, как перечислять их описания, надо выбрать модель группы (model group) вложенных элементов. Дело в том, что вложенные элементы, составляющие определяемый тип, могут появляться или в определенном порядке, или в произвольном порядке, кроме того, можно выбирать только один из перечисленных элементов. Эта возможность и называется моделью группы элементов. Она определяется одним из трех компонентов: sequence, all или choice.




    Содержание  Назад  Вперед