Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xsd XMLSchema——我需要确保一个元素有两个实例,每个实例都有一个属性_Xsd - Fatal编程技术网

Xsd XMLSchema——我需要确保一个元素有两个实例,每个实例都有一个属性

Xsd XMLSchema——我需要确保一个元素有两个实例,每个实例都有一个属性,xsd,Xsd,我需要确保一个元素有两个实例,每个都有一个属性 基本上,我需要两者: /*:SalesPersonParty/*:PartyID[@schemeAgencyName="SalesPersonID"] 及 我有基数2..2,但两个属性的实例都是有效的。我每个都要一个,点什么都没关系 以下是相关的模式组件: <xs:simpleType name="RestrictedString"> <xs:restriction base="xs:string">

我需要确保一个元素有两个实例,每个都有一个属性

基本上,我需要两者:

/*:SalesPersonParty/*:PartyID[@schemeAgencyName="SalesPersonID"]

我有基数2..2,但两个属性的实例都是有效的。我每个都要一个,点什么都没关系

以下是相关的模式组件:

<xs:simpleType name="RestrictedString">
    <xs:restriction base="xs:string">
        <xs:pattern value="([0-9]{3})|([0-9]{10})" />
    </xs:restriction>
</xs:simpleType>

<xs:element name="SalesPersonParty" minOccurs="2" maxOccurs="2">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="PartyID" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="star:RestrictedString">
                            <xs:attribute name="schemeAgencyName" use="required">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="SalesPersonID" />
                                        <xs:enumeration value="SalesPersonPduID" />
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>

这可能吗

感谢和问候


托尼

我认为你可以通过唯一性约束来实现。您必须知道
salersonparty
元素的容器元素;称之为
事务
。然后你需要像这样的东西:

<xs:element name="Transaction">
  ...
  <xs:unique name="uniqueAgencyNameConstraint">
    <xs:selector xpath="SalesPersonParty/PartyID">
    <xs:field xpath="@schemeAgencyName"/>
  </xs:unique>
</xs:element>

...
这表示每个
salersonparty/PartyID
必须具有唯一的
schemeAgencyName
。再加上只有两个
salersonparty
元素和枚举中只有两个可能值的限制,所有值必须出现一次

<xs:element name="Transaction">
  ...
  <xs:unique name="uniqueAgencyNameConstraint">
    <xs:selector xpath="SalesPersonParty/PartyID">
    <xs:field xpath="@schemeAgencyName"/>
  </xs:unique>
</xs:element>