Xml 如何使id元素具有强制性并按顺序排列?
我有一个xml请求,我正试图使标记成为必需的。但将标记定位在各自的位置会让我感到困惑,因为我对xml还不熟悉。 我在java中使用SAX解析验证Xml 如何使id元素具有强制性并按顺序排列?,xml,xsd,Xml,Xsd,我有一个xml请求,我正试图使标记成为必需的。但将标记定位在各自的位置会让我感到困惑,因为我对xml还不熟悉。 我在java中使用SAX解析验证 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="empRequest">
<xs:complexType>
<xs:element name="id" type="xs:int">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute name="id" use="required">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="fname" type="xs:string"></xs:element>
</xs:complexType>
</xs:element>
xml是
<empRequest><id>5</id><fname>Samp</fname></empRequest>
5Samp
如果我需要强制检查“id”
下面是我的xsd文件。我觉得正确的重新定位需要验证
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="empRequest">
<xs:complexType>
<xs:element name="id" type="xs:int">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute name="id" use="required">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="fname" type="xs:string"></xs:element>
</xs:complexType>
</xs:element>
请帮我为请求提供准确的xsd。您缺少
xs:sequence
标记。此外,您正试图在元素id
中允许属性id
。这似乎不是你想要的。因此,假设元素id
是必需的,而fname
不是必需的,这就是XML模式:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="empRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:int"></xs:element>
<xs:element name="fname" type="xs:string" minOccurs="0"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
在元素标记内使用minOccurs=“1”:
<xsd:element name="id" type="xs:int" minOccurs="1" maxOccurs="unbounded">
id不需要带有“use=”required“的属性标签,元素id也不需要它。您可以使用minOccurs
属性来定义元素是必需的。因为minOccurs
的默认值为1,所以您不必在架构中提供它。属性use
用于属性定义。不允许处理指令目标与“[xX][mM][lL]”匹配。------使用您共享的相同xml和xsd获取此异常看起来像是另一个问题:看看这个:@VidyasagarSTGM:kenda正确地回答了您原来的问题。请在这里找到他的答案,并根据需要发布新的问题,而不是在评论中罗列问题。谢谢