我正在编写一些XML和一个XSD作为赋值...在我的XML中,我有一个名为a(非实际名称)的标签和名为的属性id.我的部分XML如下所示:
<a id="1">
...........
</a>
<a id="1">
............
</a>
Run Code Online (Sandbox Code Playgroud)
当我使用XSD验证时,它不会给出错误....
<xsd:attribute name="id" type="xsd:string" />
Run Code Online (Sandbox Code Playgroud)
我试图使用xsd:ID作为属性的数据类型,id但它给了我一个错误; 我无法弄清楚问题是什么.
我怎样才能做到这一点?
Dan*_*ley 16
你应该回去使用type="xsd:ID".除了确保值是唯一的之外,它还允许您xsd:IDREF用于引用.
您尝试使用时遇到的错误xsd:ID是ID值必须以字母开头.如果您将ID更改为"ID-1"/"ID-2"或"a1"/"a2",它将正常工作.
示例架构:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:element name="doc">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="a"/>
<xsd:element maxOccurs="unbounded" ref="b"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="a">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="id" use="required" type="xsd:ID"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="b">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="idref" use="required" type="xsd:IDREF"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
示例XML:
<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Untitled1.xsd">
<a id="ID-1">
...........
</a>
<a id="ID-2">
............
</a>
<b idref="ID-1"/>
</doc>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31630 次 |
| 最近记录: |