Поделиться через


Элемент <xsd:complexType>

Объявляет сложный тип, определяющий набор атрибутов и содержимое элемента.

<complexType
  abstract = Boolean : false
  block = (#all | List of (extension | restriction))
  final = (#all | List of (extension | restriction))
  id = ID
  mixed = Boolean : false
  name = NCName
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleContent | complexContent | ((group | all |
choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>

Атрибуты

  • abstract
    Индикатор, указывающий, может ли в экземпляре документа использоваться сложный тип. Если значение равно true, элемент не может использовать сложный тип напрямую, но должен использовать сложный тип, являющийся производным от данного сложного типа. Значение по умолчанию — false.

    Необязательный.

  • block
    Тип наследования. Атрибут block не позволяет использовать сложный тип с указанным типом наследования вместо данного сложного типа. Значение может содержать строку #all или подмножество, состоящее из расширения или ограничения. Атрибут block используется только в ходе проверки, если экземпляр документа переопределяет нормальный тип элемента с помощью атрибута schema-instance:type. Атрибут block отвечает за предотвращение выбора элементами таких сложных типов, которые определены в расширении или ограничении для замены исходного типа, указанного для элемента.

    extension

    Предотвращает использование вместо этого сложного типа сложных типов, унаследованных по расширению.

    restriction

    Предотвращает использование вместо этого сложного типа сложных типов, унаследованных по ограничению.

    #all

    Предотвращает использование вместо этого сложного типа всех унаследованных сложных типов.

    Необязательный.

  • final
    Тип наследования. Атрибут final предотвращает наследование заданного типа для данного элемента complexType. Значение может содержать строку #all или список, состоящий из строк extension и restriction.

    extension

    Предотвращает наследование расширением.

    restriction

    Предотвращает наследование ограничением.

    #all

    Предотвращает все наследования (как расширением, так и ограничением).

    Необязательный.

  • id
    Идентификатор данного элемента. Значение id должно иметь тип ID и быть уникальным в пределах документа, содержащего этот элемент.

    Необязательный.

  • mixed
    Индикатор, указывающий, допускается ли появление символьных данных между дочерними элементами этого типа. Значение по умолчанию — false.

    Если элемент simpleContent является дочерним, использование атрибута mixed недопустимо.

    Если элемент complexContent является дочерним, этот атрибут mixed можно переопределить с помощью атрибута mixed, содержащегося в элементе complexContent.

    Необязательный.

  • name
    Имя типа. Имя не должно содержать двоеточий (NCName), как определено в спецификации пространств имен XML.

    Обязательный атрибут, если содержащим является элемент schema. В противном случае запрещен.

    Если указано, имя должно быть уникальным по всем элементам simpleType и complexType.

    Необязательный.

Сведения об элементе

Количество вхождений

Неограниченное в пределах схемы, один раз в каждом элементе.

Родительские элементы

element, redefine, schema

Содержимое

annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute

Замечания

Сложный тип является основным определением типа для элементов, которые могут содержать атрибуты и другие элементы. Элемент можно объявить с атрибутом type, который ссылается на элемент complexType, определяющий структуру, содержимое и атрибуты этого элемента (в своем атрибуте type элемент может также ссылаться на элемент simpleType).

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

Элемент Описание

simpleContent

Этот сложный тип содержит символьные данные либо элемент simpleType в качестве содержимого и не содержит элементов, но может содержать атрибуты.

complexContent

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

group

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

sequence

Сложный тип, содержащий элементы, определенные в указанной последовательности.

choice

Сложный тип, допускающий использование одного из элементов, указанных элементом choice.

all

Сложный тип, допускающий однократное отображение любых или всех элементов, указанных в элементе all.

Если элемент group, sequence, choice или all указан как дочерний элемент, можно дополнительно объявить атрибуты элемента complexType с помощью следующих элементов.

Элемент Описание

attribute

Сложный тип, содержащий указанный атрибут.

attributeGroup

Сложный тип, содержащий атрибуты, определенные в ссылочной группе attributeGroup.

anyAttribute

Сложный тип, содержащий любой атрибут из указанных пространств имен.

Можно использовать любое числовое значение элементов attribute или attributeGroup. Также можно использовать один экземпляр элемента anyAttribute.

Если указаны элементы group, sequence, choice или all, то элементы отобразятся в следующем порядке.

  1. group | sequence | choice | all

  2. attribute | attributeGroup

  3. anyAttribute

Примеры

В следующем примере показан сложный тип, содержащий простой тип (decimal) с атрибутом и объявлением элемента, которое использует сложный тип.

В следующем примере показан экземпляр элемента myShoeSize в XML-документе.

В следующем примере показан элемент myShoeSize, в пределах которого анонимно определен элемент complexType (обратите внимание на отсутствие атрибута name).

См. также

Справочник

Справочник по схемам XML (XSD)
Элементы схемы XML