如何在XSD中使用条件

时间:2017-06-01 15:08:22

标签: xsd

我有XSD文件。如果元素是广告价值即将来临' Y'那么我只需要使元素nameOfAdvertisement是必需的,否则是可选的。我怎样才能实现这个PLZ建议。

<xs:simpleType name="limiteofgeid">
    <xs:restriction base="xs:string">
        <xs:minLength value="10" />
        <xs:maxLength value="10" />
    </xs:restriction>
</xs:simpleType>

<xs:simpleType name="mandatory">
    <xs:restriction base="xs:string">
        <xs:minLength value="1" />
    </xs:restriction>
</xs:simpleType>

<xs:simpleType name="checkbox">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Y" />
        <xs:enumeration value="N" />
    </xs:restriction>
</xs:simpleType>



<xs:simpleType name="relationWithSgoType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="civilUnionPartner" />
        <xs:enumeration value="father" />
        <xs:enumeration value="mother" />
        <xs:enumeration value="son" />
        <xs:enumeration value="grandFather" />
        <xs:enumeration value="grandMother" />
        <xs:enumeration value="greatGrandFather" />
        <xs:enumeration value="gretaGrandMother" />
        <xs:enumeration value="brother" />
        <xs:enumeration value="sister" />
        <xs:enumeration value="uncle" />
        <xs:enumeration value="ant" />
        <xs:enumeration value="nephew" />
        <xs:enumeration value="niece" />
        <xs:enumeration value="cousin" />
        <xs:enumeration value="husbend" />
        <xs:enumeration value="wife" />
        <xs:enumeration value="domesticPartner" />
        <xs:enumeration value="civilUnionPartner" />
        <xs:enumeration value="other" />
    </xs:restriction>
</xs:simpleType>

<xs:complexType name="requesterInformationType">
    <xs:sequence>
        <xs:element name="geId" type="limiteofgeid" />
    </xs:sequence>
</xs:complexType>



<xs:complexType name="candidateContactDetailsType">
    <xs:sequence>
        <xs:element name="requisitionId" type="xs:string"
            minOccurs="0" maxOccurs="1" />
        <xs:element name="candidateId" type="xs:string" minOccurs="0"
            maxOccurs="1" />
        <xs:element name="olfProcessId" type="mandatory" />
        <xs:element name="lastName" type="mandatory" />
        <xs:element name="middleName" type="xs:string" minOccurs="0"
            maxOccurs="1" />
        <xs:element name="legalFirstName" type="mandatory" />
        <xs:element name="prefferedFirstName" type="xs:string"
            minOccurs="0" maxOccurs="1" />
        <xs:element name="secondLastName" type="xs:string"
            minOccurs="0" maxOccurs="1" />
    </xs:sequence>
</xs:complexType>

<xs:complexType name="positionDetailsType">
    <xs:sequence>
        <xs:element name="typeOfPositionDesired" type="mandatory" />
        <xs:element name="location" type="mandatory" />
    </xs:sequence>
</xs:complexType>

<xs:complexType name="additionalABCDisclosuresType">
    <xs:sequence>

        <xs:element name="sourceOfReferal" type="mandatory" />
        <xs:element name="isAdvertisement" type="checkbox" />
        <xs:element name="nameOfAdvertisement" type="xs:string" />
        <xs:element name="isEmployeeReferral" type="checkbox" />
        <xs:element name="employeeReferralName" type="xs:string" />
        <xs:element name="isAgencySearchFirm" type="checkbox" />
        <xs:element name="agencyName" type="xs:string" />
        <xs:element name="isInternet" type="checkbox" />
        <xs:element name="websiteURL" type="xs:string" />
        <xs:element name="isCampusRecruiting" type="checkbox" />
        <xs:element name="nameOfCampus" type="xs:string" />
        <xs:element name="isJobFair" type="checkbox" />
        <xs:element name="jobFairLocation" type="xs:string" />
        <xs:element name="isOther" type="checkbox" />
        <xs:element name="otherComments" type="xs:string" />
    </xs:sequence>
</xs:complexType>

<xs:complexType name="abcCandidateApplicationDisclosureType">
    <xs:sequence>
        <xs:element name="isCurrentFormerSgo" type="checkbox" />
        <xs:element name="currentFormerSgoJobTitle" type="xs:string" />
        <xs:element name="currentFormerSgoGovernmentEntityName"
            type="xs:string" />
        <xs:element name="currentFormerSgoStartDate" type="xs:date" />
        <xs:element name="currentFormerSgoEndDate" type="xs:date" />

        <xs:element name="isRelativeSgo" type="checkbox" />
        <xs:element name="relativeSgoName" type="xs:string" />
        <xs:element name="relationWithSgo" type="relationWithSgoType" />
        <xs:element name="otherRelationWithSgo" type="xs:string" />
        <xs:element name="relativeSgoJobTitle" type="xs:string" />
        <xs:element name="relativeSgoStartDate" type="xs:date" />
        <xs:element name="relativeSgoEndDate" type="xs:date" />

        <xs:element name="isReferralScp" type="checkbox" />
        <xs:element name="referralScpName" type="xs:string" />
        <xs:element name="relationWithScp" type="xs:string" />
        <xs:element name="referralScpsmostrecentjobtitle" type="xs:string" />
        <xs:element name="referralScpStartDate" type="xs:date" />
        <xs:element name="referralScpEndDate" type="xs:date" />
    </xs:sequence>
</xs:complexType>

<xs:element name='hiringRequest'>
    <xs:complexType>
        <xs:sequence>
            <xs:element name='requesterInformation' type='requesterInformationType' />
            <xs:element name='candidateContactDetails' type='candidateContactDetailsType' />
            <xs:element name='positionDetails' type='positionDetailsType' />
            <xs:element name='additionalABCDisclosures' type='additionalABCDisclosuresType' />
            <xs:element name='abcCandidateApplicationDisclosure'
                type='abcCandidateApplicationDisclosureType' />
        </xs:sequence>
    </xs:complexType>
</xs:element>

我有XSD文件。如果元素是广告价值即将来临&#39; Y&#39;那么我只需要使元素nameOfAdvertisement是必需的,否则是可选的。我怎样才能实现这个PLZ建议。

0 个答案:

没有答案