我是第一次编写 XML 模式,我找到了一些有用的工具来帮助我编写它。
现在我处于一个奇怪的境地。我编写的模式对某些工具有效,而对其他一些工具无效。这个模式是“all”、“sequence”和“group”的混合体。这是我的 XML 架构:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:group name="test">
<xsd:all>
<xsd:element name="e2" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e3" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e4" minOccurs="0" maxOccurs="1"/>
</xsd:all>
</xsd:group>
<xsd:element name="e0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="e1" maxOccurs="unbounded"/>
<xsd:group ref="test"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
这个架构对吗?它适用于这个验证器和这个验证器,但 Notepad++ 的 XML 工具插件显示“无法解析模式文件”。
PS:我写这个模式是因为我想要一个元素“e0”,这样就有可能混合使用e1、e2、e3和e4。e2、e3 和 e4 应该出现 0 或 1 次,而 e1 可能出现无限次。例如,这个 XML 文件应该通过:
<e0>
<e1/>
<e1/>
<e1/>
<e1/>
<e1/>
<e2/>
</e0>
<e0>
<e2/>
<e3/>
<e4/>
</e0>
<e0>
<e1/>
<e2/>
<e3/>
<e4/>
</e0>
你知道另一种方法吗?
谢谢