summaryrefslogtreecommitdiffstats
path: root/test/schema/scxml.xsd
blob: 000a90907b454f70b1e0fb917e9d5459a46711cc (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
<?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.
			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 XML Schema driver file for SCXML 1.0.

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

        	SCXML 1.0 includes:
			+ SCXML core constructs
			+ SCXML executable content
			+ SCXML data model and manipulation
			+ SCXML external communications

			This schema is permissive such that it accomodates all
			datamodels, but validating documents may contain markup that
			is ignored in certain datamodels.
		</xsd:documentation>
	</xsd:annotation>

	<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/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-module-core.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This imports the core elements for SCXML.
			    </xsd:documentation>
		</xsd:annotation>
	</xsd:include>
	
	<xsd:include schemaLocation="scxml-module-data.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This imports the data modelelements for SCXML.
			</xsd:documentation>
		</xsd:annotation>
	</xsd:include>

	<xsd:include schemaLocation="scxml-module-external.xsd">
		<xsd:annotation>
			<xsd:documentation>
				This imports the external communications elements for SCXML. 
			</xsd:documentation>
		</xsd:annotation>
	</xsd:include>
	
<!-- the various elements of executable content are defined in the relevant modules. 
This gathers them up into a single type -->
	<xsd:group name="scxml.core.executablecontent">
		<xsd:choice>
	    <xsd:group ref="scxml.extra.content" minOccurs="0" maxOccurs="unbounded"/> 
			<xsd:element ref="raise"/> 
    	<xsd:element ref="if"/> 
			<xsd:element ref="foreach"/> 
			<xsd:element ref="send"/> 
			<xsd:element ref="script"/>
			<xsd:element ref="assign"/> 
			<xsd:element ref="log"/>
			<xsd:element ref="cancel"/>
	</xsd:choice>
	</xsd:group>

</xsd:schema>