编辑:我认为我没有很好地问这个问题。我完全重新措辞了
全部: 我试图在XSD中表示以下XML(我正在使用Visual Studio XSD编辑器,因为我真的不太了解XSD)。
Here's the XML:
<TheParentNode>
<AnElement ID="x">123</AnElement>
</TheParentNode>
我想指定AnElement的值必须是数字。我还想将一些属性放入AnElement。
XSD应该是什么样的?
在Visual Studio设计器中,我可以看到如何使AnElement成为一个复杂类型,这似乎是为它定义属性的唯一方法。但是,如果我这样做,我看不到指定AnElement的值必须是数字的方法。
我需要使用复杂类型吗?你的XSD代码会是什么样的?
答案 0 :(得分:2)
您需要使用complexType
:
simpleContent
<xs:element name="AnElement">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute name="ID" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
这应该可以解决问题。我担心这是实现这一目标的唯一途径。这真的很糟糕吗?
<强>更新强>
更新后,这是您需要的XSD:
<xs:schema id="TheParentNode" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="TheParentNode">
<xs:complexType>
<xs:sequence>
<xs:element name="AnElement">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute name="ID" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
您知道我希望如果您在Visual Studio中打开XML文件,您可以转到“XML”菜单并从中选择“Create schema”吗?这确实为您的XSD文件提供了良好的开端。
马克
答案 1 :(得分:-1)
尝试使用常规快速值设置限制选项怎么样? restriction and pattern xsd tags
<xs:element name="AnElement">
<xs:simpleType>
<xs:restriction base="xs:integer">
</xs:restriction>
</xs:simpleType>
</xs:element>
这意味着它只允许整数为零或更多位。
我希望它有所帮助。
虎。