<Complete Reference XML - схемы
Определение и использование
Элемент ComplexType определяет сложный тип. Сложный тип элемент представляет собой XML-элемент, содержащий другие элементы и / или атрибутов.
Элемент информации
- Parent elements: элемент, переопределяют, схемы
Синтаксис
<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>
(Знак? Заявляет, что элемент может появиться ноль или один раз, а знак * заявляет, что элемент может появиться ноль или более раз внутри элемента ComplexType)
Атрибут | Описание |
---|---|
id | Необязательный. Указывает уникальный идентификатор для элемента |
name | Необязательный. Задает имя для элемента |
abstract | Необязательный. Указывает, можно ли использовать сложный тип в документе. Правда указывает на то, что элемент не может использовать этот сложный тип напрямую, но необходимо использовать комплексный тип, производный от этого сложного типа. По умолчанию является ложным |
mixed | Необязательный. Определяет данные символов, разрешено ли появляться между дочерними элементами этого элемента ComplexType. По умолчанию является ложным. Если simpleContent элемент является дочерним элементом, то mixed атрибут не допускается! |
block | Необязательный. Предотвращает сложный тип, который имеет заданный тип вывода от используемого вместо этого сложного типа. Это значение может содержать #All или список, который является подмножеством расширения или ограничения:
|
final | Необязательный. Предотвращает заданный тип вывода этого сложного элемента типа. Может содержать #All или список, который является подмножеством расширения или ограничения.
|
any attributes | Необязательный. Определяет любые другие атрибуты с пространством имен без схемы |
Пример 1
В следующем примере есть элемент с именем "note" , который является сложным типом:
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Пример 2
Следующий пример имеет сложный тип, "fullpersoninfo" , который является производным от другого сложного типа, "personinfo" , расширяя унаследованное тип с тремя дополнительными элементами (address, city and country) :
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
В приведенном выше примере "employee" элемент должен содержать, в последовательности, следующие элементы: "firstname" , "lastname" , "address" , "city" и "country" .
<Complete Reference XML - схемы