Xml 使用属性和可选值定义元素
如何创建可以验证以下两个示例之一的xsdXml 使用属性和可选值定义元素,xml,xsd,xsd-validation,Xml,Xsd,Xsd Validation,如何创建可以验证以下两个示例之一的xsd <element attribute="attribute-value" /> 及 元素值 您将为此使用xsd:simpleContent。就是一个例子。 <?xml version="1.0" encoding="utf-8"?> <xs:schema id="test" targetNamespace="http://tempuri.org/test.xsd" elementForm
<element attribute="attribute-value" />
及
元素值
您将为此使用xsd:simpleContent
。就是一个例子。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="test"
targetNamespace="http://tempuri.org/test.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/test.xsd"
xmlns:mstns="http://tempuri.org/test.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="element_type">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attribute" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="element" type="element_type">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
这假设属性不是必需的。为了完整性,我添加了一些验证参数,如下所示:
<xsd:element name="element">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="OptionalString">
<xsd:attribute name="row" type="xsd:positiveInteger"
use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="OptionalString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
</xsd:restriction>
</xsd:simpleType>
这与上面提出的解决方案不同吗?如果您不需要根元素,那么将后半部分替换为
嗨,路易斯,找到类似问题答案的另一种方法是使用一个工具,该工具将接收XML片段并从中推断出XML模式文件。实际上,每个合理处理XML和XSD的工具都应该能够从XML推断XSD。我还建议,如果要处理XML和XSD,最好使用专门的工具。。。更像是教你如何钓鱼……嗨,路易斯,你能把我的答案标记为接受吗?
<xsd:element name="element">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="OptionalString">
<xsd:attribute name="row" type="xsd:positiveInteger"
use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="OptionalString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
</xsd:restriction>
</xsd:simpleType>