2014-12-09 68 views
0

我是XML Schema的新手。所以我真的不知道發生了什麼。我遵循教程並創建了一個有效的XML Schema。但它找不到聲明。這很奇怪。XML架構:找不到元素'users'的聲明

XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<users> 
<user><id>1</id><username>thomas01</username><display_name>Thomas Müntzer</display_name><birthday>04.12.1956</birthday><email_address>[email protected]</email_address><quota>524288000</quota><quota_used>14727606</quota_used></user> 
</users> 

XML模式:

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.infbox_normal.com" xmlns="http://www.infbox_normal.com" elementFormDefault="qualified"> 

    <xs:element name="users"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="user"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="id" type="xs:integer"/> 
          <xs:element name="username" type="xs:string"/> 
          <xs:element name="display_name" type="xs:string"/> 
          <xs:element name="birthday" type="xs:string"/> 
          <xs:element name="email_address"> 
           <xs:simpleType> 
            <xs:restriction base="xs:string"> 
             <xs:pattern value="/^\[email protected]\S+\.\S+$/"/> 
            </xs:restriction> 
           </xs:simpleType> 
          </xs:element> 
          <xs:element name="quote" type="xs:integer"/> 
          <xs:element name="quote_used" type="xs:integer"/> 
         </xs:sequence> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

    </xs:schema> 

錯誤MEG:

Error - Line 2, 8: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 8; cvc-elt.1: Cannot find the declaration of element 'users'.

我用this驗證XML架構。

+0

您的XSD缺少根「模式」元素。 – svinja 2014-12-09 14:18:54

+0

@svinja只是格式不好,元素就在那裏。 – lexicore 2014-12-09 14:21:22

回答

1

您的XSD定義了一個目標名稱空間http://www.infbox_normal.com,但是您的XML沒有名稱空間。

+0

但我找到一個相關的問題。你怎麼能解釋,在這個例子中,可以通過相同的測試? http://stackoverflow.com/questions/20949846/xml-validation-against-xsd-in-php-libxml在那個例子中,在那個經過驗證的xml文件中沒有命名空間。 – 2014-12-09 14:26:36

+0

@JACKM架構中也沒有'targetNamespace'。 – lexicore 2014-12-09 14:29:21

+0

看看我在第一條評論中給你的網頁。然後粘貼並將xml文件和xml模式複製到http://www.utilities-online.info/xsdvalidation。該XML文件沒有任何名稱空間信息。但驗證可以通過。 – 2014-12-09 14:30:16