0

私は以下のようなxsdを持っています

    <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.example.com/api/2.2" elementFormDefault="qualified" version="1.0" xml:lang="EN" targetNamespace="http://www.example.com/api/2.2">
  <xs:element name="configuration">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="domain" type="domain"/> <!-- changed here -->
      </xs:sequence>
      <xs:attribute name="timestamp" type="xs:normalizedString" use="optional"/>
      <xs:attribute name="version" type="xs:token" fixed="2.2"/>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="domain"> <!-- and here -->
    <xs:sequence>
      <xs:any minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="account" type="uid" use="required">
      </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="uid">
    <xs:restriction base="xs:string">
      <xs:length value="36"/>
      <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

1 つのオンライン xsd to xml ジェネレーターで生成された xml は次のようになります。

  <?xml version="1.0" encoding="utf-8"?>
    <configuration timestamp="str111" version="2.2">
    <domain account="str123400000000000000000000000000000" />
</configuration>

しかし、javax.xml.validation.Validator で検証しようとすると、次の例外がスローされます

Error: cvc-elt.1: Cannot find the declaration of element 'configuration'.; ;130503155804008299000002; ; WebContainer : 2;

この

 <COMMONS_ERROR>; ErrorThe Exception occured at Line No.1 Column  No.107; ; 130503155804008299000002; ; WebContainer : 2; 

上記のxsdの正しいxmlパターンを見つけるために私を助けてください...

4

1 に答える 1

0

スキーマは名前空間内の要素を定義しますhttp://www.example.com/api/2.2

ジェネレーターはそれを無視したようです。

xml に名前空間宣言xmlns="http://www.example.com/api/2.2"を追加するconfigurationと、すべてがうまくいきます。

于 2013-05-03T11:02:16.700 に答える