是否有替代<;断言>;在XMLSchema1.0中
我下面有一个XSD文档片段。当XML文件根据此模式进行验证时,我希望确保是否有替代<;断言>;在XMLSchema1.0中,xml,xsd,assert,xsd-validation,xsd-1.0,Xml,Xsd,Assert,Xsd Validation,Xsd 1.0,我下面有一个XSD文档片段。当XML文件根据此模式进行验证时,我希望确保mm:Depot和mm:Customer/mm:country中的值相同,并且仅限于位置类型中的项目 这可以在XMLSchema1.1中使用标记完成,但我必须根据XMLSchema1.0进行验证。在1.0中是否有一些巧妙的技巧来实现这一点 <xsd:element name="DeliveryOrder" type="OrderDetails" /> <xsd:complexType name="Orde
mm:Depot
和mm:Customer/mm:country
中的值相同,并且仅限于位置
类型中的项目
这可以在XMLSchema1.1中使用
标记完成,但我必须根据XMLSchema1.0进行验证。在1.0中是否有一些巧妙的技巧来实现这一点
<xsd:element name="DeliveryOrder" type="OrderDetails" />
<xsd:complexType name="OrderDetails">
<xsd:sequence>
<xsd:element name="Depot" type="mm:Location" />
<xsd:element name="Customer" type="mm:Customer" maxOccurs="1" minOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="Location">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="OverHere" />
<xsd:enumeration value="OverThere" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Customer">
<xsd:sequence>
<xsd:element name="firstname" type="string" />
<xsd:element name="surname" type="string" />
<xsd:element name="County" type="mm:Location" />
</xsd:sequence>
</xsd:complexType>
我想要达到的是这样的目标
<?xml version="1.0" encoding="UTF-8"?>
<mm:DeliveryOrder xmlns:mm="http://myNamespace/DeliveryOrderSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://myNamespace/DeliveryOrderSchema DeliveryOrder.xsd ">
<mm:Depot>OverThere</mm:Depot>
<mm:Customer>
<mm:firstname>Jane</mm:firstname>
<mm:surname>Doe</mm:surname>
<mm:County>OverThere</mm:County>
</mm:Customer>
</mm:DeliveryOrder>
那边
简
雌鹿
那边
注意此处的值出现两次。您可以使用“引用完整性”
错误可能如下所示:
加载[],第10行位置3时出错
键序列“在这里”在“中”http://myNamespace/DeliveryOrderSchema:LocationDepot'Keyref无法引用某个键。
<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xsd:schema targetNamespace="http://myNamespace/DeliveryOrderSchema" xmlns="http://myNamespace/DeliveryOrderSchema" xmlns:mm="http://myNamespace/DeliveryOrderSchema" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="DeliveryOrder" type="OrderDetails">
<xsd:key name="LocationDepot">
<xsd:selector xpath="mm:Depot"/>
<xsd:field xpath="."/>
</xsd:key>
<xsd:keyref refer="LocationDepot" name="CustomerLocation">
<xsd:selector xpath="mm:Customer"/>
<xsd:field xpath="mm:County"/>
</xsd:keyref>
</xsd:element>
<xsd:complexType name="OrderDetails">
<xsd:sequence>
<xsd:element name="Depot" type="Location"/>
<xsd:element name="Customer" type="Customer" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="Location">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="OverHere"/>
<xsd:enumeration value="OverThere"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Customer">
<xsd:sequence>
<xsd:element name="firstname" type="xsd:string"/>
<xsd:element name="surname" type="xsd:string"/>
<xsd:element name="County" type="Location"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>