1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/config" xmlns:cfg="http://www.example.org/config" elementFormDefault="qualified">
|
3
|
|
4
|
<!-- Simple word type -->
|
5
|
|
6
|
<xs:simpleType name="word">
|
7
|
<xs:restriction base="xs:string">
|
8
|
<xs:pattern value="[a-zA-Z]*"/>
|
9
|
</xs:restriction>
|
10
|
</xs:simpleType>
|
11
|
|
12
|
<!-- Parameters are simple column names without any space. -->
|
13
|
|
14
|
<xs:complexType name="Parameters">
|
15
|
<xs:sequence>
|
16
|
<xs:element name="name" type="cfg:word" minOccurs="0" maxOccurs="unbounded"/>
|
17
|
</xs:sequence>
|
18
|
</xs:complexType>
|
19
|
|
20
|
<!-- URI to a .class file -->
|
21
|
|
22
|
<xs:simpleType name="Class">
|
23
|
<xs:restriction base="xs:string">
|
24
|
<xs:pattern value="(http|file)://.*\.class"/>
|
25
|
</xs:restriction>
|
26
|
</xs:simpleType>
|
27
|
|
28
|
<!-- single converter type -->
|
29
|
|
30
|
<xs:complexType name="Converter">
|
31
|
<xs:sequence>
|
32
|
<xs:element name="name" type="xs:string"/>
|
33
|
<xs:element name="description" type="xs:string"/>
|
34
|
<xs:element name="param_in" type="cfg:Parameters"/>
|
35
|
<xs:element name="param_out" type="cfg:Parameters"/>
|
36
|
<xs:element name="class" type="cfg:Class"/>
|
37
|
<xs:element name="classname" type="xs:string"/>
|
38
|
</xs:sequence>
|
39
|
</xs:complexType>
|
40
|
|
41
|
<!-- set of converters -->
|
42
|
|
43
|
<xs:complexType name="Converters">
|
44
|
<xs:sequence>
|
45
|
<xs:element name="cv" type="cfg:Converter"/>
|
46
|
</xs:sequence>
|
47
|
</xs:complexType>
|
48
|
|
49
|
<xs:element name="convs" type="cfg:Converters"/>
|
50
|
|
51
|
</xs:schema>
|