Элемент <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.
Необязательный.
Сведения об элементе
Количество вхождений |
Неограниченное в пределах схемы, один раз в каждом элементе. |
Родительские элементы |
|
Содержимое |
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, то элементы отобразятся в следующем порядке.
group | sequence | choice | all
attribute | attributeGroup
anyAttribute
Примеры
В следующем примере показан сложный тип, содержащий простой тип (decimal) с атрибутом и объявлением элемента, которое использует сложный тип.
В следующем примере показан экземпляр элемента myShoeSize в XML-документе.
В следующем примере показан элемент myShoeSize, в пределах которого анонимно определен элемент complexType (обратите внимание на отсутствие атрибута name).