XML スキーマに対して XML ドキュメントを検証しようとしています。
これは私のスキーマです:
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio 2012 Developer Edition (Trial) 10.1.8.4306 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MSG">
<xs:complexType>
<xs:sequence>
<xs:element name="EnTete" type="EnTeteType" />
<xs:element name="OME" type="OMEType" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Type" type="xs:string" use="required" />
<xs:attribute name="Version" type="xs:decimal" use="required" />
</xs:complexType>
</xs:element>
<xs:complexType name="EnTeteType">
<xs:sequence>
<xs:element ref="Source" />
<xs:element ref="Creation" />
</xs:sequence>
</xs:complexType>
<xs:element name="Source">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NEBEFI" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Creation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="12" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="OMEType">
<xs:sequence>
<xs:element ref="Derniere-Modif" />
<xs:element ref="Date-Mesure" />
<xs:element name="Reference" type="ReferenceType" />
<xs:element name="Puissance" type="PuissType" />
<xs:element ref="Total" />
</xs:sequence>
<xs:attribute name="Nom" type="xs:string" use="required" />
</xs:complexType>
<xs:element name="Derniere-Modif" type="xs:string" />
<xs:element name="Date-Mesure">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="14" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="ReferenceType">
<xs:sequence>
<xs:element ref="Nature" />
<xs:element ref="Statut" />
<xs:element ref="Type-Gest" />
<xs:element ref="Gest" />
<xs:element ref="Type-Res" />
<xs:element ref="Nb-h" />
</xs:sequence>
</xs:complexType>
<xs:element name="Nature" type="xs:string" />
<xs:element name="Statut">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
<xs:enumeration value="2" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type-Gest" type="xs:string" />
<xs:element name="Type-Res" type="xs:string" />
<xs:element name="Gest">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Nb-h">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:enumeration value="23" />
<xs:enumeration value="24" />
<xs:enumeration value="25" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Puiss">
<xs:complexType>
<xs:sequence>
<xs:element ref="Val" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Unite" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="Val" type="xs:string" />
<xs:element name="Total">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Unite" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:complexType name="PuissType">
<xs:all>
<xs:element ref="Puiss" />
</xs:all>
</xs:complexType>
</xs:schema>
これは私の XML ドキュメントです。
<?xml version="1.0" encoding="ISO-8859-1"?>
<MSG xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" Type="Publication" Version="1.0">
<EnTete>
<Source>NEBEFI</Source>
<Creation>201208092324</Creation>
</EnTete>
<OME Nom="Effacements RE">
<Derniere-Modif>20120809232419</Derniere-Modif>
<Date-Mesure>20120809000000</Date-Mesure>
<Reference>
<Nature>ACHAT</Nature>
<Statut>2</Statut>
<Type-Gest>RE</Type-Gest>
<Gest>RE_ENEL_RE</Gest>
<Type-Res>D</Type-Res>
<Nb-h>24</Nb-h>
</Reference>
<Puiss Unite="MW">
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
<Val>1.500</Val>
</Puiss>
<Total Unite="MWh">5961</Total>
</OME>
</MSG>
ドキュメントを(Eclipse経由で)検証していると、次のメッセージが表示されます。
有効ではありません。エラー - 18、21 行目: org.xml.sax.SAXParseException; 行番号: 18; 列番号: 21; cvc-complex-type.2.4.a: 要素「Puiss」で始まる無効なコンテンツが見つかりました。「{Puissance}」のいずれかが期待されます。
エラー - 行 69、9: org.xml.sax.SAXParseException; 行番号: 69; 列番号: 9; cvc-complex-type.2.3: タイプのコンテンツ タイプが要素のみであるため、要素 'OME' は文字 [children] を持つことはできません。
エラー - 行 70、7: org.xml.sax.SAXParseException; 行番号: 70; 列番号: 7; cvc-complex-type.2.3: 要素 'MSG' は文字 [children] を持つことはできません。型のコンテンツ タイプが要素のみであるためです。
このメッセージは意味がなく、Web で解決策を検索するのは非常に困難 (不可能?) です。