由于根元素为null,xom xsd验证失败

时间:2011-03-20 22:51:05

标签: xml xsd doctype xom

我有xsd和xml文件。关闭验证时,xml解析正常。 但是使用xsd验证它会抱怨xsd中的根元素为null。

  1. 我的xsd文件有多个全局元素。所以基本上这可能是一个问题。 我想从xsd,XOM将根元素视为null。如果你能确认就可以了

  2. 如何在xsd文件中声明根元素以及最好的方法,在xsd中将全局元素限制为只有1个元素对我来说不好看


  3. <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema targetNamespace="http://www.popcornmonsters.com/"
    xmlns="http://www.popcornmonsters.com/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    
    <xs:element name="address_book" >
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="entry" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    
    <xs:element name="email" type="xs:string"/>
    <xs:element name="first_name" type="xs:string"/>
    <xs:element name="last_name" type="xs:string"/>
    
    <xs:element name="entry">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="first_name" minOccurs="0"/>
    <xs:element ref="last_name" minOccurs="0"/>
    <xs:element ref="email" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    

    <?xml version="1.0" encoding="UTF-8"?>
    <address_book xmlns="http://www.popcornmonsters.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.popcornmonsters.com/address_book.xsd">
    <entry>
    <first_name>Ken</first_name>
    <last_name>Cochrane</last_name>
    <email>ken@fakeURL.no</email>
    </entry>
    <entry>
    <first_name>Emily</first_name>
    <last_name>Cochrane</last_name>
    <email>Emily@fakeURL.no</email>
    </entry>
    </address_book>
    

2 个答案:

答案 0 :(得分:0)

您的架构基本上是好的,只是它最多允许一个&lt; entry&gt;元件;你可能想要maxOccurs =“unbounded”。

但是,要解决您的问题,我们需要了解更多有关如何设置解析/验证以及使用哪些工具的信息。如果您使用的是xom.nu,请确保将名称空间感知,架构验证XMLReader传递给Builder instance

答案 1 :(得分:-1)

注意以下属性: 的xsi:的schemaLocation = “http://www.popcornmonsters.com/address_book.xsd” 它应该是一对值:URI和文件名。所以address_book.xsd之前的空格是强制性的: xsi:schemaLocation =“http://www.popcornmonsters.com/ address_book.xsd” 没有空间,就没有与XML文档相关联的模式。