summaryrefslogtreecommitdiffstats
path: root/test/w3c/schema/scxml-profile-xpath.xsd
blob: 9206fea2bd677730580df07172610d1fdcaf58d2 (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
160
161
162
163
<?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, xpath 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 is the Schema Driver file for SCXML 1.0, xpath profile

		This schema
			+ sets the namespace for SCXML 1.0 basic profile
			+ imports external schemas (xml.xsd)
			+ imports SCXML common datatypes, attributes and content models
			+ imports schema modules

        SCXML 1.0 includes the following Modules
            SCXML core module
            SCXML data 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:redefine schemaLocation="scxml-module-data.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This imports the data module for SCXML and redefines the following.
					[1] Redefines assign attribute group to allow dataid
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attributeGroup name="scxml.assign.attlist">
			<xsd:attributeGroup ref="scxml.assign.attlist"/>
			<xsd:attribute name="type" type="AssignType.datatype" default="replacechildren"/>
			<xsd:attribute name="attr" type="xsd:NMTOKEN"/>
		</xsd:attributeGroup>
	</xsd:redefine>

	<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, and cancel elements
					[2] Redefines state and parallel mix group to allow 
						invoke
						datamodel
					[3] Redefines scxml group to allow 
						datamodel
			    </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="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: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>