Commit 41d5d656 authored by Jason Graham's avatar Jason Graham
Browse files

Upload New File

parent e810e266
Loading
Loading
Loading
Loading
+134 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:etsi="http://uri.etsi.org/03280/common/2017/07" xmlns:common="http://uri.etsi.org/03120/common/2016/02/Common" xmlns:core="http://uri.etsi.org/03120/common/2019/10/Core" xmlns="http://uri.etsi.org/03120/common/2022/07/PayloadMod" targetNamespace="http://uri.etsi.org/03120/common/2022/07/PayloadMod" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:import namespace="http://uri.etsi.org/03120/common/2016/02/Common"/>
    <xs:import namespace="http://uri.etsi.org/03120/common/2019/10/Core"/>
    <xs:import namespace="http://uri.etsi.org/03280/common/2017/07"/>
    <xs:complexType name="PayloadModificationProfileObject">
        <xs:complexContent>
            <xs:extension base="core:HI1Object">
                <xs:sequence>
                    <xs:group ref="PayloadModificationProfileObjectGroup"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:group name="PayloadModificationProfileObjectGroup">
        <xs:sequence>
            <xs:element name="PayloadModificationProfielName" type="etsi:ShortString" minOccurs="0"/>
            <xs:element name="PayloadModification" type="ListOfPayloadModificationReferences" minOccurs="0"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="ListOfPayloadModificationReferences">
        <xs:sequence>
            <xs:element name="PayloadModificationReference" type="PayloadModificationReference" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PayloadModificationReference">
        <xs:sequence>
            <xs:element name="ObjectIdentifier" type="core:ObjectIdentifier"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PayloadModificationObject">
        <xs:complexContent>
            <xs:extension base="core:HI1Object">
                <xs:sequence>
                    <xs:group ref="PayloadModificationObjectGroup"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:group name="PayloadModificationObjectGroup">
        <xs:sequence>
            <xs:element name="ModificationLocation" type="ModificationLocation" minOccurs="1"/>
            <xs:element name="Action" type="ModificationAction" minOccurs="1"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="ModificationLocation">
        <xs:choice maxOccurs="unbounded">
            <xs:element name="jSONPointer" type="xs:string"/>
            <xs:element name="xPath" type="xs:string"/>
            <xs:element name="sIPHeader" type="LocationSelectionCriteria"/>
            <xs:element name="sIPBody" type="SIPBody"/>
            <xs:element name="mIMEHeader" type="xs:string"/>
            <xs:element name="mIMEBody" type="MIMEBody"/>
            <xs:element name="sMSTPLocation" type="SMSTPLocation"/>
            <xs:element name="sMSRPLocation" type="SMSRPLocation"/>
            <xs:element name="aBNFRule" type="LocationSelectionCriteria"/>
            <xs:element name="iRIRecord" type="xs:string"/>
            <xs:element name="iRIFieldName" type="xs:string"/>
        </xs:choice>
    </xs:complexType>
  <xs:complexType name="LocationSelectionCriteria">
    <xs:sequence>
      <xs:element name="Operator" type="CriteriaOperator"/>
      <xs:element name="Criteria" type="xs:string" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
    <xs:complexType name="SMSTPLocation">
        <xs:choice>
            <xs:element name="SMSTPDU" type="EmptyElement"/>
            <xs:element name="SMSTPDUField" type="xs:string"/>
            <xs:element name="SMSTPDUFieldIEI" type="xs:hexBinary"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="SMSRPLocation">
        <xs:choice>
            <xs:element name="SMSRPDU" type="EmptyElement"/>
            <xs:element name="SMSRPDUField" type="xs:string"/>
            <xs:element name="SMSTPDUFieldIEI" type="xs:hexBinary"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="MIMEBody">
      <xs:choice>
        <xs:element name="FullBody" type="EmptyElement"/>
        <xs:element name="BodyPart" type="BodyPartCriteria"/>
      </xs:choice>
    </xs:complexType>
    <xs:complexType name="SIPBody">
      <xs:choice>
        <xs:element name="FullBody" type="EmptyElement"/>
        <xs:element name="BodyPart" type="BodyPartCriteria"/>
      </xs:choice>
    </xs:complexType>
    <xs:complexType name="BodyPartCriteria">
      <xs:sequence>
        <xs:element name="ListOfContentTypes" type="ListOfContentTypes"/>
      </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ListOfContentTypes">
      <xs:sequence maxOccurs="unbounded">
        <xs:element name="ContentType" type="LocationSelectionCriteria"/>
      </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ModificationAction">
        <xs:choice>
            <xs:element name="nestedModifications" type="ListOfPayloadModificationReferences"/>
            <xs:element name="remove" type="EmptyElement"/>
            <xs:element name="replaceWithCharacters" type="xs:string"/>
            <xs:element name="replaceWithOctets" type="xs:hexBinary"/>
            <xs:element name="replaceWithBits" type="BitString"/>
        </xs:choice>
    </xs:complexType>
    <xs:simpleType name="EmptyElement">
        <xs:restriction base="xs:string">
            <xs:enumeration value=""></xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="BitString">
        <xs:restriction base="xs:token">
            <xs:pattern value="[0-1]{0,}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CriteriaOperator">
      <xs:restriction base="xs:string">
        <xs:enumeration value="equalTo"/>
        <xs:enumeration value="notEqualTo"/>
        <xs:enumeration value="contains"/>
        <xs:enumeration value="doesNotContain"/>
        <xs:enumeration value="like"/>
        <xs:enumeration value="notLike"/>
        <xs:enumeration value="in"/>
        <xs:enumeration value="notIn"/>
      </xs:restriction>
    </xs:simpleType>
</xs:schema>