aboutsummaryrefslogtreecommitdiffstats
path: root/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema
diff options
context:
space:
mode:
Diffstat (limited to 'dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema')
-rw-r--r--dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-meta-schema.xsd166
-rw-r--r--dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-schema.xsd274
-rw-r--r--dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_meta_schema.json332
-rw-r--r--dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_schema.json582
4 files changed, 1354 insertions, 0 deletions
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-meta-schema.xsd b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-meta-schema.xsd
new file mode 100644
index 0000000000..f75063bed5
--- /dev/null
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-meta-schema.xsd
@@ -0,0 +1,166 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://ns.ecomp.com/asdc/sequencer"
+ xmlns:s="http://ns.ecomp.com/asdc/sequencer"
+ attributeFormDefault="unqualified"
+ elementFormDefault="unqualified">
+
+ <!--
+
+ https://github.com/highsource/jsonix-schema-compiler/wiki/JSON-Schema-Generation
+
+ npm install -x-save-dev json-schema-generation
+
+ java -jar node_modules/jsonix-schema-compiler/lib/jsonix-schema-compiler-full.jar \
+ -generateJsonSchema \
+ -d ./src/main/webapp/lib/ecomp/asdc/sequencer/schema/ \
+ -p asdc_sequencer_schema \
+ ./src/main/webapp/lib/ecomp/asdc/sequencer/schema/asdc-sequencer-meta-schema.xsd
+
+ -->
+
+ <xs:element name="diagram">
+ <xs:annotation>
+ <xs:documentation>
+
+ Diagram meta-schema, defining what diagram documents may look like.
+
+ The main difference between the metaschema (this) and the schema, is that
+ the metaschema describes what's *allowed* rather than what *is*.
+
+ Specific differences:
+
+ 1. The metaschema exists primarily to constrain lifelines; to declare any
+ that are predefined, to prescribe cardinality, order and whether or not
+ ad hoc lifelines may be created by the user.
+ 2. The metaschema doesn't constrain messages at all. This may come along later,
+ but for now they're freetext, and can be defined between any legal pair
+ of lifelines.
+ 3. The metaschema doesn't have @ref attributes; its @id attributes are the
+ target of @ref attributes in the instance schema.m
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="metadata" type="s:metadataType"/>
+ <xs:element name="lifelines" type="s:lifelinesType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="entityType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ Common attributes, most importantly @id, which every entity must have.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="notes" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="id" use="required" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Schema definition identifier.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="name" use="required" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Human-readable name.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="metadataType">
+ <xs:annotation>
+ <xs:documentation>
+ Diagram metadata, including:
+ - Unique ID, referenced by @ref attributes in instance documents.
+ - Human-readable description, displayed on-screen.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="lifelineType">
+ <xs:annotation>
+ <xs:documentation>
+ Metadata concerning a single lifeline.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType">
+ <xs:attribute name="mandatory" type="xs:boolean" use="optional" default="false">
+ <xs:annotation>
+ <xs:documentation>
+ Whether an instance may omit this lifeline. Only takes effect
+ where the lifelines setting is @delete=true.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="lifelinesType">
+ <xs:annotation>
+ <xs:documentation>
+ Metadata concerning allowed lifelines. Somewhat more strict that
+ instance data.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType">
+ <xs:sequence>
+ <xs:element name="lifeline" type="s:lifelineType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="constraints">
+ <xs:complexType>
+ <xs:attribute name="create" type="xs:boolean" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Whether the user may create their own lifelines.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="delete" type="xs:boolean" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Whether declared lifelines may be deleted.
+ See also @mandatory on lifeline.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="reorder" type="xs:boolean" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Whether lifelines may be reordered.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-schema.xsd b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-schema.xsd
new file mode 100644
index 0000000000..71a7d07cb1
--- /dev/null
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc-sequencer-schema.xsd
@@ -0,0 +1,274 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://ns.ecomp.com/asdc/sequencer"
+ xmlns:s="http://ns.ecomp.com/asdc/sequencer"
+ attributeFormDefault="unqualified"
+ elementFormDefault="unqualified">
+
+ <!--
+
+ https://github.com/highsource/jsonix-schema-compiler/wiki/JSON-Schema-Generation
+
+ npm install -x-save-dev json-schema-generation
+
+ java -jar node_modules/jsonix-schema-compiler/lib/jsonix-schema-compiler-full.jar \
+ -generateJsonSchema \
+ -d ./src/main/webapp/lib/ecomp/asdc/sequencer/schema/ \
+ -p asdc_sequencer_schema \
+ ./src/main/webapp/lib/ecomp/asdc/sequencer/schema/asdc-sequencer-schema.xsd
+
+ -->
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:element name="diagram">
+ <xs:annotation>
+ <xs:documentation>
+ Diagram state.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="metadata" type="s:metadataType"/>
+ <xs:element name="lifelines" type="s:lifelinesType"/>
+ <xs:element name="steps" type="s:stepsType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="entityType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ Stuff common to all entities; an identifier, a name, an optional
+ schema reference, and some optional notes.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="notes" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="annotation" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>
+ Optional annotations; non-structural information attached to any entity.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="id" use="required" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Entity identifier.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="ref" use="optional" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Optional reference to schema definition, where this entity
+ corresponds to (and is constrained by) a schema entity.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="name" use="required" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Human-readable name.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="externalId" use="optional" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ ID of entity in originating system. For external use; not
+ used by the sequencer widget.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="metadataType">
+ <xs:annotation>
+ <xs:documentation>
+ Diagram metadata, including name, identifier and schema reference.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="lifelineType">
+ <xs:annotation>
+ <xs:documentation>
+ Definition of a single lifeline.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="lifelinesType">
+ <xs:annotation>
+ <xs:documentation>
+ A set of lifelines. May be top-level or in a fragment.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType">
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="lifeline" type="s:lifelineType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="occurrencesType">
+ <xs:annotation>
+ <xs:documentation>
+ An occurrence at one or other end of a message.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="start" use="optional">
+ <xs:simpleType>
+ <xs:list itemType="xs:token"/>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="stop" use="optional">
+ <xs:simpleType>
+ <xs:list itemType="xs:token"/>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="fragmentType">
+ <xs:annotation>
+ <xs:documentation>
+ A fragment directive.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="start" type="xs:boolean" use="optional" default="false">
+ <xs:annotation>
+ <xs:documentation>
+ Whether fragment starts; fragment activated when @start=true.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="stop" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Indication of the last message in this fragment.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="operation" use="optional" default="alt">
+ <xs:annotation>
+ <xs:documentation>
+ Fragment operation. Start with the three everybody knows, but
+ there are others.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="alt"/>
+ <xs:enumeration value="opt"/>
+ <xs:enumeration value="loop"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="guard" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Guard condition.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="messageType">
+ <xs:annotation>
+ <xs:documentation>
+ A message between lifelines.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType">
+ <xs:sequence>
+ <xs:element name="occurrences" type="s:occurrencesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="fragment" type="s:fragmentType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="to" type="xs:string" use="required"/>
+ <xs:attribute name="from" type="xs:string" use="required"/>
+ <xs:attribute name="type">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="request"/>
+ <xs:enumeration value="response"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="asynchronous" type="xs:boolean" default="false"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="guardType">
+ <xs:annotation>
+ <xs:documentation>
+ Guard condition within a fragment. Some fragments have more than
+ one section, each with their own guard condition.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="guard" type="xs:string"/>
+ <xs:element name="steps" type="s:stepsType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
+
+ <xs:complexType name="stepsType">
+ <xs:annotation>
+ <xs:documentation>
+ An ordered set of messages and subsequences.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="s:entityType">
+ <xs:sequence maxOccurs="unbounded">
+ <xs:choice>
+ <xs:element name="message" type="s:messageType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_meta_schema.json b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_meta_schema.json
new file mode 100644
index 0000000000..cf4174ed35
--- /dev/null
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_meta_schema.json
@@ -0,0 +1,332 @@
+
+{
+ "id":"#",
+ "definitions":{
+ "LifelinesType.Constraints":{
+ "type":"object",
+ "title":"LifelinesType.Constraints",
+ "required":[
+ "create",
+ "delete",
+ "reorder"
+ ],
+ "properties":{
+ "create":{
+ "title":"create",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/boolean"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"create",
+ "namespaceURI":""
+ }
+ },
+ "delete":{
+ "title":"delete",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/boolean"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"delete",
+ "namespaceURI":""
+ }
+ },
+ "reorder":{
+ "title":"reorder",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/boolean"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"reorder",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "propertiesOrder":[
+ "create",
+ "delete",
+ "reorder"
+ ]
+ },
+ "LifelinesType":{
+ "required":[
+ "constraints"
+ ],
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"LifelinesType",
+ "properties":{
+ "lifeline":{
+ "title":"lifeline",
+ "allOf":[
+ {
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/LifelineType"
+ },
+ "minItems":0
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"lifeline",
+ "namespaceURI":""
+ }
+ },
+ "constraints":{
+ "title":"constraints",
+ "allOf":[
+ {
+ "$ref":"#/definitions/LifelinesType.Constraints"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"constraints",
+ "namespaceURI":""
+ }
+ }
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"lifelinesType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "lifeline",
+ "constraints"
+ ]
+ },
+ "EntityType.Notes":{
+ "type":"object",
+ "title":"EntityType.Notes",
+ "properties":{
+ "note":{
+ "title":"note",
+ "allOf":[
+ {
+ "type":"array",
+ "items":{
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ },
+ "minItems":0
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"note",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "propertiesOrder":[
+ "note"
+ ]
+ },
+ "MetadataType":{
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"MetadataType",
+ "properties":{
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"metadataType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ }
+ },
+ "EntityType":{
+ "type":"object",
+ "title":"EntityType",
+ "required":[
+ "id",
+ "name"
+ ],
+ "properties":{
+ "notes":{
+ "title":"notes",
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType.Notes"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"notes",
+ "namespaceURI":""
+ }
+ },
+ "id":{
+ "title":"id",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"id",
+ "namespaceURI":""
+ }
+ },
+ "name":{
+ "title":"name",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"name",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"entityType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "notes",
+ "id",
+ "name"
+ ]
+ },
+ "Diagram":{
+ "type":"object",
+ "title":"Diagram",
+ "required":[
+ "metadata",
+ "lifelines"
+ ],
+ "properties":{
+ "metadata":{
+ "title":"metadata",
+ "allOf":[
+ {
+ "$ref":"#/definitions/MetadataType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"metadata",
+ "namespaceURI":""
+ }
+ },
+ "lifelines":{
+ "title":"lifelines",
+ "allOf":[
+ {
+ "$ref":"#/definitions/LifelinesType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"lifelines",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "propertiesOrder":[
+ "metadata",
+ "lifelines"
+ ]
+ },
+ "LifelineType":{
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"LifelineType",
+ "properties":{
+ "mandatory":{
+ "title":"mandatory",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/boolean"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"mandatory",
+ "namespaceURI":""
+ }
+ }
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"lifelineType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "mandatory"
+ ]
+ }
+ },
+ "anyOf":[
+ {
+ "type":"object",
+ "properties":{
+ "name":{
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/QName"
+ },
+ {
+ "type":"object",
+ "properties":{
+ "localPart":{
+ "enum":[
+ "diagram"
+ ]
+ },
+ "namespaceURI":{
+ "enum":[
+ "http://ns.ecomp.com/asdc/sequencer"
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "value":{
+ "$ref":"#/definitions/Diagram"
+ }
+ },
+ "elementName":{
+ "localPart":"diagram",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_schema.json b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_schema.json
new file mode 100644
index 0000000000..d655826290
--- /dev/null
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/model/schema/asdc_sequencer_schema.json
@@ -0,0 +1,582 @@
+
+{
+ "id":"#",
+ "definitions":{
+ "EntityType.Notes":{
+ "type":"object",
+ "title":"EntityType.Notes",
+ "properties":{
+ "note":{
+ "title":"note",
+ "allOf":[
+ {
+ "type":"array",
+ "items":{
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ },
+ "minItems":0
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"note",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "propertiesOrder":[
+ "note"
+ ]
+ },
+ "GuardType":{
+ "type":"object",
+ "title":"GuardType",
+ "required":[
+ "guard",
+ "steps"
+ ],
+ "properties":{
+ "guard":{
+ "title":"guard",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"guard",
+ "namespaceURI":""
+ }
+ },
+ "steps":{
+ "title":"steps",
+ "allOf":[
+ {
+ "$ref":"#/definitions/StepsType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"steps",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"guardType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "guard",
+ "steps"
+ ]
+ },
+ "MetadataType":{
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"MetadataType",
+ "properties":{
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"metadataType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ }
+ },
+ "OccurrencesType":{
+ "type":"object",
+ "title":"OccurrencesType",
+ "properties":{
+ "start":{
+ "title":"start",
+ "allOf":[
+ {
+ "type":"array",
+ "items":{
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"start",
+ "namespaceURI":""
+ }
+ },
+ "stop":{
+ "title":"stop",
+ "allOf":[
+ {
+ "type":"array",
+ "items":{
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"stop",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"occurrencesType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "start",
+ "stop"
+ ]
+ },
+ "Diagram":{
+ "type":"object",
+ "title":"Diagram",
+ "required":[
+ "metadata",
+ "lifelines",
+ "steps"
+ ],
+ "properties":{
+ "metadata":{
+ "title":"metadata",
+ "allOf":[
+ {
+ "$ref":"#/definitions/MetadataType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"metadata",
+ "namespaceURI":""
+ }
+ },
+ "lifelines":{
+ "title":"lifelines",
+ "allOf":[
+ {
+ "$ref":"#/definitions/LifelinesType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"lifelines",
+ "namespaceURI":""
+ }
+ },
+ "steps":{
+ "title":"steps",
+ "allOf":[
+ {
+ "$ref":"#/definitions/StepsType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"steps",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "propertiesOrder":[
+ "metadata",
+ "lifelines",
+ "steps"
+ ]
+ },
+ "LifelineType":{
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"LifelineType",
+ "properties":{
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"lifelineType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ }
+ },
+ "LifelinesType":{
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"LifelinesType",
+ "properties":{
+ "lifeline":{
+ "title":"lifeline",
+ "allOf":[
+ {
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/LifelineType"
+ },
+ "minItems":0
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"lifeline",
+ "namespaceURI":""
+ }
+ }
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"lifelinesType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "lifeline"
+ ]
+ },
+ "FragmentType":{
+ "type":"object",
+ "title":"FragmentType",
+ "properties":{
+ "start":{
+ "title":"start",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/boolean"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"start",
+ "namespaceURI":""
+ }
+ },
+ "stop":{
+ "title":"stop",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"stop",
+ "namespaceURI":""
+ }
+ },
+ "operation":{
+ "title":"operation",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"operation",
+ "namespaceURI":""
+ }
+ },
+ "guard":{
+ "title":"guard",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"guard",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"fragmentType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "start",
+ "stop",
+ "operation",
+ "guard"
+ ]
+ },
+ "StepsType":{
+ "required":[
+ "message"
+ ],
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"StepsType",
+ "properties":{
+ "message":{
+ "title":"message",
+ "allOf":[
+ {
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/MessageType"
+ },
+ "minItems":1
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"message",
+ "namespaceURI":""
+ }
+ }
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"stepsType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "message"
+ ]
+ },
+ "EntityType":{
+ "type":"object",
+ "title":"EntityType",
+ "required":[
+ "id",
+ "name"
+ ],
+ "properties":{
+ "notes":{
+ "title":"notes",
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType.Notes"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"notes",
+ "namespaceURI":""
+ }
+ },
+ "id":{
+ "title":"id",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"id",
+ "namespaceURI":""
+ }
+ },
+ "ref":{
+ "title":"ref",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"ref",
+ "namespaceURI":""
+ }
+ },
+ "name":{
+ "title":"name",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"name",
+ "namespaceURI":""
+ }
+ }
+ },
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"entityType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "notes",
+ "id",
+ "ref",
+ "name"
+ ]
+ },
+ "MessageType":{
+ "required":[
+ "to",
+ "from"
+ ],
+ "allOf":[
+ {
+ "$ref":"#/definitions/EntityType"
+ },
+ {
+ "type":"object",
+ "title":"MessageType",
+ "properties":{
+ "occurrences":{
+ "title":"occurrences",
+ "allOf":[
+ {
+ "$ref":"#/definitions/OccurrencesType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"occurrences",
+ "namespaceURI":""
+ }
+ },
+ "fragment":{
+ "title":"fragment",
+ "allOf":[
+ {
+ "$ref":"#/definitions/FragmentType"
+ }
+ ],
+ "propertyType":"element",
+ "elementName":{
+ "localPart":"fragment",
+ "namespaceURI":""
+ }
+ },
+ "to":{
+ "title":"to",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"to",
+ "namespaceURI":""
+ }
+ },
+ "from":{
+ "title":"from",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"from",
+ "namespaceURI":""
+ }
+ },
+ "type":{
+ "title":"type",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/string"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"type",
+ "namespaceURI":""
+ }
+ },
+ "asynchronous":{
+ "title":"asynchronous",
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/boolean"
+ }
+ ],
+ "propertyType":"attribute",
+ "attributeName":{
+ "localPart":"asynchronous",
+ "namespaceURI":""
+ }
+ }
+ }
+ }
+ ],
+ "typeType":"classInfo",
+ "typeName":{
+ "localPart":"messageType",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ },
+ "propertiesOrder":[
+ "occurrences",
+ "fragment",
+ "to",
+ "from",
+ "type",
+ "asynchronous"
+ ]
+ }
+ },
+ "anyOf":[
+ {
+ "type":"object",
+ "properties":{
+ "name":{
+ "allOf":[
+ {
+ "$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/QName"
+ },
+ {
+ "type":"object",
+ "properties":{
+ "localPart":{
+ "enum":[
+ "diagram"
+ ]
+ },
+ "namespaceURI":{
+ "enum":[
+ "http://ns.ecomp.com/asdc/sequencer"
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "value":{
+ "$ref":"#/definitions/Diagram"
+ }
+ },
+ "elementName":{
+ "localPart":"diagram",
+ "namespaceURI":"http://ns.ecomp.com/asdc/sequencer"
+ }
+ }
+ ]
+} \ No newline at end of file