Name: gateway-uvi/rngs/request.rng 
1:
<grammar
2:
    datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
3:
    xmlns="http://relaxng.org/ns/structure/1.0"
4:
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5:
    ns="http://www.fp7-adventure.eu/xmlSchema/Gateways/">
6:
 
7:
  <define name="xsi.schemaLocation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
8:
    <attribute name="xsi:schemaLocation">
9:
      <data type="anyURI"/>
10:
    </attribute>
11:
  </define>
12:
 
13:
  <start>
14:
    <element name="gatewayRequest">
15:
      <optional>
16:
        <ref name="xsi.schemaLocation"/>
17:
      </optional>
18:
      <element name="header">
19:
        <ref name="header"/>
20:
      </element>
21:
      <element name="payload">
22:
        <ref name="payload"/>
23:
      </element>
24:
    </element>
25:
  </start>
26:
 
27:
  <define name='header'>
28:
    <element name="operationName">
29:
      <data type="NMTOKEN"/>
30:
    </element>
31:
    <element name="interactionType">
32:
      <choice>
33:
        <value>asynchronous</value>
34:
        <value>synchronous</value>
35:
      </choice>
36:
    </element>
37:
    <element name="authenticationInfo">
38:
      <data type="string"/>
39:
    </element>
40:
    <element name="transformBefore">
41:
      <data type="string"/>
42:
    </element>
43:
    <element name="transformAfter">
44:
      <data type="string"/>
45:
    </element>  
46:
  </define>
47:
 
48:
  <define name="any_content">
49:
   <interleave>
50:
    <zeroOrMore>
51:
     <ref name="any_element"/>
52:
    </zeroOrMore>
53:
    <text/>
54:
   </interleave>
55:
  </define>
56:
 
57:
  <define name="any_element">
58:
   <element>
59:
    <anyName/>
60:
    <zeroOrMore>
61:
     <ref name="any_attribute"/>
62:
    </zeroOrMore>
63:
    <zeroOrMore>
64:
     <ref name="any_content"/>
65:
    </zeroOrMore>
66:
   </element>
67:
  </define>
68:
 
69:
  <define name="any_attribute">
70:
   <attribute>
71:
    <anyName/>
72:
   </attribute>
73:
  </define>
74:
 
75:
  <define name="payload">
76:
    <zeroOrMore>
77:
      <element name="inputParameter">
78:
        <attribute name="paramName">
79:
          <data type="NMTOKEN"/>
80:
        </attribute>
81:
        <optional>
82:
          <attribute name="encoding">
83:
            <choice>
84:
              <value>false</value>
85:
              <value>base64</value>
86:
            </choice>
87:
          </attribute>
88:
        </optional>
89:
        <ref name="any_content"/>
90:
      </element>  
91:
    </zeroOrMore>  
92:
  </define>
93:
</grammar>