这应该是直截了当的,但我认为它似乎只有复杂类型的信息。
让我们说我已经定义了一个名称空间xmlns:address="http://...."
。现在从我所读到的内容开始,我可以执行以下操作:<xsd:element name="street" type="address:sAdd"/>
然后定义复杂类型<xsd:complexType name="sAdd">
。
但是,我无法找到像xsd:string
这样的非复杂类型的情况。我的猜测就像<xsd:element name="street" type="address:xsd:string"/>
。
您能否确认我的答案或让我知道这样做的正确方法?
答案 0 :(得分:2)
不,名称空间前缀不能级联:address:xsd:string
格式不正确QName。
xsd:string
在所有命名空间中都是相同的。这是应该的。
如果您希望 字符串与xsd:string
不同,请根据xsd:string
为字符串定义类型,并根据您的字符串将其置于命名空间(或不是)设计偏好:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mst="http://www.example.com/MyStringType"
targetNamespace="http://www.example.com/MyStringType">
<xs:element name="root" type="mst:MyStringType"/>
<xs:simpleType name="MyStringType">
<xs:restriction base="xs:string">
<xs:maxLength value="256" />
</xs:restriction>
</xs:simpleType>
</xs:schema>