如何在XML中声明属性ID
发布时间:2020-12-16 07:46:57 所属栏目:百科 来源:网络整理
导读:我正在编写一些 XML和XSD作为一项任务…… 在我的XML中,我有一个名为a(非实际名称)的标签和名为id的属性.我的部分XML如下所示: a id="1" ........... /a a id="1" ............ /a 当我使用XSD验证时,它不会给出错误…. xsd:attribute name="id" type="xsd:
我正在编写一些
XML和XSD作为一项任务……
在我的XML中,我有一个名为a(非实际名称)的标签和名为id的属性.我的部分XML如下所示: <a id="1"> ........... </a> <a id="1"> ............ </a> 当我使用XSD验证时,它不会给出错误…. <xsd:attribute name="id" type="xsd:string" /> 我试图使用xsd:ID作为属性id的数据类型,但它给了我一个错误;我无法弄清楚问题是什么. 我怎样才能做到这一点?
你应该回到使用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> 示例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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |