使用xsd:all意味着;无法分析XML架构";在记事本中++;
我已经花了两天时间试图解决这个问题,我花了4个小时在互联网上检查我做错了什么,但没有任何成功。。。我希望你能帮助我 我正在尝试使用Notepad++创建XML模式。我想做的是:我有一个叫做a的主元素。在这个元素中,我将有子元素1,2,3和4。所有thos元素都将有自己的SimpleType作为属性(我将它们作为示例的元素) 我的XSD是这样的:使用xsd:all意味着;无法分析XML架构";在记事本中++;,xsd,schema,notepad++,Xsd,Schema,Notepad++,我已经花了两天时间试图解决这个问题,我花了4个小时在互联网上检查我做错了什么,但没有任何成功。。。我希望你能帮助我 我正在尝试使用Notepad++创建XML模式。我想做的是:我有一个叫做a的主元素。在这个元素中,我将有子元素1,2,3和4。所有thos元素都将有自己的SimpleType作为属性(我将它们作为示例的元素) 我的XSD是这样的: <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualifi
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="TEST" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A">
<xs:complexType>
<xs:sequence>
<xs:element name="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="id"/>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="comment"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="2">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="id"/>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="comment"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="3">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="id"/>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="comment"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="4">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="id"/>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="comment"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
关键是我的XML可以是:
<A>
<3>
<id>20130</id>
<name>test</name>
<comment>Test</comment>
</3>
<4>
<id>98654</id>
<name>test2</name>
<comment>Test2</comment>
</4>
</A>
20130
测试
试验
98654
测试2
测试2
因此,当使用sequence时,我得到一个错误,因为它预期为1。当使用choice时,它不需要4(但只需要3)。使用all,Notepad++告诉我“无法解析XML模式”
注意:我想保留4在3之前出现的可能性,并且我可以多次出现1、2、3或4。使用minOccur和maxoccure可能是一个答案(但因此我必须尊重1、2、3和4的顺序)
非常感谢你的帮助
问候我想我明白了!通过将xs:sequence替换为xs:choice minoccurs=0 maxoccurs=“unbounded”,我可以写任何我想要的,任何顺序!您的模式中还有一些其他问题;最重要的是,
1
、2
、3
和4
在XML中不是合法的标识符,因此在XSD中不是合法的元素名称。如果您希望四个子元素中的每一个子元素最多有一个,请使用xs:all,而不是重复选择。