上記の例で示したように<xsd:element />
、の直接の子として持つことは許可されていません<xsd:complexType />
(w3schools.comのリファレンスを参照)。前の質問の例を考えると、あなたがやりたいことは次のようなスキーマで達成できると思います。
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="date" type="xsd:string" />
<xsd:element name="responseTime" type="xsd:decimal" />
<xsd:element name="employee" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
これにより、サンプルコードが検証されます。
<?xml version="1.0"?>
<root>
<date> 9:51 AM 10/10/2012 </date>
<responseTime> 1.20</responseTime>
<employee>
<name> Mohammad</name>
</employee>
<employee>
<name> Ali</name>
</employee>
<employee>
<name> Mostafa</name>
</employee>
<employee>
<name> Mahmoud</name>
</employee>
</root>
<date />
ただし、タイプをに変更することをお勧めしxsd:date
ます。