当我们在simpleType中指定name参数时,我们收到错误:
"s4s-att-not-allowed: Attribute 'name' cannot appear in element 'simpleType'."
例如:
<xs:simpleType name="lengthValue">
<xs:restriction base="xs:string">
<xs:maxLength value="14"/>
</xs:restriction>
</xs:simpleType>
这个例子是正确的吗? 为什么我们会收到如上所述的错误?
答案 0 :(得分:5)
根据具体情况,您的片段可能也可能不正常。由于您收到了给定的错误,因此您的上下文似乎是一个本地嵌套定义,其中不允许@name
。
xs:simpleType在全局使用时可以给出一个名称。这没关系:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="lengthValue">
<xs:restriction base="xs:string">
<xs:maxLength value="14"/>
</xs:restriction>
</xs:element>
</xs:schema>
xs:simpleType在全局使用时可能不会给出名称。这不行:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="e">
<xs:simpleType name="lengthValue">
<xs:restriction base="xs:string">
<xs:maxLength value="14"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
无论
lengthValue
的定义为全局,并引用它
使用@type
: 以下是如何将@name
与xs:simpleType
一起使用的示例:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="lengthValue">
<xs:restriction base="xs:string">
<xs:maxLength value="14"/>
</xs:restriction>
</xs:element>
<xs:element name="e" type="lengthValue"/>
</xs:schema>