]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/examples/fm_IDL.xsd
LP2061136 - Stamping 1405 DB upgrade script
[Evergreen.git] / Open-ILS / examples / fm_IDL.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:idl="http://opensrf.org/spec/IDL/base/v1"
26  xmlns:oils_persist="http://open-ils.org/spec/opensrf/IDL/persistence/v1"
27  xmlns:oils_obj="http://open-ils.org/spec/opensrf/IDL/objects/v1"
28  xmlns:reporter="http://open-ils.org/spec/opensrf/IDL/reporter/v1"
29  xmlns:sr="http://open-ils.org/spec/opensrf/IDL/simple-reporter/v1"
30  xmlns:crud="http://open-ils.org/spec/opensrf/IDL/permacrud/v1"
31  targetNamespace="http://opensrf.org/spec/IDL/base/v1"
32  elementFormDefault="qualified"
33  attributeFormDefault="unqualified"
34 >
35
36 <xs:import namespace="http://open-ils.org/spec/opensrf/IDL/persistence/v1"
37  schemaLocation="oils_persist.xsd"/>
38
39 <xs:import namespace="http://open-ils.org/spec/opensrf/IDL/objects/v1"
40  schemaLocation="oils_obj.xsd"/>
41
42 <xs:import namespace="http://open-ils.org/spec/opensrf/IDL/reporter/v1"
43  schemaLocation="reporter.xsd"/>
44
45 <xs:import namespace="http://open-ils.org/spec/opensrf/IDL/simple-reporter/v1"
46  schemaLocation="simple-reporter.xsd"/>
47
48 <xs:import namespace="http://open-ils.org/spec/opensrf/IDL/permacrud/v1"
49  schemaLocation="permacrud.xsd"/>
50
51 <!-- define simple elements -->
52 <xs:element name="field" nillable="true">
53  <xs:complexType>
54   <xs:sequence>
55    <xs:element ref="idl:description" minOccurs="0" maxOccurs="1"/>
56   </xs:sequence>
57   <xs:attribute name="name"/>
58   <xs:attribute name="suppress_controller"/>
59   <xs:attribute ref="oils_obj:array_position"/>
60   <xs:attribute ref="oils_obj:required"/>
61   <xs:attribute ref="oils_obj:validate"/>
62   <xs:attribute ref="oils_persist:i18n"/>
63   <xs:attribute ref="oils_persist:primitive"/>
64   <xs:attribute ref="oils_persist:virtual"/>
65   <xs:attribute ref="reporter:label"/>
66   <xs:attribute ref="reporter:datatype"/>
67   <xs:attribute ref="reporter:selector"/>
68   <xs:attribute ref="sr:hide_from"/>
69   <xs:attribute ref="sr:suggest_transform"/>
70   <xs:attribute ref="sr:force_transform"/>
71   <xs:attribute ref="sr:suggest_operator"/>
72   <xs:attribute ref="sr:suggest_filter"/>
73   <xs:attribute ref="sr:force_filter"/>
74   <xs:attribute ref="sr:force_filtervalues"/>
75   <xs:attribute ref="sr:org_filter_field"/>
76   <xs:attribute name="field_groups"/>
77   <xs:attribute name="config_field"/>
78  </xs:complexType>
79 </xs:element>
80
81 <xs:element name="description" nillable="true"/>
82
83 <xs:element name="link" nillable="true">
84  <xs:complexType>
85   <xs:attribute name="field" type="xs:string" use="required"/>
86   <xs:attribute name="reltype" type="xs:string" use="required"/>
87   <xs:attribute name="key" type="xs:string" use="required"/>
88   <xs:attribute name="map" type="xs:string" use="required"/>
89   <xs:attribute name="class" type="xs:string" use="required"/>
90   <xs:attribute ref="reporter:label"/>
91   <xs:attribute ref="sr:org_filter_field"/>
92  </xs:complexType>
93 </xs:element>
94
95 <xs:element name="fields">
96  <xs:complexType>
97   <xs:sequence>
98    <xs:element ref="idl:field" minOccurs="1" maxOccurs="unbounded"/>
99   </xs:sequence>
100   <xs:attribute ref="oils_persist:primary"/>
101   <xs:attribute ref="oils_persist:sequence"/>
102  </xs:complexType>
103 </xs:element>
104
105 <xs:element name="links">
106  <xs:complexType>
107   <xs:sequence>
108    <xs:element ref="idl:link" minOccurs="0" maxOccurs="unbounded"/>
109   </xs:sequence>
110  </xs:complexType>
111 </xs:element>
112
113 <xs:element name="group" nillable="true">
114  <xs:complexType>
115   <xs:attribute name="name" type="xs:string" use="required"/>
116   <xs:attribute ref="reporter:label"/>
117  </xs:complexType>
118 </xs:element>
119
120 <xs:element name="field_groups">
121  <xs:complexType>
122   <xs:sequence>
123    <xs:element ref="idl:group" minOccurs="0" maxOccurs="unbounded"/>
124   </xs:sequence>
125  </xs:complexType>
126 </xs:element>
127
128 <xs:element name="class">
129  <xs:complexType>
130   <xs:sequence>
131    <xs:element ref="idl:description" minOccurs="0" maxOccurs="1"/>
132    <xs:element ref="oils_persist:source_definition" minOccurs="0" maxOccurs="unbounded"/>
133    <xs:element ref="idl:field_groups" minOccurs="0" maxOccurs="1"/>
134    <xs:element ref="idl:fields"/>
135    <xs:element ref="idl:links" minOccurs="0"/>
136    <xs:element ref="crud:permacrud" minOccurs="0"/>
137   </xs:sequence>
138   <xs:attribute name="id"/>
139   <xs:attribute name="controller"/>
140   <xs:attribute ref="oils_obj:fieldmapper"/>
141   <xs:attribute ref="oils_persist:readonly"/>
142   <xs:attribute ref="oils_persist:tablename"/>
143   <xs:attribute ref="oils_persist:virtual"/>
144   <xs:attribute ref="oils_persist:field_safe"/>
145   <xs:attribute ref="oils_persist:restrict_primary"/>
146   <xs:attribute ref="reporter:core"/>
147   <xs:attribute ref="reporter:label"/>
148  </xs:complexType>
149 </xs:element>
150
151 <xs:element name="IDL">
152  <xs:complexType>
153   <xs:sequence>
154    <xs:element ref="idl:class" minOccurs="1" maxOccurs="unbounded"/>
155   </xs:sequence>
156  </xs:complexType>
157 </xs:element>
158
159 </xs:schema>