From e02028a56ce4f02ecd7412b944eb86855c8d3cea Mon Sep 17 00:00:00 2001
From: Anders Nilsson <andersn@control.lth.se>
Date: Thu, 19 Jun 2014 11:37:50 +0200
Subject: [PATCH] Small fixes

---
 build.xml        |   2 +-
 examples/sfc.xsd | 256 +++++++++++++++++++++++++++++++++++++++++++++++
 xmlschema.ast    |   1 +
 xmlschema.jjt    |   1 +
 4 files changed, 259 insertions(+), 1 deletion(-)
 create mode 100644 examples/sfc.xsd

diff --git a/build.xml b/build.xml
index 5bc559b..72762c6 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 0000000..688f9c1
--- /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 53dc470..e3c37ec 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 139ae28..59b8182 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" >
-- 
GitLab