source: FederatedSearch/schema/Endpoint-Description.xsd @ 4503

Last change on this file since 4503 was 4503, checked in by oschonef, 10 years ago
  • add vc:maxVersion attributes
  • always wrap <Collection> in <Collections>
  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/xml
File size: 11.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3    xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
4    xmlns:ed="http://clarin.eu/fcs/1.0/endpoint-description" elementFormDefault="qualified"
5    xmlns:h="http://www.w3.org/1999/xhtml"
6    xml:lang="en" vc:minVersion="1.0" vc:maxVersion="1.1"
7    targetNamespace="http://clarin.eu/fcs/1.0/endpoint-description">
8    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
9
10    <xs:annotation>
11        <xs:documentation>
12            <h:p>
13                This schema defines the structure of an extension to SRU/CQL
14                used by CLARIN-FCS.
15                </h:p>
16            <h:p>
17                An Endpoint MUST provide this information in the
18                <h:code>&lt;extraResponseData&gt;</h:code> element of the result
19                to an <h:em>explain</h:em> operation, if (and only if) a
20                CLARIN-FCS client performed the request with the
21                <h:code>x-clarin-fcs-endpoint-description</h:code> extra
22                request parameter with a value of <h:code>true</h:code>
23            </h:p>
24        </xs:documentation>   
25    </xs:annotation>
26   
27    <xs:element name="EndpointDescription">
28        <xs:annotation>
29            <xs:documentation>
30                <h:p>
31                    The root element of the Endpoint description extension for
32                    CLARIN-FCS extension.
33                </h:p>
34                <h:p>
35                    An Endpoint MUST provide this information in the
36                    <h:code>&lt;extraResponseData&gt;</h:code>
37                    element of the result to an <h:em>explain</h:em> operation,
38                    if (and only if) a CLARIN-FCS client performed the request
39                    with the <h:code>x-clarin-fcs-endpoint-description</h:code>
40                    extra request parameter with a value of <h:code>true</h:code>.
41                </h:p>
42            </xs:documentation>
43        </xs:annotation>
44        <xs:complexType>
45            <xs:sequence>
46                <!-- Profile -->
47                <xs:element name="Profile">
48                    <xs:annotation>
49                        <xs:documentation>
50                            <h:p> The CLARIN-FCS profile, that is supported
51                                by an Endpoint. </h:p>
52                        </xs:documentation>
53                    </xs:annotation>
54                    <xs:simpleType>
55                        <xs:restriction base="xs:string">
56                            <xs:enumeration value="basic">
57                                <xs:annotation>
58                                    <xs:documentation>
59                                        <h:p> The Endpoint supports the
60                                            <h:em>basic</h:em>
61                                            CLARIN-FCS profile. </h:p>
62                                    </xs:documentation>
63                                </xs:annotation>
64                            </xs:enumeration>
65                            <!-- 'extended' is not yet defined -->
66                            <!--
67                            <xs:enumeration value="extended">
68                                <xs:annotation>
69                                    <xs:documentation>
70                                        <h:p> The Endpoint supports the
71                                            <h:em>extended</h:em>
72                                            CLARIN-FCS profile. </h:p>
73                                    </xs:documentation>
74                                </xs:annotation>
75                            </xs:enumeration>
76                            -->
77                        </xs:restriction>
78                    </xs:simpleType>
79                </xs:element>
80
81                <xs:element name="SupportedDataViews">
82                    <xs:annotation>
83                        <xs:documentation>
84                            <h:p> A list of Data Views, that are supported
85                                by this Endpoint. </h:p>
86                        </xs:documentation>
87                    </xs:annotation>
88                    <xs:complexType>
89                        <xs:sequence>
90                            <xs:element name="SupportedDataView"  maxOccurs="unbounded">
91                                <xs:annotation>
92                                    <xs:documentation>
93                                        The MIME type of a supported DataView.
94                                    </xs:documentation>
95                                </xs:annotation>
96                                <xs:simpleType>
97                                    <xs:restriction base="xs:string">
98                                        <xs:pattern value="\w+/\w([\.\-]{0,1}\w)*(\+\w+){0,1}"/>
99                                    </xs:restriction>
100                                </xs:simpleType>
101                            </xs:element>
102                        </xs:sequence>
103                    </xs:complexType>
104                </xs:element>
105                <!-- Collections -->
106                <xs:element ref="ed:Collections">
107                    <xs:annotation>
108                        <xs:documentation>
109                            <h:p>
110                                A list of top-level collections, that are available
111                                at an Endpoint. An Endpoint MUST
112                                declare at least one top-level collection.
113                            </h:p>
114                        </xs:documentation>
115                    </xs:annotation>
116                </xs:element>
117            </xs:sequence>
118        </xs:complexType>
119    </xs:element>
120
121    <xs:element name="Collections">
122        <xs:annotation>
123            <xs:documentation>
124                <h:p>
125                    A list of collections, that are available
126                    at an Endpoint. An Endpoint MUST
127                    declare at least one collection.
128                </h:p>
129            </xs:documentation>
130        </xs:annotation>
131        <xs:complexType>
132            <xs:sequence>
133                <xs:element ref="ed:Collection" maxOccurs="unbounded"/>
134            </xs:sequence>                           
135        </xs:complexType>
136    </xs:element>
137
138    <xs:element name="Collection">
139        <xs:annotation>
140            <xs:documentation>
141                <h:p>
142                    Detailed description of a collection that is available at an
143                    Endpoint. A collection is a searchable
144                    entity at an Endpoint, e.g. a single corpus.
145                </h:p>
146            </xs:documentation>
147        </xs:annotation>
148        <xs:complexType>
149            <xs:sequence>
150                <xs:element name="Title" type="ed:i18nString" maxOccurs="unbounded">
151                    <xs:annotation>
152                        <xs:documentation>
153                            <h:p>
154                                A human readable title for the corpus. An English version is
155                                mandatory.
156                            </h:p>
157                        </xs:documentation>
158                    </xs:annotation>
159                </xs:element>
160                <xs:element name="Description" type="ed:i18nString" minOccurs="0" maxOccurs="unbounded">
161                    <xs:annotation>
162                        <xs:documentation>
163                            <h:p>
164                                An optional human-readable description of the collection. Is should
165                                be at most one sentence. If supplied, an English version is
166                                mandatory.
167                            </h:p>
168                        </xs:documentation>
169                    </xs:annotation>
170                </xs:element>
171                <xs:element name="LandingPageURI" type="xs:anyURI" minOccurs="0">
172                    <xs:annotation>
173                        <xs:documentation>
174                            <h:p>
175                                A link to a website for this collection, e.g. a landing page for a corpus.
176                            </h:p>
177                        </xs:documentation>
178                    </xs:annotation>
179                </xs:element>
180                <xs:element name="Languages">
181                    <xs:annotation>
182                        <xs:documentation>
183                            <h:p>
184                                The (relevant) languages available <h:em>within</h:em> the collection.
185                            </h:p>
186                        </xs:documentation>
187                    </xs:annotation>
188                    <xs:complexType>
189                        <xs:sequence>
190                            <xs:element name="Language" maxOccurs="unbounded">
191                                <xs:annotation>
192                                    <xs:documentation>
193                                        <p>
194                                            A ISO 639-3 three letter language code. This
195                                            element should be repeated for all languages
196                                            (relevant) available <h:em>within</h:em> the collection.
197                                        </p>
198                                    </xs:documentation>
199                                </xs:annotation>
200                                <xs:simpleType>
201                                    <xs:restriction base="xs:string">
202                                        <xs:pattern value="[a-zA-Z]{3}"/>
203                                    </xs:restriction>
204                                </xs:simpleType>
205                            </xs:element>
206                        </xs:sequence>
207                    </xs:complexType>
208                </xs:element>
209                <xs:element ref="ed:Collections" minOccurs="0">
210                    <xs:annotation>
211                        <xs:documentation>
212                            <h:p>
213                                If a collection has searchable sub-collections
214                                the Endpoint MUST supply additional finer grained
215                                collection elements. A sub-collection is a
216                                searchable entity within a collection, e.g. a sub-corpus.
217                            </h:p>
218                        </xs:documentation>
219                    </xs:annotation>
220                </xs:element>
221            </xs:sequence>
222            <xs:attribute name="pid" type="xs:anyURI" use="required">
223                <xs:annotation>
224                    <xs:documentation>
225                        <h:p>
226                            The persistent identifier of this collection. This
227                            value MUST be the same as the <h:code>MdSelfLink</h:code>
228                            of the CMDI record describing the collection.
229                        </h:p>
230                    </xs:documentation>
231                </xs:annotation>
232            </xs:attribute>
233        </xs:complexType>
234    </xs:element>
235
236    <xs:complexType name="i18nString">
237        <xs:simpleContent>
238            <xs:extension base="xs:string">
239                <xs:attribute ref="xml:lang" use="required" />
240            </xs:extension>
241        </xs:simpleContent>
242    </xs:complexType>
243</xs:schema>
Note: See TracBrowser for help on using the repository browser.