这是创建XML模式的正确方法吗?请建议

时间:2011-06-02 12:39:29

标签: xsd

1:

  <xs:element name="abcd" minOccurs="1" maxOccurs="1"/>
    <xs:simpleType>
     <xs:restriction base="xs:string">
      <xs:length value="4"/>
    </xs:restriction>
   </xs:simpleType>
  </xs:element>

2:

<xs:element name="abcd" type="xs:string" length value = "4" minOccurs="1" maxOccurs="1"/>

我可以像在数字1中那样添加maxOccursminOccurs吗。数字2也是正确定义模式的方法吗?

1 个答案:

答案 0 :(得分:0)

您的第一个代码示例语法错误很小。 <xs:element>开始标记最后有一个斜杠/,这使得它成为一个自闭元素,并且您的XML格式不正确。删除斜杠修复了该错误。

<xs:element name="abcd" minOccurs="1" maxOccurs="1"/>
  <xs:simpl...
</xs:element>

是的,您通常可以添加minOccursmaxOccurs,但这不适用于全局元素定义(这意味着<xs:element>是(直接)子项<xs:schema>元素。 minOccursmaxOccurs的默认值均为1,因此在您的示例代码中,即使它们被省略,其含义也会保持不变。

您的第二个示例包含错误。

<xs:element name="abcd" type="xs:string" length value = "4" minOccurs="1" maxOccurs="1"/>

length不是元素<xs:element>的有效属性。此外,XML建议不允许在等号字符=之前或之后使用空格,但并非所有解析器都会抱怨这一点。否则看起来是正确的。