我有一个原型 XML 架构 - 请参阅文章末尾的摘录。如果只有 1 个“输入”元素,我想做的是使“行”和“列”属性可选,但如果有多个“输入”元素则需要。如何在 XSD 语法中执行此操作?
此外,这个模式是从一个工具生成的,它似乎过于复杂。有什么办法可以删除“xs:extension”/“xs:simpleContent”/“xs:complexType”元素?
XML 模式提取:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" targetNamespace="foobar"
xmlns:f="foobar">
<xs:element name="inspection">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="f:input" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="input">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<!--other attributes-->
<xs:attribute name="row" use="optional" type="xs:integer" />
<xs:attribute name="column" use="optional" type="xs:integer" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>