51fa56b9 |
1 | <?xml version="1.0" encoding="ISO-8859-1"?> |
2 | <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
3 | targetNamespace="www.example.org/type/subs/with/elem/subs" |
4 | xmlns="www.example.org/type/subs/with/elem/subs" |
5 | elementFormDefault="unqualified" |
6 | attributeFormDefault="unqualified"> |
7 | |
8 | <!-- Root element --> |
9 | <xsd:element name="Submit" type="SubmitRequestType" /> |
10 | |
11 | <xsd:complexType name="requestGroup"> |
12 | <xsd:sequence> |
13 | <xsd:element ref="request"/> |
14 | </xsd:sequence> |
15 | </xsd:complexType> |
16 | |
17 | <xsd:complexType name="SubmitRequestType"> |
18 | <xsd:sequence> |
19 | <xsd:element name="name" type="xsd:string" /> |
20 | <xsd:element name="request1" type="requestAbstractType" /> |
21 | <xsd:element name="request2" type="requestAbstractType" /> |
22 | </xsd:sequence> |
23 | </xsd:complexType> |
24 | |
25 | |
26 | <!-- The generic abstract type --> |
27 | <xsd:element name="request" type="requestAbstractType" abstract="true" /> |
28 | |
29 | <xsd:complexType name="requestAbstractType" abstract="true"> |
30 | <xsd:sequence> |
31 | <xsd:element name="commonName" type="xsd:string" /> |
32 | </xsd:sequence> |
33 | </xsd:complexType> |
34 | |
35 | <!-- Production implementation --> |
36 | <xsd:element name="productionRequest" type="myProductionRequestType" substitutionGroup="request" /> |
37 | |
38 | <xsd:complexType name="myProductionRequestType"> |
39 | <xsd:complexContent> |
40 | <xsd:extension base="requestAbstractType"> |
41 | <xsd:sequence> |
42 | <xsd:element name="productionName" type="xsd:string" /> |
43 | </xsd:sequence> |
44 | </xsd:extension> |
45 | </xsd:complexContent> |
46 | </xsd:complexType> |
47 | |
48 | <!-- Production implementation --> |
49 | <xsd:element name="programmingRequest" type="myProgrammingRequestType" substitutionGroup="request" /> |
50 | |
51 | <xsd:complexType name="myProgrammingRequestType"> |
52 | <xsd:complexContent> |
53 | <xsd:extension base="requestAbstractType"> |
54 | <xsd:sequence> |
55 | <xsd:element name="programmingName" type="xsd:string" /> |
56 | </xsd:sequence> |
57 | </xsd:extension> |
58 | </xsd:complexContent> |
59 | </xsd:complexType> |
60 | |
61 | </xsd:schema> |
62 | |