Определение типа элемента с простым телом

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

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

<xsd: complехTуре name="calcResultType">

<xsd:simpleContent>

<xsd: extension base="xsd:decimal">

<xsd;attribute name=”unit" type="xsd:string" />

<xsd: attribute name=”precision”

type="xsd:nonNegativeInteger" />

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

Эту конструкцию можно описать словами так: "Определяется тип calcResultType элемента, тело которого содержит значения встроенного простого типа xsd: decimal. Простой тип расширяется тем. что к нему до­бавляются атрибуты unit и precision".

Если в схеме описать элемент <result> этого типа следующим образом: <xsd:element name="result" type="calcResultType" />

то в документе XML можно написать

<result unit="cM" precision="2">123.25</result>

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

<xsd: complexType name="calcResultType">

<xsd: simpleContent>

<xsd: restriction base="xsd:decimal">

<xsd:totalDigits value="8" />

<xsd:attribute name="unit" type="xsd:string" />

<xsd:attribute name="precision”

type="xsd:nonNegativeInteger" />

</xsd:restriction>

</xsd:simpleContent>

</xsd:complexType>


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: