Xsd,element中的属性导致在验证期间找不到元素

时间:2012-06-15 14:14:17

标签: xml xsd

我对xml文件有一些问题,并使用xsd解析它。问题是我在hello元素中有一个属性。如果它被删除它没有任何问题。在使用genrade c ++代码进行解析时发生错误,消息是: 错误:找不到元素'hello'的声明 然后是xml文件中所有元素和属性的相同错误

要验证的文件:

<hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" label="asdf">
  <group id="1">
    <greeting>Hello label="asdf"</greeting>
    <name>sun</name>
    <name>moon</name>
    <name>world</name>
  </group>
</hello>

XML架构定义:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="group_t">
    <xsd:sequence>
       <xsd:element name="greeting" type="xsd:string">
       </xsd:element>
       <xsd:element name="name" type="xsd:string" maxOccurs="unbounded">
       </xsd:element>
   </xsd:sequence>
   <xsd:attribute name="id" type="xsd:string" use="required"/>
</xsd:complexType>

<xsd:complexType name="hello_t">
<xsd:sequence>
    <xsd:element name="group" type="group_t" maxOccurs="unbounded">
    </xsd:element>
</xsd:sequence>
<xsd:attribute name="label" type="xsd:string" use="required"/>
</xsd:complexType>

<xsd:element name="hello" type="hello_t">
</xsd:element>

</xsd:schema>

0 个答案:

没有答案