summaryrefslogtreecommitdiffstats
path: root/test/w3c/schema/scxml-profile-ecma.xsd
blob: 852b1a28740330f883a2a220f7ea8e5e8729cd63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3.org/2005/07/scxml"
    xmlns="http://www.w3.org/2005/07/scxml"
    elementFormDefault="qualified">
	<xsd:annotation>
		<xsd:documentation>
		This is the XML Schema driver for SCXML 1.0, ecmascript profile.
		Please use this namespace for SCXML 1.0 elements:

		"http://www.w3.org/2005/07/scxml"
		</xsd:documentation>
		<xsd:documentation source="scxml-copyright.xsd"/>
	</xsd:annotation>
	<xsd:annotation>
		<xsd:documentation>
		This schema
			+ sets the namespace for SCXML 1.0 basic ecmascript profile 
			+ imports external schemas (xml.xsd)
			+ includes SCXML common datatypes, attributes and content models
			+ includes schema modules 
		SCXML 1.0 includes the following Modules
		   SCXML core module 
		   SCXML data module
		   SCXML script module
		   SCXML external module 
		</xsd:documentation>
	</xsd:annotation>
	<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This import brings in the XML namespace attributes
				The XML attributes are used by various modules.
            </xsd:documentation>
		</xsd:annotation>
	</xsd:import>
	<xsd:include schemaLocation="scxml-datatypes.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This includes brings in the common data types for SCXML
			</xsd:documentation>
		</xsd:annotation>
	</xsd:include>
	<xsd:include schemaLocation="scxml-attribs.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This includes brings in the common attributes for SCXML
			</xsd:documentation>
		</xsd:annotation>
	</xsd:include>
	<xsd:include schemaLocation="scxml-module-data.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This includes the data module for SCXML
		    </xsd:documentation>
		</xsd:annotation>
	</xsd:include>
	<xsd:include schemaLocation="scxml-module-script.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This includes the script module for SCXML
			</xsd:documentation>
		</xsd:annotation>
	</xsd:include>
	<xsd:redefine schemaLocation="scxml-module-external.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This imports the external module for SCXML and redefines the following.
					[1] Redefines send and invoke mix group to allow 
						param
					[2] Redefines finalize mix group to allow: 
						executable content 
			    </xsd:documentation>
		</xsd:annotation>
		<xsd:group name="scxml.send.mix">
			<xsd:choice>
				<xsd:group ref="scxml.send.mix"/>
				<xsd:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:group>
		<xsd:group name="scxml.invoke.mix">
			<xsd:choice>
				<xsd:group ref="scxml.invoke.mix"/>
				<xsd:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:group>
		<xsd:group name="scxml.finalize.mix">
			<xsd:choice>
				<xsd:group ref="scxml.finalize.mix"/>
				<xsd:group ref="scxml.core.executablecontent"/>
			</xsd:choice>
		</xsd:group>
	</xsd:redefine>
	<xsd:include schemaLocation="scxml-contentmodels.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This includes the common content models. 
			</xsd:documentation>
		</xsd:annotation>
	</xsd:include>
	<xsd:redefine schemaLocation="scxml-module-core.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This imports the core module for SCXML and redefines the following.
					[1] Redefines executable content to allow 
						send, assign, validate, cancel and script elements
					[2] Redefines state and parallel mix group to allow 
						invoke
						datamodel
					[3] Redefines scxml group to allow 
						datamodel
						script
			    </xsd:documentation>
		</xsd:annotation>
		<xsd:group name="scxml.core.executablecontent">
			<xsd:choice>
				<xsd:group ref="scxml.core.executablecontent"/>
				<xsd:element ref="send"/>
				<xsd:element ref="assign"/>
				<xsd:element ref="script"/>
				<xsd:element ref="validate"/>
				<xsd:element ref="cancel"/>
			</xsd:choice>
		</xsd:group>
		<xsd:group name="scxml.scxml.mix">
			<xsd:choice>
				<xsd:group ref="scxml.scxml.mix"/>
				<xsd:element ref="datamodel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="script" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:group>
		<xsd:group name="scxml.state.mix">
			<xsd:choice>
				<xsd:group ref="scxml.state.mix"/>
				<xsd:element ref="datamodel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="invoke" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:group>
		<xsd:group name="scxml.parallel.mix">
			<xsd:choice>
				<xsd:group ref="scxml.parallel.mix"/>
				<xsd:element ref="datamodel" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="invoke" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:group>
		<xsd:group name="scxml.donedata.mix">
			<xsd:choice>
				<xsd:group ref="scxml.donedata.mix"/>
				<xsd:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:group>
		<xsd:group name="scxml.raise.mix">
			<xsd:choice>
				<xsd:group ref="scxml.raise.mix"/>
				<xsd:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:group>
	</xsd:redefine>
</xsd:schema>