XML模式:具有不同属性限制的单个元素名称和类型

XML模式:具有不同属性限制的单个元素名称和类型,xml,xsd,xml-attribute,Xml,Xsd,Xml Attribute,我需要指定一个XML片段,如下所示: <address type="work">...</address> <address type="home">...</address> <xs:element name="address" type="AddressType"></xs:element> <xs:element name="address" type="AddressType" minOccurs="0"&g

我需要指定一个XML片段,如下所示:

<address type="work">...</address>
<address type="home">...</address>
<xs:element name="address" type="AddressType"></xs:element>
<xs:element name="address" type="AddressType" minOccurs="0"></xs:element>
我列出了如下
地址
元素:

<address type="work">...</address>
<address type="home">...</address>
<xs:element name="address" type="AddressType"></xs:element>
<xs:element name="address" type="AddressType" minOccurs="0"></xs:element>


那么,我如何具体指定第一个是
type=“work”
地址,另一个是
type=“home”
地址?

在XSD 1.0中,我不知道如何实现您所说的目标。(XML的设计基于这样一个前提:不同类型的对象被称为不同的对象;如果您希望家庭地址和工作地址具有不同的验证行为,这就很好地证明了它们是不同的对象,出于您的目的,不应该被称为相同的对象。如果您将元素命名为WorkAddress和HomeAddress,你没有问题。如果我们不在事情是什么的问题上对处理器撒谎,事情会好得多。)


在XSD 1.1中,您可以在内容模型中指定“address”必须至少出现一次,并使用断言检查第一次出现的类型是否为type=“work”,第二次出现的类型是否为type=“home”。

谢谢。我现在使用不同的元素命名。