如何创建条件标记,例如在下面的示例中,我想要一个或标记。两者都不能出现在 . 只有其中之一。如何创建这样的 XML 模式?
Ex:
<tool>
<tool_name>xyz</tool_name>
</tool>
or
<tool>
<tool_file>xyz.xml</tool_file>
</tool>
如何创建条件标记,例如在下面的示例中,我想要一个或标记。两者都不能出现在 . 只有其中之一。如何创建这样的 XML 模式?
Ex:
<tool>
<tool_name>xyz</tool_name>
</tool>
or
<tool>
<tool_file>xyz.xml</tool_file>
</tool>
为元素工具创建一个元素声明,它的类型是一个复杂类型,称为工具类型。这应该是一个复杂类型,其内容模型是一个 xs:choice,有两个孩子,一个 xs:element name="tool_name" 和一个 xs:element name="tool_file"。
在您的示例中引入了命名空间(可能比您想要的更复杂,但很好的做法):架构:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://example.com/tools"
targetNamespace="http://example.com/tools"
elementFormDefault="qualified">
<xsd:element name="tool">
<xsd:complexType>
<xsd:choice>
<xsd:element name="tool_name" type="xsd:string" />
<xsd:element name="tool_file" type="xsd:string" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
这是有效的:
<tool xmlns="http://example.com/tools">
<tool_name>hammer</tool_name>
</tool>
这不是:
<tool xmlns="http://example.com/tools">
<tool_name>hammer</tool_name>
<tool_file>hammer.png</tool_file>
</tool>