элемент XML Schema
определение и использование
element определяет элемент.
информация о элементе
количество出现 | количество элементов, определённых в схеме. |
родительский элемент | schema、choice、all、sequence |
содержимое | simpleType、complexType、key、keyref、unique |
грамматика
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger nillable=true|false abstract=true|false block=(#all|список (расширение|ограничение)) final=(#all|список (расширение|ограничение)) любые атрибуты > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(? Знак вопроса означает, что элемент может出现 нулевой или один раз, * знак означает, что элемент может出现 нулевой или несколько раз.).
Атрибуты
id
Выборочно. Определяет уникальный ID элемента.
name
Выборочно. Определяет имя элемента. Если родительский элемент является элементом schema, то этот атрибут является обязательным.
ref
Выборочно. Ссылка на другой элемент. Атрибут ref может содержать префикс имени пространства имен. Если родительский элемент является элементом schema, то этот атрибут не используется.
type
Выборочно. Определяет имя встроенного типа данных или имя элементов simpleType или complexType.
substitutionGroup
Выборочно. Определяет имя элемента, который может заменить этот элемент. Этот элемент должен иметь такой же тип или быть派яным от указанного типа элемента.
Если родительский элемент не является элементом schema, то этот атрибут не может быть использован.
default
Выборочно. Устанавливает значение по умолчанию элемента (используется только когда содержимое элемента является простым типом или textOnly).
fixed
Выборочно. Устанавливает фиксированное значение элемента (используется только когда содержимое элемента является простым типом или textOnly).
form
Выборочно. Форма элемента. Значением по умолчанию является значение атрибута elementFormDefault элемента schema, содержащего этот атрибут. Значением может быть одна из следующих строк: "qualified" или "unqualified".
Если родительский элемент является элементом schema, то использовать этот атрибут нельзя.
- Если это значение равно "unqualified", то элемент не ограничивается префиксом имени пространства имен.
- Если это значение равно "qualified", то элемент должен быть ограничен префиксом имени пространства имен.
maxOccurs
Выборочно. Определяет максимальное количество的出现次数 element элемента в родительском элементе. Значение может быть любым целым числом, равным или большим нуля. Если не хотите устанавливать никаких ограничений на максимальное количество, используйте строку "unbounded". По умолчанию значение равно 1.
Если родительский элемент является элементом schema, то использовать этот атрибут нельзя.
minOccurs
Выборочно. Определяет минимальное количество раз, которое элемент может появляться в родительском элементе. Значение может быть целым числом, не менее нуля. Значение по умолчанию 1.
Если родительский элемент является элементом schema, то использовать этот атрибут нельзя.
nillable
Выборочно. Указывает, можно ли присвоить явное нулевое значение данному элементу. Это относится к содержимому элемента и не является атрибутом элемента. Значение по умолчанию false.
Если nillable установлено в true, то экземпляр элемента может установить атрибут nil в true. Атрибут nil определен как часть XML схемы именованного пространства.
Например, следующий раздел определяет единичный элемент и устанавливает nillable в true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
Следующий раздел использует этот элемент и имеет явное нулевое значение (атрибут nil установлен в true).
<myDate xsi:nil="true"></myDate>
abstract
Выборочно. Указывает, может ли элемент использоваться в документе实例. Если значение true, то элемент не может出现在 документе实例. Напротив, элементы с ограниченным именем (QName) substitutionGroup, содержащим это имя, должны出现在 этом месте. Множественные элементы могут ссылаться на этот элемент в атрибуте substitutionGroup. Значение по умолчанию false.
block
Выборочно. Производный тип. Атрибут block предотвращает использование элементов с указанным производным типом для замены данного элемента. Значение может содержать #all или список, который является подмножеством расширений, ограничений или замен.
- extension - предотвращает использование производных элементов для замены данного элемента через расширение.
- restriction - предотвращает использование производных элементов для замены данного элемента через ограничение.
- substitution - предотвращает использование производных элементов для замены данного элемента через замену.
- #all - предотвращает использование всех производных элементов для замены данного элемента.
final
Выборочно. Установите значение по умолчанию для атрибута final элемента element. Если родительский элемент не является элементом schema, то использовать этот атрибут нельзя. Значение может содержать #all или список, который является подмножеством расширений или ограничений:
- extension - предотвращает использование производных элементов через расширение для замены данного элемента
- restriction - предотвращает использование производных элементов через ограничения для замены данного элемента
- #all - предотвращает использование всех производных элементов для замены данного элемента
любые атрибуты
Опционально. Определяет любые другие атрибуты с non-schema命名空间.
Пример
Пример 1
Следующий пример является схемой, которая содержит четыре простых элемента: "fname", "lname", "age" и "dateborn", типы которых являются string, nonNegativeInteger и date:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema>
Пример 2
Следующий пример является схемой, которая содержит элемент сложного типа "note". Элемент "note" содержит четыре простых элемента: "to", "from", "heading" и "body":
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <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> </xs:schema>
Пример 3
Этот пример аналогичен примеру 2, но в этом примере мы выбрали использовать атрибут ref для ссылки на имя элемента:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element ref="to"/> <xs:element ref="from"/> <xs:element ref="heading"/> <xs:element ref="body"/> </xs:sequence> </xs:complexType> </xs:element> <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:schema>