Если у вас есть два тега с одинаковыми именами в XML-документе, вам нужно использовать две разные схемы для каждого тега или вы можете использовать 1 схему, будет ли она проверяться? ниже приведен пример, в котором используются 2 схемы, но я использую только 1 схему, какая из них правильная?
XML-документ, использующий 2 схемы
<?xml version="1.0" encoding="ISO-8859-1"?>
<receipt xmlns: cu="http://www.mydomain.com/customer"
xmlns: pr="http://www.mydomain.com/product"> <!--two schema's being referenced-->
<cu:customer> <!--Using Schema 1-->
<cu:name> Michael Johnson </cu:name>
<cu:areaCode> BH2 3XY </cu:areaCode>
</cu:customer>
<products>
<pr:product> <!--Using Schema 2-->
<pr:name>RAM</pr:name>
<pr:quantity>100</pr:quantity>
</pr:product>
</products>
</receipt>
Мой XML-документ с использованием 1 схемы (имеет 2 тега с одинаковым именем, называемым элементом)
<?xml version=" 1.0" encoding="UTF-8"?>
<shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>John Smith</orderperson>
<shipto>
<name>Ola Nordmann</name>
<address>Langgt 23</address>
<city>4000 Stavanger</city>
<country>Norway</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
</shiporder>
XML-схема:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="shiporder">
<xs:complexType >
<xs:sequence>
<xs:element type="xs:string" name="orderperson"/>
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="address"/>
<xs:element type="xs:string" name="city"/>
<xs:element type="xs:string" name="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string" minOccurs="0"/> <!--optional-->
<xs:element name="quantity" type="xs:integer"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="orderid" type="xs:int" /> <!--must be required-->
</xs:complexType>
</xs:element>