<?xml version="1.0" encoding="UTF-8"?>

<!--
    PEEM ruleset schema
    version - 1.0
    date    - 24 Jul 2012
    
    FILE INFORMATION
    
    OMA Permanent Document
    File: OMA-SUP-XSD_peem_ruleset-V1_0-20120724-A
    Type: Text - Schema Description
    
    Public Reachable Information
    Path: http://www.openmobilealliance.org/tech/profiles
    Name: peem_ruleset-v1_0.xsd
    
    NORMATIVE INFORMATION
    
    Information about this file can be found in the latest revision of
    
    OMA-TS-PEEM_PEL-V1_0
    
    This is available at http://www.openmobilealliance.org/
    
    Send comments to technical-comments@mail.openmobilealliance.org
    
    CHANGE HISTORY

    24072012 Status changed to Approved by TP (Ref TP Doc# OMA-TP-2012-0278-INP_PEEM_V1_0_for_Final_Approval)

    LEGAL DISCLAIMER
    
    Use of this document is subject to all of the terms and conditions
    of the Use Agreement located at
    http://www.openmobilealliance.org/UseAgreement.html,
    provided, however, that section (d) under "Documents - Terms 
    of Use" which states, "no modifications are made to such 
    Documents" does not apply to your use.
    
    The Open Mobile Alliance authorizes you to copy this document, 
    provided that you retain all copyright and other proprietary  
    notices contained in the original materials on any copies of the 
    materials and  that you comply strictly with these terms. This 
    copyright permission does not constitute an endorsement of the 
    products or services. The Open Mobile Alliance assumes no 
    responsibility for errors or omissions in this document.
    
    Each Open Mobile Alliance member has agreed to use reasonable
    endeavors to inform the Open Mobile Alliance in a timely manner of
    Essential IPR as it becomes aware that the Essential IPR is related
    to the prepared or published specification.  However, the members
    do not have an obligation to conduct IPR searches.  The declared
    Essential IPR is publicly available to members and non-members of
    the Open Mobile Alliance and may be found on the "OMA IPR
    Declarations" list at http://www.openmobilealliance.org/ipr.html.
    The Open Mobile Alliance has not conducted an independent IPR review
    of this document and the information contained herein, and makes no
    representations or warranties regarding third party IPR, including
    without limitation patents, copyrights or trade secret rights.  This
    document may contain inventions for which you must obtain licenses
    from third parties before making, using or selling the inventions.
    Defined terms above are set forth in the schedule to the Open Mobile
    Alliance Application Form.
    
    NO REPRESENTATIONS OR WARRANTIES (WHETHER EXPRESS OR IMPLIED) ARE
    MADE BY THE OPEN MOBILE ALLIANCE OR ANY OPEN MOBILE ALLIANCE MEMBER
    OR ITS AFFILIATES REGARDING ANY OF THE IPR'S REPRESENTED ON THE "OMA
    IPR DECLARATIONS" LIST, INCLUDING, BUT NOT LIMITED TO THE ACCURACY,
    COMPLETENESS, VALIDITY OR RELEVANCE OF THE INFORMATION OR WHETHER OR
    NOT SUCH RIGHTS ARE ESSENTIAL OR NON-ESSENTIAL.
    
    THE OPEN MOBILE ALLIANCE IS NOT LIABLE FOR AND HEREBY DISCLAIMS ANY
    DIRECT, INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR
    EXEMPLARY DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE OF
    DOCUMENTS AND THE INFORMATION CONTAINED IN THE DOCUMENTS.
    
    Copyright 2012 Open Mobile Alliance Ltd.  All Rights Reserved.
    Used with the permission of the Open Mobile Alliance Ltd. under the
    terms set forth above.
-->

<xs:schema targetNamespace="urn:oma:xml:peem:ruleset:1.0"
    xmlns:gp="urn:oma:xml:peem:ruleset:1.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:cr="urn:ietf:params:xml:ns:common-policy"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    
    <!-- Import Common Policy-->
    <xs:import namespace="urn:ietf:params:xml:ns:common-policy"/>
    
    <!-- This import brings in the XML language attribute xml:lang-->
    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
        schemaLocation="http://www.w3.org/2001/xml.xsd"/>
        
    <!-- peem-ruleset//rule/actions or //rule/transformations -->
    <xs:complexType name="escapePEEM-actionType">
        <xs:complexContent>
            <xs:restriction base="xs:anyType">
                <xs:sequence>
                    <!-- The function call is modeled as as a URI that passes inputContext as argument (input passed by value) -->
                    <!-- and outputContext as populated by result. Actual binding is implementation specific. -->
                    <!-- The call is blocking for the rest of the ruleset and processing continues as ordered with call completes with value changed in outputContext. -->
                    <xs:element name="Functionescape" minOccurs="0" maxOccurs="1"/> 
                    <xs:element name="inputContext" type="gp:contextType"/>
                    <xs:element name="outputContext" type="gp:contextType"/>
                    <xs:element  name="FunctionCall" type="xs:anyURI"/>
                    <xs:any namespace="##other" processContents="lax"
                        minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>
    
    <!-- //contextType -->
    <xs:complexType name="contextType">
        <xs:complexContent>
            <xs:restriction base="xs:anyType">
                <xs:attribute name="value" type="xs:string" 
                    use="required"/>
            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>
