[英]XML - Schema Element with attribute and sequence of sub-elements
我有一个XML模式,如下所示:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="labels">
<xs:complexType>
<xs:sequence>
<xs:element name="label" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="language" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="value" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<labels>
可以具有许多<label>
元素,而<label>
元素可以具有许多<language>
元素。 现在,我需要的是<label>
元素具有一个称为“ identifier”的唯一属性。
我想要一个这样的XML结构:
<?xml version="1.0" encoding="UTF-8"?>
<labels
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='labels.xsd'>
<label identifier="class_contact">
<language value="english">Contacts</language>
<language value="afrikaans">Kontakte</language>
</label>
</labels>
好的,我将其更改为此名称,现在它允许使用标识符属性,但不会强制其唯一。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="labels">
<xs:complexType>
<xs:sequence>
<xs:element name="label" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="language" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="value" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="identifier" type="xs:string" />
</xs:complexType>
<xs:unique name="UniqueLabelLanguage">
<xs:selector xpath="language" />
<xs:field xpath="@value" />
</xs:unique>
<xs:unique name="UniqueLabelIdentifier">
<xs:selector xpath="label" />
<xs:field xpath="@identifier" />
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="labels">
<xs:complexType>
<xs:sequence>
<xs:element name="label" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="language" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="value" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="identifier" type="xs:string" />
</xs:complexType>
<xs:unique name="UniqueLabelLanguage">
<xs:selector xpath="language" />
<xs:field xpath="@value" />
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="UniqueLabelIdentifier">
<xs:selector xpath="label" />
<xs:field xpath="@identifier" />
</xs:unique>
</xs:element>
</xs:schema>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.