Commit fabc9af0 authored by grahamj's avatar grahamj
Browse files

Add new file

parent 57a65cb4
Loading
Loading
Loading
Loading
Loading
+104 −0
Original line number 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="ModificationCriteria" type="ListOfModificationCriteria" minOccurs="0"/>
            <xs:element name="Action" type="ModificationAction" minOccurs="1"/>
        </xs:sequence>
    </xs:group>
    <xs:complexType name="ListOfModificationCriteria">
        <xs:sequence>
            <xs:element name="Criteria" type="ModificationCriteria" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ModificationCriteria">
        <xs:choice>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="ModificationLocation">
        <xs:choice>
            <xs:element name="jSONPointer" type="xs:string"/>
            <xs:element name="xPath" type="xs:string"/>
            <xs:element name="sIPHeader" type="xs:string"/>
            <xs:element name="sIPBody" type="EmptyElement"/>
            <xs:element name="mIMEHeader" type="xs:string"/>
            <xs:element name="mIMEBody" type="EmptyElement"/>
            <xs:element name="sMSTPLocation" type="SMSTPLocation"/>
            <xs:element name="sMSRPLocation" type="SMSRPLocation"/>
            <xs:element name="aBNFRule" type="xs:string"/>
            <xs:element name="iRIRecord" type="xs:string"/>
            <xs:element name="iRIFieldName" type="xs:string"/>
        </xs:choice>
    </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="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="xs:BitString"/>
        </xs:choice>
    </xs:complexType>
    <xs:simpleType name="EmptyElement">
        <xs:restriction base="xs:string">
            <xs:enumeration value=""></xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xsd:simpleType name="BitString">
        <xsd:restriction base="xsd:token">
            <xsd:pattern value="[0-1]{0,}"/>
        </xsd:restriction>
    </xsd:simpleType>
</xs:schema>