diff --git a/build.xml b/build.xml index 5bc559b221c6ed65ac137a554611b762e90ef72b..72762c68db2d2f1477f3b5a121a331cf66d54691 100644 --- a/build.xml +++ b/build.xml @@ -99,7 +99,7 @@ </target> <target name="jar" depends="build"> - <jar destfile="SchemaCompile.jar" basedir="." includes="**/*.class" excludes="x3d/**"> + <jar destfile="SchemaCompiler.jar" basedir="." includes="**/*.class" excludes="x3d/**"> <manifest> <attribute name="Main-Class" value="GenCompiler"/> </manifest> diff --git a/examples/sfc.xsd b/examples/sfc.xsd new file mode 100644 index 0000000000000000000000000000000000000000..688f9c1a787bb558fa6d13a5bb33d4ee7b44fc2d --- /dev/null +++ b/examples/sfc.xsd @@ -0,0 +1,256 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> + <xs:complexType name="GCDocument"> + <xs:sequence> + <xs:element ref="GCDocument"/> + </xs:sequence> + </xs:complexType> + <xs:element name="GCDocument"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="GCInitialStep"/> + <xs:choice maxOccurs="unbounded"> + <xs:element ref="EnterStep"/> + <xs:element ref="ExceptionTransition"/> + <xs:element ref="ExitStep"/> + <xs:element ref="GCStep"/> + <xs:element ref="GCTransition"/> + <xs:element ref="MacroStep"/> + <xs:element ref="ParallelSplit"/> + <xs:element ref="RealVariable"/> + <xs:element ref="BooleanVariable"/> + <xs:element ref="StringVariable"/> + <xs:element ref="WorkspaceObject"/> + </xs:choice> + <xs:choice> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="GCLink"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="AnalogOut"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="AnalogIn"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="color" use="required" type="xs:integer"/> + <xs:attribute name="dimTicks" type="xs:integer"/> + <xs:attribute name="dpwsInterface"/> + <xs:attribute name="dpwsPort" type="xs:integer"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="horizontalScrollBar" type="xs:integer"/> + <xs:attribute name="modifiable" type="xs:integer"/> + <xs:attribute name="name" type="xs:NCName"/> + <xs:attribute name="saveVersion" type="xs:integer"/> + <xs:attribute name="scale" use="required" type="xs:decimal"/> + <xs:attribute name="simulationMode" type="xs:integer"/> + <xs:attribute name="socketHost"/> + <xs:attribute name="socketPort" type="xs:integer"/> + <xs:attribute name="threadSpeed" type="xs:integer"/> + <xs:attribute name="tokenLuminance" type="xs:integer"/> + <xs:attribute name="verticalScrollBar" type="xs:integer"/> + <xs:attribute name="viewPositionX" use="required" type="xs:integer"/> + <xs:attribute name="viewPositionY" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="GCInitialStep"> + <xs:complexType> + <xs:attribute name="actionBlockVisible" use="required" type="xs:integer"/> + <xs:attribute name="actionText" use="required"/> + <xs:attribute name="fileName" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="name" use="required"/> + <xs:attribute name="useIcon" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="EnterStep"> + <xs:complexType> + <xs:attribute name="actionBlockVisible" use="required" type="xs:integer"/> + <xs:attribute name="actionText" use="required"/> + <xs:attribute name="fileName" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="name" use="required"/> + <xs:attribute name="useIcon" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="ExceptionTransition"> + <xs:complexType> + <xs:attribute name="CGURI" use="required"/> + <xs:attribute name="actionText" use="required"/> + <xs:attribute name="conditionVisible" use="required" type="xs:integer"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="ExitStep"> + <xs:complexType> + <xs:attribute name="actionBlockVisible" use="required" type="xs:integer"/> + <xs:attribute name="actionText" use="required"/> + <xs:attribute name="fileName" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="name" use="required"/> + <xs:attribute name="useIcon" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="GCStep"> + <xs:complexType> + <xs:attribute name="actionBlockVisible" use="required" type="xs:integer"/> + <xs:attribute name="actionText" use="required"/> + <xs:attribute name="fileName" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="name" use="required"/> + <xs:attribute name="useIcon" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="GCTransition"> + <xs:complexType> + <xs:attribute name="CGURI" use="required"/> + <xs:attribute name="actionText" use="required"/> + <xs:attribute name="conditionVisible" use="required" type="xs:integer"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="MacroStep"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="GCDocument"> + <xs:attribute name="actionText" use="required"/> + <xs:attribute name="fileName" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="name" use="required"/> + <xs:attribute name="useIcon" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="ParallelSplit"> + <xs:complexType> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="ParallelJoin"> + <xs:complexType> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="id" use="required"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="RealVariable"> + <xs:complexType> + <xs:attribute name="constant" use="required" type="xs:integer"/> + <xs:attribute name="exp" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="initialValue" use="required"/> + <xs:attribute name="name" use="required" type="xs:NCName"/> + <xs:attribute name="updated" use="required" type="xs:integer"/> + <xs:attribute name="value" use="required" type="xs:decimal"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="StringVariable"> + <xs:complexType> + <xs:attribute name="constant" use="required" type="xs:integer"/> + <xs:attribute name="exp" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="initialValue" use="required"/> + <xs:attribute name="name" use="required" type="xs:NCName"/> + <xs:attribute name="updated" use="required" type="xs:integer"/> + <xs:attribute name="value" use="required" type="xs:string"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="WorkspaceObject"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="GCDocument"> + <xs:attribute name="enabled" use="required" type="xs:integer"/> + <xs:attribute name="fileName" use="required"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="horizontalScrollBar" use="required" type="xs:integer"/> + <xs:attribute name="name" use="required" type="xs:NCName"/> + <xs:attribute name="ownerClass" use="required"/> + <xs:attribute name="scanCycle" use="required" type="xs:integer"/> + <xs:attribute name="useIcon" use="required" type="xs:integer"/> + <xs:attribute name="verticalScrollBar" use="required" type="xs:integer"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="GCLink"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="Stroke"/> + </xs:sequence> + <xs:attribute name="fromObject" use="required"/> + <xs:attribute name="manAdj" use="required" type="xs:integer"/> + <xs:attribute name="toObject" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Stroke"> + <xs:complexType> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="AnalogOut"> + <xs:complexType> + <xs:attribute name="channel" use="required" type="xs:integer"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="name" use="required" type="xs:NCName"/> + <xs:attribute name="value" use="required"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> + <xs:element name="AnalogIn"> + <xs:complexType> + <xs:attribute name="channel" use="required" type="xs:integer"/> + <xs:attribute name="cyclic" use="required" type="xs:integer"/> + <xs:attribute name="height" use="required" type="xs:integer"/> + <xs:attribute name="name" use="required" type="xs:NCName"/> + <xs:attribute name="value" use="required" type="xs:decimal"/> + <xs:attribute name="width" use="required" type="xs:integer"/> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/xmlschema.ast b/xmlschema.ast index 53dc470fe8bd44f46cc39e7b86a377a8641b354f..e3c37ecbacd0c35eb3bd93c6c7e43bc0c4597538 100644 --- a/xmlschema.ast +++ b/xmlschema.ast @@ -85,6 +85,7 @@ ProcessContents : Attribute; Ref : Attribute; Source : Attribute; SchemaLocation : Attribute; +Standalone : Attribute; TargetNamespace : Attribute; Type : Attribute; Use : Attribute; diff --git a/xmlschema.jjt b/xmlschema.jjt index 139ae28720c1ad6475b717657e4cc8719f6ca8bd..59b818211427f5d97812529b4ba675d43224bc08 100644 --- a/xmlschema.jjt +++ b/xmlschema.jjt @@ -126,6 +126,7 @@ SPECIAL_TOKEN : /* COMMENTS */ | < REF : "ref" > | < SCHEMALOCATION : "schemaLocation" > | < SOURCE : "source" > + | < STANDALONE : "standalone" > | < TARGETNAMESPACE : "targetNamespace" > | < TYPE : "type" > | < USE : "use" >