2 xmlns:xs="http://www.w3.org/2001/XMLSchema"
3 targetNamespace="http://ns.ecomp.com/asdc/sequencer"
4 xmlns:s="http://ns.ecomp.com/asdc/sequencer"
5 attributeFormDefault="unqualified"
6 elementFormDefault="unqualified">
10 https://github.com/highsource/jsonix-schema-compiler/wiki/JSON-Schema-Generation
12 npm install -x-save-dev json-schema-generation
14 java -jar node_modules/jsonix-schema-compiler/lib/jsonix-schema-compiler-full.jar \
16 -d ./src/main/webapp/lib/ecomp/asdc/sequencer/schema/ \
17 -p asdc_sequencer_schema \
18 ./src/main/webapp/lib/ecomp/asdc/sequencer/schema/asdc-sequencer-schema.xsd
22 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
24 <xs:element name="diagram">
32 <xs:element name="metadata" type="s:metadataType"/>
33 <xs:element name="lifelines" type="s:lifelinesType"/>
34 <xs:element name="steps" type="s:stepsType"/>
39 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
41 <xs:complexType name="entityType" abstract="true">
44 Stuff common to all entities; an identifier, a name, an optional
45 schema reference, and some optional notes.
49 <xs:element name="notes" minOccurs="0">
52 <xs:element name="note" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
56 <xs:element name="annotation" minOccurs="0">
59 Optional annotations; non-structural information attached to any entity.
64 <xs:any minOccurs="0"/>
69 <xs:attribute name="id" use="required" type="xs:string">
76 <xs:attribute name="ref" use="optional" type="xs:string">
79 Optional reference to schema definition, where this entity
80 corresponds to (and is constrained by) a schema entity.
84 <xs:attribute name="name" use="required" type="xs:string">
91 <xs:attribute name="externalId" use="optional" type="xs:string">
94 ID of entity in originating system. For external use; not
95 used by the sequencer widget.
102 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
104 <xs:complexType name="metadataType">
107 Diagram metadata, including name, identifier and schema reference.
111 <xs:extension base="s:entityType"/>
115 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
117 <xs:complexType name="lifelineType">
120 Definition of a single lifeline.
124 <xs:extension base="s:entityType"/>
128 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
130 <xs:complexType name="lifelinesType">
133 A set of lifelines. May be top-level or in a fragment.
137 <xs:extension base="s:entityType">
138 <xs:sequence minOccurs="0" maxOccurs="unbounded">
139 <xs:element name="lifeline" type="s:lifelineType"/>
145 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
147 <xs:complexType name="occurrencesType">
150 An occurrence at one or other end of a message.
153 <xs:attribute name="start" use="optional">
155 <xs:list itemType="xs:token"/>
158 <xs:attribute name="stop" use="optional">
160 <xs:list itemType="xs:token"/>
165 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
167 <xs:complexType name="fragmentType">
170 A fragment directive.
173 <xs:attribute name="start" type="xs:boolean" use="optional" default="false">
176 Whether fragment starts; fragment activated when @start=true.
180 <xs:attribute name="stop" type="xs:string" use="optional">
183 Indication of the last message in this fragment.
187 <xs:attribute name="operation" use="optional" default="alt">
190 Fragment operation. Start with the three everybody knows, but
195 <xs:restriction base="xs:string">
196 <xs:enumeration value="alt"/>
197 <xs:enumeration value="opt"/>
198 <xs:enumeration value="loop"/>
202 <xs:attribute name="guard" type="xs:string" use="optional">
211 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
213 <xs:complexType name="messageType">
216 A message between lifelines.
220 <xs:extension base="s:entityType">
222 <xs:element name="occurrences" type="s:occurrencesType" minOccurs="0" maxOccurs="1"/>
223 <xs:element name="fragment" type="s:fragmentType" minOccurs="0" maxOccurs="1"/>
225 <xs:attribute name="to" type="xs:string" use="required"/>
226 <xs:attribute name="from" type="xs:string" use="required"/>
227 <xs:attribute name="type">
229 <xs:restriction base="xs:string">
230 <xs:enumeration value="request"/>
231 <xs:enumeration value="response"/>
235 <xs:attribute name="asynchronous" type="xs:boolean" default="false"/>
240 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
242 <xs:complexType name="guardType">
245 Guard condition within a fragment. Some fragments have more than
246 one section, each with their own guard condition.
250 <xs:element name="guard" type="xs:string"/>
251 <xs:element name="steps" type="s:stepsType"/>
255 <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
257 <xs:complexType name="stepsType">
260 An ordered set of messages and subsequences.
264 <xs:extension base="s:entityType">
265 <xs:sequence maxOccurs="unbounded">
267 <xs:element name="message" type="s:messageType"/>