我对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>