1
|
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
|
2 |
<xsd:schema targetNamespace="http://www.example.eclipse.org/Library"
|
|
3 |
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
|
|
4 |
xmlns:lib="http://www.example.eclipse.org/Library"
|
|
5 |
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
6 |
<xsd:complexType name="Book">
|
|
7 |
<xsd:sequence>
|
|
8 |
<xsd:element name="title" type="xsd:string"/>
|
|
9 |
<xsd:element name="pages" type="xsd:int"/>
|
|
10 |
<xsd:element name="category" type="lib:BookCategory"/>
|
|
11 |
<xsd:element name="author" type="xsd:anyURI"
|
|
12 |
ecore:reference="lib:Writer" ecore:opposite="books"/>
|
|
13 |
</xsd:sequence>
|
|
14 |
</xsd:complexType>
|
|
15 |
<xsd:complexType name="Writer">
|
|
16 |
<xsd:sequence>
|
|
17 |
<xsd:element name="name" type="xsd:string"/>
|
|
18 |
<xsd:element maxOccurs="unbounded" minOccurs="0" name="books"
|
|
19 |
type="xsd:anyURI" ecore:reference="lib:Book" ecore:opposite="author"/>
|
|
20 |
</xsd:sequence>
|
|
21 |
</xsd:complexType>
|
|
22 |
<xsd:complexType name="Library">
|
|
23 |
<xsd:sequence>
|
|
24 |
<xsd:element name="name" type="xsd:string"/>
|
|
25 |
<xsd:element maxOccurs="unbounded" minOccurs="0"
|
|
26 |
name="writers" type="lib:Writer"/>
|
|
27 |
<xsd:element maxOccurs="unbounded" minOccurs="0"
|
|
28 |
name="books" type="lib:Book"/>
|
|
29 |
</xsd:sequence>
|
|
30 |
</xsd:complexType>
|
|
31 |
<xsd:simpleType name="BookCategory">
|
|
32 |
<xsd:restriction base="xsd:NCName">
|
|
33 |
<xsd:enumeration value="Mystery"/>
|
|
34 |
<xsd:enumeration value="ScienceFiction"/>
|
|
35 |
<xsd:enumeration value="Biography"/>
|
|
36 |
</xsd:restriction>
|
|
37 |
</xsd:simpleType>
|
|
38 |
</xsd:schema>
|