context element can occur as many times as needed ... in practice, maybe 3 times
[Evergreen.git] / Open-ILS / examples / permacrud.xsd
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <!--
4
5 Copyright (C) 2007 Laurentian University
6 Dan Scott <dscott@laurentian.ca>
7
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation; either version 2
11 of the License, or (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
21
22 -->
23
24 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
25  xmlns:permacrud="http://open-ils.org/spec/opensrf/IDL/permacrud/v1"
26  targetNamespace="http://open-ils.org/spec/opensrf/IDL/permacrud/v1"
27  elementFormDefault="qualified"
28  attributeFormDefault="unqualified"
29 >
30
31 <xs:attribute name="permsission" type="xs:string"/>
32 <xs:attribute name="context_field" type="xs:string"/>
33
34 <xs:element name="context" nillable="true">
35  <xs:complexType>
36   <xs:attribute name="link"/>
37   <xs:attribute name="field" use="required"/>
38   <xs:attribute name="global_required"/>
39  </xs:complexType>
40 </xs:element>
41
42 <xs:element name="create" nillable="true">
43  <xs:complexType>
44   <xs:sequence>
45    <xs:element ref="permacrud:context" minOccurs="0" maxOccurs="1"/>
46   </xs:sequence>
47   <xs:attribute name="permission" use="required"/>
48   <xs:attribute name="context_field"/>
49   <xs:attribute name="global_required"/>
50  </xs:complexType>
51 </xs:element>
52
53 <xs:element name="retrieve" nillable="true">
54  <xs:complexType>
55   <xs:sequence>
56    <xs:element ref="permacrud:context" minOccurs="0" maxOccurs="unbounded"/>
57   </xs:sequence>
58   <xs:attribute name="permission"/>
59   <xs:attribute name="context_field"/>
60   <xs:attribute name="global_required"/>
61  </xs:complexType>
62 </xs:element>
63
64 <xs:element name="update" nillable="true">
65  <xs:complexType>
66   <xs:sequence>
67    <xs:element ref="permacrud:context" minOccurs="0" maxOccurs="1"/>
68   </xs:sequence>
69   <xs:attribute name="permission" use="required"/>
70   <xs:attribute name="context_field"/>
71   <xs:attribute name="global_required"/>
72  </xs:complexType>
73 </xs:element>
74
75 <xs:element name="delete" nillable="true">
76  <xs:complexType>
77   <xs:sequence>
78    <xs:element ref="permacrud:context" minOccurs="0" maxOccurs="1"/>
79   </xs:sequence>
80   <xs:attribute name="permission" use="required"/>
81   <xs:attribute name="context_field"/>
82   <xs:attribute name="global_required"/>
83  </xs:complexType>
84 </xs:element>
85
86 <xs:element name="actions">
87  <xs:complexType>
88   <xs:sequence>
89    <xs:element ref="permacrud:create" minOccurs="0" maxOccurs="1"/>
90    <xs:element ref="permacrud:retrieve" minOccurs="0" maxOccurs="1"/>
91    <xs:element ref="permacrud:update" minOccurs="0" maxOccurs="1"/>
92    <xs:element ref="permacrud:delete" minOccurs="0" maxOccurs="1"/>
93   </xs:sequence>
94  </xs:complexType>
95 </xs:element>
96
97 <xs:element name="permacrud">
98  <xs:complexType>
99   <xs:sequence>
100    <xs:element ref="permacrud:actions" minOccurs="1" maxOccurs="1"/>
101   </xs:sequence>
102  </xs:complexType>
103 </xs:element>
104
105 </xs:schema>