]> gerrit.simantics Code Review - simantics/sysdyn.git/commitdiff
Move xmile plugin from incubator to sysdyn trunk
authorjkauttio <jkauttio@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 27 Apr 2015 10:28:21 +0000 (10:28 +0000)
committerjkauttio <jkauttio@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Mon, 27 Apr 2015 10:28:21 +0000 (10:28 +0000)
refs #5645

git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@31219 ac1ea38d-2e2b-0410-8846-a27921b304fc

107 files changed:
org.simantics.sysdyn.xmile/.classpath [new file with mode: 0644]
org.simantics.sysdyn.xmile/.project [new file with mode: 0644]
org.simantics.sysdyn.xmile/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
org.simantics.sysdyn.xmile/META-INF/MANIFEST.MF [new file with mode: 0644]
org.simantics.sysdyn.xmile/build.properties [new file with mode: 0644]
org.simantics.sysdyn.xmile/plugin.xml [new file with mode: 0644]
org.simantics.sysdyn.xmile/schema/generate.bat [new file with mode: 0644]
org.simantics.sysdyn.xmile/schema/xmile-1.0-backup.xsd [new file with mode: 0644]
org.simantics.sysdyn.xmile/schema/xmile-1.0.xsd [new file with mode: 0644]
org.simantics.sysdyn.xmile/schema/xmile-backup.xsd [new file with mode: 0644]
org.simantics.sysdyn.xmile/schema/xmile.xsd [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/Activator.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ExportHandler.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ImportHandler.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ModelTransform.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/XmileParser.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/XmileUtil.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/ParseException.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/SimpleCharStream.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/Token.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/TokenMgrError.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParser.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParser.jj [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParserConstants.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParserTokenManager.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/AccessType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/AfterChoices.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Auxiliary.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Behavior.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/BooleanOrEmptyType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Contact.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Conveyor.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Data.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/DataType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Dimensions.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/EmptyType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Entity.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/EventPoster.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Flow.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Format.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/FrequencyType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Gf.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphicalInput.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphicsFrame.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Group.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Header.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Image.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Includes.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Knob.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Link.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ListInput.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Macro.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/MenuActionChoices.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/MinMaxType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Model.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ModelUnits.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Module.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/NumericDisplay.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ObjectFactory.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Options.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Orientation.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/OrientationType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Penstyle.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Plot.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/PointsType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Popup.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Product.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Range.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ReportBalances.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ReportFlows.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ResetTo.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Scale.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Shape.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/SimSpecs.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Slider.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Sound.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StackedContainer.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardBorderWidthType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardColorType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardMethodType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardTimeUnitType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Stock.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Style.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StyleType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Switch.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/SwitchAction.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TableItemType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TextAlign.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TextBox.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TransparencyType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Variables.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/VerticalTextAlign.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Video.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ViewContentType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ViewType.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Views.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Xmile.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/package-info.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/ParseException.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/SimpleCharStream.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/Token.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/TokenMgrError.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParser.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParser.jj [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParserConstants.java [new file with mode: 0644]
org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParserTokenManager.java [new file with mode: 0644]

diff --git a/org.simantics.sysdyn.xmile/.classpath b/org.simantics.sysdyn.xmile/.classpath
new file mode 100644 (file)
index 0000000..b1dabee
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>\r
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
+       <classpathentry kind="src" path="src"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
diff --git a/org.simantics.sysdyn.xmile/.project b/org.simantics.sysdyn.xmile/.project
new file mode 100644 (file)
index 0000000..b2e22b5
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>org.simantics.sysdyn.xmile</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.ManifestBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.pde.SchemaBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.pde.PluginNature</nature>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/org.simantics.sysdyn.xmile/.settings/org.eclipse.jdt.core.prefs b/org.simantics.sysdyn.xmile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..11f6e46
--- /dev/null
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7\r
+org.eclipse.jdt.core.compiler.compliance=1.7\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.source=1.7\r
diff --git a/org.simantics.sysdyn.xmile/META-INF/MANIFEST.MF b/org.simantics.sysdyn.xmile/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..bc162cd
--- /dev/null
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Sysdyn XMILE
+Bundle-SymbolicName: org.simantics.sysdyn.xmile;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.simantics.sysdyn.xmile.Activator
+Bundle-Vendor: VTT
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.simantics;bundle-version="1.0.0",
+ org.simantics.browsing.ui.swt;bundle-version="1.1.0",
+ org.simantics.utils.ui;bundle-version="1.1.0",
+ org.simantics.sysdyn;bundle-version="1.8.0",
+ org.simantics.sysdyn.ontology;bundle-version="1.1.0",
+ org.simantics.objmap;bundle-version="0.1.0",
+ org.simantics.modeling;bundle-version="1.1.1"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-ActivationPolicy: lazy
diff --git a/org.simantics.sysdyn.xmile/build.properties b/org.simantics.sysdyn.xmile/build.properties
new file mode 100644 (file)
index 0000000..6f20375
--- /dev/null
@@ -0,0 +1,5 @@
+source.. = src/\r
+output.. = bin/\r
+bin.includes = META-INF/,\\r
+               .,\\r
+               plugin.xml\r
diff --git a/org.simantics.sysdyn.xmile/plugin.xml b/org.simantics.sysdyn.xmile/plugin.xml
new file mode 100644 (file)
index 0000000..ae3f665
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?eclipse version="3.4"?>\r
+<plugin>\r
+   <extension\r
+         point="org.eclipse.ui.commands">\r
+      <command\r
+            id="org.simantics.sysdyn.xmile.import"\r
+            name="XMILE Import">\r
+      </command>\r
+      <command\r
+            id="org.simantics.sysdyn.xmile.export"\r
+            name="XMILE Export">\r
+         <commandParameter\r
+               id="org.simantics.sysdyn.xmile.export.includeView"\r
+               name="includeView"\r
+               optional="true">\r
+         </commandParameter>\r
+      </command>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.handlers">\r
+      <handler\r
+            class="org.simantics.sysdyn.xmile.ImportHandler"\r
+            commandId="org.simantics.sysdyn.xmile.import">\r
+      </handler>\r
+      <handler\r
+            class="org.simantics.sysdyn.xmile.ExportHandler"\r
+            commandId="org.simantics.sysdyn.xmile.export">\r
+         <activeWhen>\r
+            <with\r
+                  variable="selection">\r
+               <test\r
+                     args="http://www.simantics.org/Sysdyn-0.0/SysdynModel"\r
+                     property="org.simantics.graph.resourceType">\r
+               </test>\r
+            </with>\r
+         </activeWhen>\r
+      </handler>\r
+   </extension>\r
+   <extension\r
+         point="org.eclipse.ui.menus">\r
+      <menuContribution\r
+            allPopups="false"\r
+            locationURI="popup:#SysdynBrowserPopup?after=wbStart">\r
+         <menu\r
+               id="org.simantics.import"\r
+               label="Import">\r
+            <command\r
+                  commandId="org.simantics.sysdyn.xmile.import"\r
+                  label="XMILE Document"\r
+                  style="push">\r
+            </command>\r
+         </menu>\r
+         <menu\r
+               id="org.simantics.export"\r
+               label="Export">\r
+            <command\r
+                  commandId="org.simantics.sysdyn.xmile.export"\r
+                  label="XMILE Document"\r
+                  style="push">\r
+            </command>\r
+            <command\r
+                  commandId="org.simantics.sysdyn.xmile.export"\r
+                  label="XMILE Document (no diagram)"\r
+                  style="push">\r
+               <parameter\r
+                     name="org.simantics.sysdyn.xmile.export.includeView"\r
+                     value="false">\r
+               </parameter>\r
+            </command>\r
+         </menu>\r
+      </menuContribution>\r
+   </extension>\r
+\r
+</plugin>\r
diff --git a/org.simantics.sysdyn.xmile/schema/generate.bat b/org.simantics.sysdyn.xmile/schema/generate.bat
new file mode 100644 (file)
index 0000000..6099a65
--- /dev/null
@@ -0,0 +1,2 @@
+"C:\Program Files\Java\jdk1.8.0_40\bin\xjc" -d ..\src -p org.simantics.sysdyn.xmile.schema1 xmile-1.0.xsd\r
+pause
\ No newline at end of file
diff --git a/org.simantics.sysdyn.xmile/schema/xmile-1.0-backup.xsd b/org.simantics.sysdyn.xmile/schema/xmile-1.0-backup.xsd
new file mode 100644 (file)
index 0000000..8c22c3a
--- /dev/null
@@ -0,0 +1,1994 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"\r
+  xmlns="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0" targetNamespace="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0">\r
+\r
+  <!-- \r
+  \r
+  Schema for XMILE v1.0  October 13, 2014\r
+  \r
+    Contributing Authors: Will Glass-Hussain\r
+                          Robert Eberlein\r
+  -->\r
+\r
+  <xs:element name="xmile">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        The root element for the XMILE file. Note that certain child elements\r
+        (i.e. model) are required for the primary file but not for included\r
+        files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="header" />\r
+        <xs:choice maxOccurs="unbounded">\r
+          <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="model_units" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="data" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="macro" minOccurs="0" maxOccurs="unbounded" />\r
+          <xs:element ref="model" minOccurs="1" maxOccurs="unbounded" />\r
+\r
+          <!-- need to inline dimensions element below to avoid conflict with dimensions element in stock/flow/aux -->\r
+          <xs:element name="dimensions">\r
+            <xs:complexType>\r
+              <xs:sequence>\r
+                <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+                  <xs:complexType>\r
+                    <xs:sequence maxOccurs="unbounded">\r
+                      <xs:element name="elem" minOccurs="0" maxOccurs="unbounded">\r
+                        <xs:complexType>\r
+                          <xs:attribute name="name" type="xs:string" use="required" />\r
+                        </xs:complexType>\r
+                      </xs:element>\r
+                    </xs:sequence>\r
+                    <xs:attribute name="name" type="xs:string" use="required" />\r
+                    <xs:attribute name="size" type="xs:int" use="optional" />\r
+                  </xs:complexType>\r
+                </xs:element>\r
+              </xs:sequence>\r
+            </xs:complexType>\r
+          </xs:element>\r
+        </xs:choice>\r
+      </xs:sequence>\r
+      <xs:attribute name="version" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:decimal">\r
+            <xs:enumeration value="1.0" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Certain child options (product, options, vendor) of the header tag are \r
+  required for main models but not for included files -->\r
+  <xs:element name="header">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the origin of the model and required\r
+        capabilities. Note that certain child elements (i.e. product,\r
+        options, vendor) are required for the primary file but not for\r
+        included files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="vendor" type="xs:string" minOccurs="0" />\r
+        <xs:element name="name" type="xs:string" minOccurs="0" />\r
+        <xs:element name="version" type="xs:string" minOccurs="0" />\r
+        <xs:element name="caption" type="xs:string" minOccurs="0" />\r
+        <xs:element name="author" type="xs:string" minOccurs="0" />\r
+        <xs:element name="affiliation" type="xs:string" minOccurs="0" />\r
+        <xs:element name="client" type="xs:string" minOccurs="0" />\r
+        <xs:element name="copyright" type="xs:string" minOccurs="0" />\r
+        <xs:element name="created" type="xs:date" minOccurs="0" />\r
+        <xs:element name="modified" type="xs:date" minOccurs="0" />\r
+        <xs:element name="uuid" minOccurs="0">\r
+          <xs:simpleType>\r
+            <xs:restriction base="xs:string">\r
+              <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />\r
+            </xs:restriction>\r
+          </xs:simpleType>\r
+        </xs:element>\r
+        <xs:element ref="image" minOccurs="0" />\r
+        <xs:element ref="options" minOccurs="0" />\r
+        <xs:element ref="product" minOccurs="0" />\r
+        <xs:element ref="contact" minOccurs="0" />\r
+        <xs:element ref="includes" minOccurs="0" />\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="image">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Picture of the model in JPG, GIF, TIF, or PNG format. The\r
+        resource attribute is optional and may specify a relative\r
+        file path, an absolute file path, or a URL.  The picture\r
+        data may also be embedded inside the tag in Data URI format,\r
+        using base64 encoding.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+          <xs:attribute name="size_to_parent" type="xs:boolean" default="false" />\r
+          <!--clarify_spec - width and height not always necessary?-->\r
+          <xs:attribute name="width" type="xs:int" use="optional" />\r
+          <xs:attribute name="height" type="xs:int" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="contact">\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="fax" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="website" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="options">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the required capabilities to use this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="uses_conveyor" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="arrest" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="leak" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_queue" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="overflow" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_submodels" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_macros" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="references_macros" type="xs:boolean" use="required" />\r
+            <xs:attribute name="option_filters" type="xs:boolean" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_event_posters" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="messages" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="has_model_view" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_outputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_display" type="xs:boolean" />\r
+            <xs:attribute name="lamp" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="gauge" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_inputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_input" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="list" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="graphical_input" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_annotation" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_arrays" minOccurs="0" >\r
+          <xs:complexType>\r
+            <xs:attribute name="max_dimensions" type="xs:integer" use="required" />\r
+            <xs:attribute name="invalid_index_value" default="0" use="optional">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:double">\r
+                  <xs:enumeration value="0" />\r
+                  <xs:enumeration value="NaN" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="product">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="version" type="xs:string" use="required" />\r
+          <xs:attribute name="lang" type="xs:string" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="includes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides a list of included files/resources.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="include" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="resource" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="sim_specs">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default simulation specifications for this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stop" type="xs:double" minOccurs="1" />\r
+        <xs:element name="start" type="xs:double" minOccurs="1" />\r
+        <xs:element name="dt" minOccurs="0" default="1">\r
+          <xs:complexType>\r
+            <xs:simpleContent>\r
+              <xs:extension base="xs:double">\r
+                <xs:attribute name="reciprocal" type="xs:boolean" default="false" use="optional" />\r
+              </xs:extension>\r
+            </xs:simpleContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="run" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="by" use="required">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="all" />\r
+                  <xs:enumeration value="group" />\r
+                  <xs:enumeration value="module" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="time_units" type="time_unit_type" default="" use="optional" />\r
+      <xs:attribute name="method" type="method_type" default="euler" use="optional" />\r
+      <xs:attribute name="pause" type="xs:double" use="optional" default="INF" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:simpleType name="method_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a method while providing an\r
+        enumerated list of recommended standard types.\r
+        Valid entries include enumerated entries as well as comma\r
+        separated lists, such as "rk2,rk4".\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_method_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_method_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="euler" />\r
+      <xs:enumeration value="rk2" />\r
+      <xs:enumeration value="rk2_auto" />\r
+      <xs:enumeration value="rk4" />\r
+      <xs:enumeration value="rk4_auto" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="time_unit_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a time unit while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_time_unit_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_time_unit_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="day" />\r
+      <xs:enumeration value="hour" />\r
+      <xs:enumeration value="microsecond" />\r
+      <xs:enumeration value="millisecond" />\r
+      <xs:enumeration value="minute" />\r
+      <xs:enumeration value="month" />\r
+      <xs:enumeration value="nanosecond" />\r
+      <xs:enumeration value="quarter" />\r
+      <xs:enumeration value="second" />\r
+      <xs:enumeration value="week" />\r
+      <xs:enumeration value="year" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="model_units">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definitions of units used in this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="unit" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice>\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1"/>\r
+              <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:choice>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="model">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definition of model equations and optional diagrams.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:sequence>\r
+\r
+      <!-- note - name is generally required/recommended but is optional for primary model -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+\r
+      <xs:attribute name="resource" type="xs:string" use="optional" />\r
+      <xs:attribute name="run" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="password" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- entity is used for both just a name declaration and a name with a value\r
+       we use the name with the value as the ref and inline uses where there are\r
+       online attributes -->\r
+  <xs:element name="entity">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="value" type="xs:double" />\r
+      </xs:all>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="index" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+\r
+\r
+  <xs:element name="variables">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A list of stocks, flows, auxiliaries (with equations) used in the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="stock" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="flow" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="aux" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="module" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Implementation note: Cannot use extensions to inherit common elements for stock, flow, aux elements, as this enforces\r
+    ordering between inherited and new child elements. -->\r
+\r
+  <xs:element name="stock">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called level or state. Stocks\r
+        accumulate. Their value at the start of the simulation must be set\r
+        as either a constant or with an initial equation. The initial\r
+        equation is evaluated only once, at the beginning of the\r
+        simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements for stock -->\r
+        <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <!-- common attributes -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="conveyor">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides additional options for a stock that describe the\r
+        characteristics of a conveyor.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="len" type="xs:string" minOccurs="0" />\r
+        <xs:element name="capacity" type="xs:string" minOccurs="0" />\r
+        <xs:element name="in_limit" type="xs:string" minOccurs="0" />\r
+        <xs:element name="sample" type="xs:string" minOccurs="0" />\r
+        <xs:element name="arrest" type="xs:string" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="discrete" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="batch_integrity" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="one_at_a_time" type="xs:boolean" use="optional" default="true" />\r
+      <xs:attribute name="exponential_leak" type="xs:boolean" use="optional" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="flow">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called a rate or a derivative.\r
+        Flows represent the rate of change of a stock. Each timestep the\r
+        flow multiplied by the timestep is added to the stock.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements elements for flow -->\r
+        <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="overflow" type="empty_type" />\r
+        <xs:element name="leak" type="empty_type" />\r
+        <xs:element name="leak_integers" type="empty_type" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="overflow" type="empty_type" />\r
+              <xs:element name="leak" type="empty_type" />\r
+              <xs:element name="leak_integers" type="empty_type" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for flow -->\r
+      <xs:attribute name="leak_start" type="xs:double" default="0" />\r
+      <xs:attribute name="leak_end" type="xs:double" default="1" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="aux">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model. Auxiliaries allow the isolation of\r
+        any algebraic function that is used. They can both clarify a model\r
+        and factor out important or repeated calculations. They can be\r
+        defined using any algebraic expression (including a constant\r
+        value), optionally in conjunction with a graphical function.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for aux -->\r
+      <xs:attribute name="flow_concept" type="xs:boolean" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="access_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Used in conjunction with submodels to define input and outputs.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="input" />\r
+      <xs:enumeration value="output" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="scale">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default scale for a variable output.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="auto" type="xs:boolean" use="optional" />\r
+      <xs:attribute name="group" type="xs:integer" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="range">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default range of allowable inputs for a variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:attributeGroup name="format_attributes" >\r
+    <xs:attribute name="precision" type="xs:double" use="optional" />\r
+    <xs:attribute name="scale_by" type="xs:integer" default="1" use="optional" />\r
+    <xs:attribute name="delimit_000s" type="xs:boolean" default="false" use="optional" />\r
+    <xs:attribute name="display_as" default="number" use="optional">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="number" />\r
+          <xs:enumeration value="currency" />\r
+          <xs:enumeration value="percent" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:element name="format">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default format when displaying a variable or accepting input.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attributeGroup ref="format_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="gf">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Graphical function, alternately called lookup functions or table\r
+        functions. They represent a (potentially) non-linear relationship.\r
+        Graphical functions may occur as part of other variables or (with\r
+        a name) as a stand alone variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="xscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="yscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="xpts" type="points_type" minOccurs="0" />\r
+        <xs:element name="ypts" type="points_type" minOccurs="1" />\r
+      </xs:all>\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="type" use="optional" default="continuous">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="continuous" />\r
+            <xs:enumeration value="extrapolate" />\r
+            <xs:enumeration value="discrete" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="min_max_type">\r
+    <xs:attribute name="min" type="xs:double" />\r
+    <xs:attribute name="max" type="xs:double" />\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="points_type">\r
+    <xs:simpleContent>\r
+      <xs:extension base="xs:string">\r
+        <xs:attribute name="sep" type="xs:string" use="optional" default="," />\r
+      </xs:extension>\r
+    </xs:simpleContent>\r
+  </xs:complexType>\r
+\r
+  <xs:element name="group">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A grouping of variables, also called a sector or view.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <!-- this entity use does not allow an index only the name as an attribute -->\r
+        <xs:element name="entity" minOccurs="0" maxOccurs="unbounded" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="module">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Modules are placeholders in the variables section for submodels. If\r
+        present, this must appear in every model that references that\r
+        submodel.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="connect" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="to" type="xs:string" use="required" />\r
+            <xs:attribute name="from" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <!-- the resource is really only optional if the submodel is contained in the model - otherwise it much refer to location-->\r
+      <xs:attribute name="resource" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="dimensions">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Dimensions for a specific stock, flow, or aux in a model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="event_poster">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Events based on entity values can be triggered while the model\r
+        is being simulated. These events are limited to pausing the\r
+        simulation (default) or stopping the simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence maxOccurs="unbounded">\r
+        <xs:element name="threshold">\r
+          <xs:complexType>\r
+            <xs:sequence>\r
+              <xs:element name="event" minOccurs="0" maxOccurs="unbounded">\r
+                <xs:complexType>\r
+                  <xs:choice maxOccurs="unbounded">\r
+                    <xs:element ref="text_box" />\r
+                    <xs:element ref="image" />\r
+                    <xs:element ref="video" />\r
+                    <xs:element ref="sound" />\r
+                    <xs:element ref="link" />\r
+                  </xs:choice>\r
+                  <xs:attribute name="sim_action" use="optional" default="pause">\r
+                    <xs:simpleType>\r
+                      <xs:restriction base="xs:string">\r
+                        <xs:enumeration value="pause" />\r
+                        <xs:enumeration value="stop" />\r
+                        <xs:enumeration value="message" />\r
+                      </xs:restriction>\r
+                    </xs:simpleType>\r
+                  </xs:attribute>\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:sequence>\r
+            <xs:attribute name="value" type="xs:double" use="required" />\r
+            <xs:attribute name="direction" use="optional" default="increasing">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="increasing" />\r
+                  <xs:enumeration value="decreasing" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="repeat" use="optional" default="each">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="each" />\r
+                  <xs:enumeration value="once" />\r
+                  <xs:enumeration value="once_ever" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="interval" type="xs:integer" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+      <xs:attribute name="min" type="xs:double" use="required" />\r
+      <xs:attribute name="max" type="xs:double" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="views">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        List of views or diagrams pertaining to the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="view" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:complexContent>\r
+              <xs:extension base="view_content_type">\r
+                <xs:attribute name="background" type="xs:string" />\r
+                <xs:attribute name="zoom" type="xs:double" />\r
+                <xs:attribute name="scroll_x" type="xs:double" />\r
+                <xs:attribute name="scroll_y" type="xs:double" />\r
+                <xs:attribute name="home_page" type="xs:integer" />\r
+                <xs:attribute name="home_view" type="xs:boolean" />\r
+                <xs:attribute name="page_width" type="xs:double" />\r
+                <xs:attribute name="page_height" type="xs:double" />\r
+                <xs:attribute name="show_pages" type="xs:boolean" />\r
+                <xs:attribute name="page_orientation">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="landscape" />\r
+                      <xs:enumeration value="portrait" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+                <xs:attribute name="page_sequence">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="row" />\r
+                      <xs:enumeration value="column" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+                <xs:attribute name="type" type="view_type" default="stock_flow" />\r
+                <!-- clarify_spec - the following are for popups only -->\r
+                <xs:attribute name="x" type="xs:int" use="optional" />\r
+                <xs:attribute name="y" type="xs:int" use="optional" />\r
+                <xs:attribute name="content" type="xs:string" use="optional" />\r
+              </xs:extension>\r
+            </xs:complexContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:simpleType name="view_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="stock_flow"/>\r
+      <xs:enumeration value="interface"/>\r
+      <xs:enumeration value="popup"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <xs:simpleType name="menu_action_choices">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="open"/>\r
+      <xs:enumeration value="close"/>\r
+      <xs:enumeration value="save"/>\r
+      <xs:enumeration value="save_as"/>\r
+      <xs:enumeration value="save_as_image"/>\r
+      <xs:enumeration value="revert"/>\r
+      <xs:enumeration value="print_setup"/>\r
+      <xs:enumeration value="print"/>\r
+      <xs:enumeration value="print_screen"/>\r
+      <xs:enumeration value="run"/>\r
+      <xs:enumeration value="pause"/>\r
+      <xs:enumeration value="resume"/>\r
+      <xs:enumeration value="stop"/>\r
+      <xs:enumeration value="run_restore"/>\r
+      <xs:enumeration value="restore_all"/>\r
+      <xs:enumeration value="restore_sliders"/>\r
+      <xs:enumeration value="restore_knobs"/>\r
+      <xs:enumeration value="restore_list_inputs"/>\r
+      <xs:enumeration value="restore_graphical_inputs"/>\r
+      <xs:enumeration value="restore_switches"/>\r
+      <xs:enumeration value="restore_numeric_displays"/>\r
+      <xs:enumeration value="restore_graphs_tables"/>\r
+      <xs:enumeration value="restore_lamps_gauges"/>\r
+      <xs:enumeration value="data_manager"/>\r
+      <xs:enumeration value="save_data_now"/>\r
+      <xs:enumeration value="import_now"/>\r
+      <xs:enumeration value="export_now"/>\r
+      <xs:enumeration value="exit"/>\r
+      <xs:enumeration value="find"/>\r
+      <xs:enumeration value="run_specs"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <xs:complexType name="view_content_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Content of a view or container\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+      <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+\r
+      <xs:element name="stock">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="flow">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="pts">\r
+              <xs:complexType>\r
+                <xs:sequence maxOccurs="unbounded">\r
+                  <xs:element name="pt">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:sequence>\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="aux">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="module">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="group">\r
+        <xs:complexType>\r
+          <xs:sequence minOccurs ="0" maxOccurs="unbounded">\r
+            <xs:element name="item">\r
+              <xs:complexType>\r
+                <xs:attribute name="uid" type="xs:int" />\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:sequence>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attribute name="locked" type="xs:boolean" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="connector">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element name="from" minOccurs="1">\r
+              <xs:complexType mixed="true">\r
+                <xs:all minOccurs="0">\r
+                  <xs:element name="alias" minOccurs="0">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="uid" type="xs:int" />\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:all>\r
+              </xs:complexType>\r
+            </xs:element>\r
+            <xs:element name="to" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="angle" type="xs:double" />\r
+          <xs:attribute name="delay_mark" type="xs:boolean" use="optional" default="false" />\r
+          <xs:attribute name="line_style" use="optional" default="solid">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="solid" />\r
+                <xs:enumeration value="dashed" />\r
+                <xs:enumeration value="vendor specific" />\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="alias">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="of" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element ref="text_box" />\r
+      <xs:element ref="graphics_frame" />\r
+\r
+      <!-- Output objects -->\r
+      <xs:element name="graph">\r
+        <xs:complexType>\r
+          <xs:choice>\r
+            <xs:element ref="plot" minOccurs="1" maxOccurs="unbounded"/>\r
+          </xs:choice>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attribute name="type" type="graph_type" default="time_series"/>\r
+          <xs:attribute name="title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="doc" type="xs:string" use="optional"/>\r
+          <xs:attribute name="show_grid" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="num_x_grid_lines" type="xs:int" default="0"/>\r
+          <xs:attribute name="num_y_grid_lines" type="xs:int" default="0"/>\r
+          <xs:attribute name="num_y_labels" type="xs:int" default="0"/>\r
+          <xs:attribute name="x_axis_title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="right_axis_title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="right_axis_auto_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="right_axis_multi_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="left_axis_title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="left_axis_auto_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="left_axis_multi_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="plot_numbers" type="xs:boolean" default="false"/>\r
+          <xs:attribute name="comparative" type="xs:boolean" default="false"/>\r
+          <xs:attribute name="from" type="xs:double" use="optional"/>\r
+          <xs:attribute name="to" type="xs:double" use="optional"/>\r
+\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+\r
+      <!-- Output objects -->\r
+\r
+      <xs:element name="table">\r
+        <xs:complexType>\r
+          <xs:choice>\r
+            <!-- we expand item inline because it is specialized for the table even though not defined a a separate type elsewhere -->\r
+            <xs:element name="item" minOccurs="1" maxOccurs="unbounded">\r
+              <xs:complexType>\r
+                <xs:all>\r
+                  <!-- note that entity is not optional if type = variable but the conditional logic is not in this xsd-->\r
+                  <xs:element name="entity" minOccurs="0"  >\r
+                    <xs:complexType>\r
+                      <xs:attribute name="name" type="xs:string" use="required" />\r
+                      <xs:attribute name="index" type="xs:string" use="optional" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:all>\r
+                <xs:attributeGroup ref="style_attributes" />\r
+                <xs:attributeGroup ref="format_attributes" />\r
+                <xs:attribute name="type" type="table_item_type" default="variable" />\r
+                <!-- clarify_spec - this is necessary to maintain order but not clearly delineated in the spec -->\r
+                <xs:attribute name="index" type="xs:int" />\r
+\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:choice>\r
+          <!-- note that default text alignment is right but that is not broken out in style_attributes -->\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attribute name="title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="doc" type="xs:string" use="optional"/>\r
+          <xs:attribute name="orientation" type="orientation" default="vertical" />\r
+          <xs:attribute name="column_width" type="xs:int" use="required"/>\r
+          <xs:attribute name="blank_column_width" type="xs:int" use="optional"/>\r
+          <xs:attribute name="report_interval" type="report_interval" use="required"/>\r
+          <xs:attribute name="report_balances" type="report_balances" default="beginning"/>\r
+          <xs:attribute name="report_flows" type="report_flows" default="instantaneous"/>\r
+          <xs:attribute name="comparative" type="xs:boolean" default="false"/>\r
+          <xs:attribute name="wrap_text" type="xs:boolean" default="false"/>\r
+          <xs:attributeGroup ref="header_style_attributes"/>\r
+\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+\r
+\r
+\r
+      <!-- input devices -->\r
+\r
+      <xs:element name="button">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="image" minOccurs="0" />\r
+            <xs:element ref="video" minOccurs="0" />\r
+            <xs:element ref="sound"  minOccurs="0"/>\r
+            <xs:element name="menu_action" minOccurs ="0">\r
+              <xs:complexType>\r
+                <xs:simpleContent>\r
+                  <xs:extension base="menu_action_choices">\r
+                    <!-- the following only apply for import_now and export_now - then they are required see spec-->\r
+                    <xs:attribute name="resource" type="xs:string" use="optional" />\r
+                    <xs:attribute name="worksheet" type="xs:string" use="optional" />\r
+                    <xs:attribute name="all" type="xs:boolean" default="false" />\r
+                    <!-- the following only with save_data_now -->\r
+                    <xs:attribute name="run_name" type="xs:string" use="optional" />\r
+                  </xs:extension>\r
+                </xs:simpleContent>\r
+              </xs:complexType>\r
+            </xs:element>\r
+            <xs:element ref="switch_action" minOccurs ="0" />\r
+            <xs:element ref="popup" minOccurs="0" />\r
+            <xs:element ref="link" minOccurs="0" />\r
+          </xs:all>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+          <xs:attribute name="transparency" type="transparency_type" default="opaque" />\r
+          <xs:attribute name="style" default="square">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="square"/>\r
+                <xs:enumeration value="rounded"/>\r
+                <xs:enumeration value="capsule"/>\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attribute name="label" type="xs:string" use="optional" />\r
+          <!-- clarify_spec - should list attributes and elements separately clicking_sound is between two elements -->\r
+          <xs:attribute name="clicking_sound" type="xs:boolean" default="true" />\r
+\r
+\r
+          <xs:attribute name="show_name" type="xs:boolean" use="optional" default="true"/>\r
+          <xs:attribute name="show_number" type="xs:boolean" use="optional" default="true"/>\r
+          <xs:attribute name="show_min_max" type="xs:boolean" use="optional" default="true"/>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <!-- clarify_spec - buttons need uids  -->\r
+          <xs:attribute name="uid" type="xs:int" use="optional" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element ref="slider" />\r
+      <xs:element ref="knob" />\r
+      <xs:element ref="list_input" />\r
+      <xs:element ref="numeric_display" />\r
+      <xs:element ref="switch" />\r
+      <xs:element ref="graphical_input" />\r
+      <xs:element ref="stacked_container" />\r
+\r
+      <!-- options is also used for file options so is expanded inline here -->\r
+      <xs:element name="options">\r
+        <xs:complexType>\r
+          <xs:choice>\r
+            <xs:element ref="entity" maxOccurs="unbounded" />\r
+          </xs:choice>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+          <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+          <xs:attribute name="clicking_sound" type="xs:boolean" default="false" />\r
+          <xs:attribute name="layout" default="vertical">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="vertical"/>\r
+                <xs:enumeration value="horizontal"/>\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attribute name="vertical_spacing" type="xs:int" default="2" />\r
+          <xs:attribute name="horizontal_spacing" type="xs:int" default="2" />\r
+          <xs:attribute name="uid" type="xs:int" use="required" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+\r
+\r
+    </xs:choice>\r
+\r
+\r
+    <xs:attribute name="width" type="xs:double" use="optional" />\r
+    <xs:attribute name="height" type="xs:double" use="optional" />\r
+\r
+  </xs:complexType>\r
+\r
+\r
+  <!-- output object type definitions -->\r
+  <xs:simpleType name="graph_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="time_series"/>\r
+      <xs:enumeration value="scatter"/>\r
+      <xs:enumeration value="bar"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="orientation">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="horizontal"/>\r
+      <xs:enumeration value="vertical"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="table_item_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="variable"/>\r
+      <xs:enumeration value="space"/>\r
+      <xs:enumeration value="time"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <xs:simpleType name="report_interval">\r
+    <xs:union>\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:double"/>\r
+      </xs:simpleType>\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="DT"/>\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:union>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="report_balances">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="beginning"/>\r
+      <xs:enumeration value="ending"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="report_flows">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="instantaneous"/>\r
+      <xs:enumeration value="summed"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="slider">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="reset_to" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="show_name" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_number" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_min_max" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="name" type="xs:string" />\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="precision" type="xs:double" use="optional" />\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="knob">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="show_name" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_number" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_min_max" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="name" type="xs:string" />\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="precision" type="xs:double" use="optional" />\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:element name="list_input">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element name="numeric_input"  maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <!-- note we do not expect value in this case-->\r
+              <xs:element name="entity" minOccurs="0"  >\r
+                <xs:complexType>\r
+                  <xs:attribute name="name" type="xs:string" use="required" />\r
+                  <xs:attribute name="index" type="xs:string" use="optional" />\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:all>\r
+            <xs:attribute name="min" type="xs:double" use="optional" />\r
+            <xs:attribute name="max" type="xs:double" use="optional" />\r
+            <xs:attribute name="precision" type="xs:double" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="column_width" type="xs:int" use="required"/>\r
+      <!-- the following is required if used in a stacked container -->\r
+      <xs:attribute name="index" type="xs:int" use="optional"/>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="numeric_display">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attributeGroup ref="format_attributes" />\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+      <xs:attribute name="retain_ending_value" type="xs:boolean" default="false" />\r
+      <xs:attribute name="uid" type="xs:int" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="switch">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+            <xs:attribute name="value" type="xs:double" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="reset_to" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+      <xs:attribute name="clicking_sound" type="xs:boolean" default="false" />\r
+      <xs:attribute name="switch_style" default="toggle">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="toggle"/>\r
+            <xs:enumeration value="push_button"/>\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="uid" type="xs:int" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:element name="graphical_input">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="gf" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+      <!--clarify_spec - what uid values are truly required? -->\r
+      <xs:attribute name="uid" type="xs:int" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+\r
+  <xs:element name="stacked_container">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A stacked container is used to allow XMILE display objects to be\r
+        stacked on top of one another in flipbook form.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:complexContent>\r
+        <xs:extension base="view_content_type">\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attribute name="visible_index" type="xs:integer" />\r
+        </xs:extension>\r
+      </xs:complexContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="plot">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="scale" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="index" type="xs:int" />\r
+      <xs:attribute name="pen_width" type="xs:int" default="1" />\r
+      <xs:attribute name="pen_style" type="penstyle" default="solid" />\r
+      <xs:attribute name="show_y_axis" type="xs:boolean" default="true" />\r
+      <xs:attribute name="title" type="xs:string" use="required" />\r
+      <xs:attribute name="right_axis" type="xs:boolean" default="false" />\r
+\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="penstyle">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="solid"/>\r
+      <xs:enumeration value="dotted"/>\r
+      <xs:enumeration value="dashed"/>\r
+      <xs:enumeration value="dot_dashed"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+\r
+  <!-- input device type definitions -->\r
+  <xs:simpleType name="after_choices">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="one_time"/>\r
+      <xs:enumeration value="one_dt"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="reset_to">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:double">\r
+          <xs:attribute name="after" type="after_choices"/>\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <!-- clarify_spec this is not really spelled out completely in the spec -->\r
+  <xs:element name="switch_action">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element ref="entity" />\r
+        <xs:element name="group">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="value" type="xs:double" />\r
+            </xs:all>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- clarify_spec this is not really spelled out completely in the spec -->\r
+  <xs:element name="popup">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element ref="text_box" />\r
+        <xs:element ref="image" />\r
+        <xs:element ref="video" />\r
+        <xs:element ref="sound" />\r
+        <xs:element ref="link" />\r
+      </xs:choice>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:element name="shape">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Optional shape of a given element.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="type" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="rectangle" />\r
+            <xs:enumeration value="circle" />\r
+            <xs:enumeration value="name_only" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="width" use="optional" />\r
+      <xs:attribute name="height" use="optional" />\r
+      <xs:attribute name="radius" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="behavior">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Simulation behavior definitions that are inherited/cascaded through all\r
+        models defined in this XMILE document.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+        <xs:element name="stock" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="flow">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="macro">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Defines macros that provide custom functions or building blocks that\r
+        can be used in model entity\r
+        equations.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <xs:element name="parm" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="eqn" type="xs:string" minOccurs="1" maxOccurs="1" />\r
+        <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+      <xs:attribute name="filter" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="stock" />\r
+            <xs:enumeration value="flow" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="applyto" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="inflows" />\r
+            <xs:enumeration value="outflows" />\r
+            <xs:enumeration value="upstream" />\r
+            <xs:enumeration value="downstream" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- clarify_spec - note that style is not allowed at the file level  in this xsd -->\r
+  <xs:element name="style">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stock" type="style_type" minOccurs="0" />\r
+        <xs:element name="flow" type="style_type" minOccurs="0" />\r
+        <xs:element name="aux" type="style_type" minOccurs="0" />\r
+        <xs:element name="connector" type="style_type" minOccurs="0" />\r
+        <xs:element name="module" type="style_type" minOccurs="0" />\r
+        <xs:element name="group" type="style_type" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="style_type">\r
+    <xs:attributeGroup ref="style_attributes" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:complexType>\r
+\r
+  <xs:attributeGroup name="positioning_attributes">\r
+    <xs:attribute name="x" type="xs:double" />\r
+    <xs:attribute name="y" type="xs:double" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:attributeGroup name="style_positioning_attributes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        This is a subset of what can be attached to individual display elements.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:attribute name="height" type="xs:double" />\r
+    <xs:attribute name="width" type="xs:double" />\r
+    <xs:attribute name="label_side">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="top" />\r
+          <xs:enumeration value="left" />\r
+          <xs:enumeration value="center" />\r
+          <xs:enumeration value="bottom" />\r
+          <xs:enumeration value="right" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="label_angle" type="xs:double" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:simpleType name="text_align">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="left" />\r
+      <xs:enumeration value="right" />\r
+      <xs:enumeration value="center" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="vertical_text_align">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="top" />\r
+      <xs:enumeration value="bottom" />\r
+      <xs:enumeration value="center" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:attributeGroup name="style_attributes">\r
+    <xs:attribute name="border_width" type="border_width_type" />\r
+    <xs:attribute name="border_color" type="color_type" />\r
+    <xs:attribute name="border_style" default="none">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="none" />\r
+          <xs:enumeration value="solid" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_family" type="xs:string" />\r
+    <xs:attribute name="font_style" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="italic" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_weight" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="bold" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_decoration" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="underline" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_align" type="text_align" default="left" />\r
+    <xs:attribute name="vertical_text_align" type="vertical_text_align" default="center" />\r
+    <xs:attribute name="font_color" type="color_type" />\r
+    <xs:attribute name="text_background" type="color_type" />\r
+    <xs:attribute name="font_size" type="xs:string" />\r
+    <xs:attribute name="padding" type="xs:string" />\r
+    <xs:attribute name="color" type="color_type" />\r
+    <xs:attribute name="background" type="color_type" />\r
+    <xs:attribute name="z_index" type="xs:integer" />\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:attributeGroup name="header_style_attributes">\r
+    <xs:attribute name="header_border_width" type="border_width_type" />\r
+    <xs:attribute name="header_border_color" type="color_type" />\r
+    <xs:attribute name="header_border_style" default="none">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="none" />\r
+          <xs:enumeration value="solid" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_font_family" type="xs:string" />\r
+    <xs:attribute name="header_font_style" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="italic" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_font_weight" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="bold" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_text_decoration" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="underline" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_text_align" type="text_align" default="left" />\r
+    <xs:attribute name="header_vertical_text_align" type="vertical_text_align" default="center"/>\r
+    <xs:attribute name="header_font_color" type="color_type" />\r
+    <xs:attribute name="header_text_background" type="color_type" />\r
+    <xs:attribute name="header_font_size" type="xs:string" />\r
+    <xs:attribute name="header_padding" type="xs:string" />\r
+    <xs:attribute name="header_color" type="color_type" />\r
+    <xs:attribute name="header_background" type="color_type" />\r
+    <xs:attribute name="header_z_index" type="xs:integer" />\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:simpleType name="color_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_color_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_color_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="aqua" />\r
+      <xs:enumeration value="black" />\r
+      <xs:enumeration value="blue" />\r
+      <xs:enumeration value="fuchsia" />\r
+      <xs:enumeration value="gray" />\r
+      <xs:enumeration value="green" />\r
+      <xs:enumeration value="lime" />\r
+      <xs:enumeration value="maroon" />\r
+      <xs:enumeration value="navy" />\r
+      <xs:enumeration value="olive" />\r
+      <xs:enumeration value="purple" />\r
+      <xs:enumeration value="red" />\r
+      <xs:enumeration value="silver" />\r
+      <xs:enumeration value="teal" />\r
+      <xs:enumeration value="white" />\r
+      <xs:enumeration value="yellow" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="border_width_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any double to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_border_width_type xs:double" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_border_width_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="thin" />\r
+      <xs:enumeration value="thick" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="data_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="CSV"/>\r
+      <xs:enumeration value="XLS"/>\r
+      <xs:enumeration value="XML"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="frequency_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="automatic"/>\r
+      <xs:enumeration value="on_demand"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="orientation_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="vertical"/>\r
+      <xs:enumeration value="horizontal"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:attributeGroup name="data_attributes">\r
+    <xs:attribute name="type" type="data_type" default="CSV" />\r
+    <xs:attribute name="enable" type="xs:boolean" default="true" />\r
+    <xs:attribute name="frequency" type="frequency_type" default="automatic" />\r
+    <xs:attribute name="orientation" type="orientation_type" default="vertical" />\r
+    <xs:attribute name="resource" type="xs:string" use="required" />\r
+    <xs:attribute name="worksheet" type="xs:string" use="optional" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:element name="data">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element name="export" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice>\r
+              <xs:element name="all" minOccurs="0" />\r
+              <xs:element name="table" minOccurs="0">\r
+                <xs:complexType>\r
+                  <!-- note that the uid reference here is a string because it may be module qualified -->\r
+                  <xs:attribute name="uid" type="xs:string" use="required" />\r
+                  <xs:attribute name="use_settings" type="xs:boolean" default="false" />\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:choice>\r
+            <xs:attributeGroup ref="data_attributes" />\r
+            <xs:attribute name="interval" type="report_interval" default="0" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="import" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attributeGroup ref="data_attributes" />\r
+            <xs:attribute name="interval" type="report_interval" default="0" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  \r
+\r
+  <xs:element name="text_box">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attribute name="appearance" type="transparency_type" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="transparency_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="opaque"/>\r
+      <xs:enumeration value="transparent"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <!-- same as image -->\r
+  <xs:element name="video">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+          <xs:attribute name="size_to_parent" type="xs:boolean" default="false" />\r
+          <!--clarify_spec - width and height not always necessary?-->\r
+          <xs:attribute name="width" type="xs:int" use="optional" />\r
+          <xs:attribute name="height" type="xs:int" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="graphics_frame">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element ref="video" />\r
+        <xs:element ref="image" />\r
+      </xs:choice>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="uid" type="xs:int" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- almost same as image -->\r
+  <xs:element name="sound">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="link">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="x" type="xs:double" default="0" />\r
+          <xs:attribute name="y" type="xs:double" default="0" />\r
+          <xs:attribute name="zoom" type="xs:double" default="100" />\r
+          <xs:attribute name="effect" default="none">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="none"/>\r
+                <xs:enumeration value="dissolve"/>\r
+                <xs:enumeration value="checkerboard"/>\r
+                <xs:enumeration value="bars"/>\r
+                <xs:enumeration value="wipe_left"/>\r
+                <xs:enumeration value="wipe_right"/>\r
+                <xs:enumeration value="wipe_top"/>\r
+                <xs:enumeration value="wipe_bottom"/>\r
+                <xs:enumeration value="wipe_clockwise"/>\r
+                <xs:enumeration value="wipe_counterclockwise"/>\r
+                <xs:enumeration value="iris_in"/>\r
+                <xs:enumeration value="iris_out"/>\r
+                <xs:enumeration value="doors_close"/>\r
+                <xs:enumeration value="doors_open"/>\r
+                <xs:enumeration value="venetian_left"/>\r
+                <xs:enumeration value="venetian_right"/>\r
+                <xs:enumeration value="venetian_top"/>\r
+                <xs:enumeration value="venetian_bottom"/>\r
+                <xs:enumeration value="push_bottom"/>\r
+                <xs:enumeration value="push_top"/>\r
+                <xs:enumeration value="push_left"/>\r
+                <xs:enumeration value="push_right"/>\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attribute name="to_black" type="xs:boolean" default="false" />\r
+          <!-- there is some complexity in the specification of the target - see the specification\r
+                     the validity of the target string is not checked by this xsd -->\r
+          <xs:attribute name="target" type="xs:string" use="required" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="boolean_or_empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+</xs:schema>\r
diff --git a/org.simantics.sysdyn.xmile/schema/xmile-1.0.xsd b/org.simantics.sysdyn.xmile/schema/xmile-1.0.xsd
new file mode 100644 (file)
index 0000000..e2144bf
--- /dev/null
@@ -0,0 +1,1994 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"\r
+  xmlns="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0" targetNamespace="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0">\r
+\r
+  <!-- \r
+  \r
+  Schema for XMILE v1.0  October 13, 2014\r
+  \r
+    Contributing Authors: Will Glass-Hussain\r
+                          Robert Eberlein\r
+  -->\r
+\r
+  <xs:element name="xmile">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        The root element for the XMILE file. Note that certain child elements\r
+        (i.e. model) are required for the primary file but not for included\r
+        files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="header" />\r
+        <xs:choice maxOccurs="unbounded">\r
+          <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="model_units" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="data" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="macro" minOccurs="0" maxOccurs="unbounded" />\r
+          <xs:element ref="model" minOccurs="1" maxOccurs="unbounded" />\r
+\r
+          <!-- need to inline dimensions element below to avoid conflict with dimensions element in stock/flow/aux -->\r
+          <xs:element name="dimensions">\r
+            <xs:complexType>\r
+              <xs:sequence>\r
+                <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+                  <xs:complexType>\r
+                    <xs:sequence maxOccurs="unbounded">\r
+                      <xs:element name="elem" minOccurs="0" maxOccurs="unbounded">\r
+                        <xs:complexType>\r
+                          <xs:attribute name="name" type="xs:string" use="required" />\r
+                        </xs:complexType>\r
+                      </xs:element>\r
+                    </xs:sequence>\r
+                    <xs:attribute name="name" type="xs:string" use="required" />\r
+                    <xs:attribute name="size" type="xs:int" use="optional" />\r
+                  </xs:complexType>\r
+                </xs:element>\r
+              </xs:sequence>\r
+            </xs:complexType>\r
+          </xs:element>\r
+        </xs:choice>\r
+      </xs:sequence>\r
+      <xs:attribute name="version" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:decimal">\r
+            <xs:enumeration value="1.0" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Certain child options (product, options, vendor) of the header tag are \r
+  required for main models but not for included files -->\r
+  <xs:element name="header">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the origin of the model and required\r
+        capabilities. Note that certain child elements (i.e. product,\r
+        options, vendor) are required for the primary file but not for\r
+        included files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="vendor" type="xs:string" minOccurs="0" />\r
+        <xs:element name="name" type="xs:string" minOccurs="0" />\r
+        <xs:element name="version" type="xs:string" minOccurs="0" />\r
+        <xs:element name="caption" type="xs:string" minOccurs="0" />\r
+        <xs:element name="author" type="xs:string" minOccurs="0" />\r
+        <xs:element name="affiliation" type="xs:string" minOccurs="0" />\r
+        <xs:element name="client" type="xs:string" minOccurs="0" />\r
+        <xs:element name="copyright" type="xs:string" minOccurs="0" />\r
+        <xs:element name="created" type="xs:date" minOccurs="0" />\r
+        <xs:element name="modified" type="xs:date" minOccurs="0" />\r
+        <xs:element name="uuid" minOccurs="0">\r
+          <xs:simpleType>\r
+            <xs:restriction base="xs:string">\r
+              <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />\r
+            </xs:restriction>\r
+          </xs:simpleType>\r
+        </xs:element>\r
+        <xs:element ref="image" minOccurs="0" />\r
+        <xs:element ref="options" minOccurs="0" />\r
+        <xs:element ref="product" minOccurs="0" />\r
+        <xs:element ref="contact" minOccurs="0" />\r
+        <xs:element ref="includes" minOccurs="0" />\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="image">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Picture of the model in JPG, GIF, TIF, or PNG format. The\r
+        resource attribute is optional and may specify a relative\r
+        file path, an absolute file path, or a URL.  The picture\r
+        data may also be embedded inside the tag in Data URI format,\r
+        using base64 encoding.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+          <xs:attribute name="size_to_parent" type="xs:boolean" default="false" />\r
+          <!--clarify_spec - width and height not always necessary?-->\r
+          <xs:attribute name="width" type="xs:int" use="optional" />\r
+          <xs:attribute name="height" type="xs:int" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="contact">\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="fax" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="website" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="options">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the required capabilities to use this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="uses_conveyor" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="arrest" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="leak" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_queue" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="overflow" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_submodels" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_macros" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="references_macros" type="xs:boolean" use="required" />\r
+            <xs:attribute name="option_filters" type="xs:boolean" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_event_posters" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="messages" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="has_model_view" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_outputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_display" type="xs:boolean" />\r
+            <xs:attribute name="lamp" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="gauge" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_inputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_input" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="list" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="graphical_input" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_annotation" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_arrays" minOccurs="0" >\r
+          <xs:complexType>\r
+            <xs:attribute name="max_dimensions" type="xs:integer" use="required" />\r
+            <xs:attribute name="invalid_index_value" default="0" use="optional">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:double">\r
+                  <xs:enumeration value="0" />\r
+                  <xs:enumeration value="NaN" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="product">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="version" type="xs:string" use="required" />\r
+          <xs:attribute name="lang" type="xs:string" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="includes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides a list of included files/resources.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="include" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="resource" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="sim_specs">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default simulation specifications for this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stop" type="xs:double" minOccurs="1" />\r
+        <xs:element name="start" type="xs:double" minOccurs="1" />\r
+        <xs:element name="dt" minOccurs="0" default="1">\r
+          <xs:complexType>\r
+            <xs:simpleContent>\r
+              <xs:extension base="xs:double">\r
+                <xs:attribute name="reciprocal" type="xs:boolean" default="false" use="optional" />\r
+              </xs:extension>\r
+            </xs:simpleContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="run" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="by" use="required">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="all" />\r
+                  <xs:enumeration value="group" />\r
+                  <xs:enumeration value="module" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="time_units" type="time_unit_type" default="" use="optional" />\r
+      <xs:attribute name="method" type="method_type" default="euler" use="optional" />\r
+      <xs:attribute name="pause" type="xs:double" use="optional" default="INF" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:simpleType name="method_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a method while providing an\r
+        enumerated list of recommended standard types.\r
+        Valid entries include enumerated entries as well as comma\r
+        separated lists, such as "rk2,rk4".\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_method_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_method_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="euler" />\r
+      <xs:enumeration value="rk2" />\r
+      <xs:enumeration value="rk2_auto" />\r
+      <xs:enumeration value="rk4" />\r
+      <xs:enumeration value="rk4_auto" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="time_unit_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a time unit while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_time_unit_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_time_unit_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="day" />\r
+      <xs:enumeration value="hour" />\r
+      <xs:enumeration value="microsecond" />\r
+      <xs:enumeration value="millisecond" />\r
+      <xs:enumeration value="minute" />\r
+      <xs:enumeration value="month" />\r
+      <xs:enumeration value="nanosecond" />\r
+      <xs:enumeration value="quarter" />\r
+      <xs:enumeration value="second" />\r
+      <xs:enumeration value="week" />\r
+      <xs:enumeration value="year" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="model_units">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definitions of units used in this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="unit" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice>\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1"/>\r
+              <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:choice>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="model">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definition of model equations and optional diagrams.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:sequence>\r
+\r
+      <!-- note - name is generally required/recommended but is optional for primary model -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+\r
+      <xs:attribute name="resource" type="xs:string" use="optional" />\r
+      <xs:attribute name="run" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="password" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- entity is used for both just a name declaration and a name with a value\r
+       we use the name with the value as the ref and inline uses where there are\r
+       online attributes -->\r
+  <xs:element name="entity">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="value" type="xs:double" />\r
+      </xs:all>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="index" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+\r
+\r
+  <xs:element name="variables">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A list of stocks, flows, auxiliaries (with equations) used in the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="stock" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="flow" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="auxiliary" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="module" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Implementation note: Cannot use extensions to inherit common elements for stock, flow, aux elements, as this enforces\r
+    ordering between inherited and new child elements. -->\r
+\r
+  <xs:element name="stock">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called level or state. Stocks\r
+        accumulate. Their value at the start of the simulation must be set\r
+        as either a constant or with an initial equation. The initial\r
+        equation is evaluated only once, at the beginning of the\r
+        simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements for stock -->\r
+        <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <!-- common attributes -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="conveyor">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides additional options for a stock that describe the\r
+        characteristics of a conveyor.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="len" type="xs:string" minOccurs="0" />\r
+        <xs:element name="capacity" type="xs:string" minOccurs="0" />\r
+        <xs:element name="in_limit" type="xs:string" minOccurs="0" />\r
+        <xs:element name="sample" type="xs:string" minOccurs="0" />\r
+        <xs:element name="arrest" type="xs:string" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="discrete" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="batch_integrity" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="one_at_a_time" type="xs:boolean" use="optional" default="true" />\r
+      <xs:attribute name="exponential_leak" type="xs:boolean" use="optional" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="flow">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called a rate or a derivative.\r
+        Flows represent the rate of change of a stock. Each timestep the\r
+        flow multiplied by the timestep is added to the stock.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements elements for flow -->\r
+        <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="overflow" type="empty_type" />\r
+        <xs:element name="leak" type="empty_type" />\r
+        <xs:element name="leak_integers" type="empty_type" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="overflow" type="empty_type" />\r
+              <xs:element name="leak" type="empty_type" />\r
+              <xs:element name="leak_integers" type="empty_type" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for flow -->\r
+      <xs:attribute name="leak_start" type="xs:double" default="0" />\r
+      <xs:attribute name="leak_end" type="xs:double" default="1" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="auxiliary">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model. Auxiliaries allow the isolation of\r
+        any algebraic function that is used. They can both clarify a model\r
+        and factor out important or repeated calculations. They can be\r
+        defined using any algebraic expression (including a constant\r
+        value), optionally in conjunction with a graphical function.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for aux -->\r
+      <xs:attribute name="flow_concept" type="xs:boolean" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="access_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Used in conjunction with submodels to define input and outputs.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="input" />\r
+      <xs:enumeration value="output" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="scale">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default scale for a variable output.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="auto" type="xs:boolean" use="optional" />\r
+      <xs:attribute name="group" type="xs:integer" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="range">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default range of allowable inputs for a variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:attributeGroup name="format_attributes" >\r
+    <xs:attribute name="precision" type="xs:double" use="optional" />\r
+    <xs:attribute name="scale_by" type="xs:integer" default="1" use="optional" />\r
+    <xs:attribute name="delimit_000s" type="xs:boolean" default="false" use="optional" />\r
+    <xs:attribute name="display_as" default="number" use="optional">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="number" />\r
+          <xs:enumeration value="currency" />\r
+          <xs:enumeration value="percent" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:element name="format">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default format when displaying a variable or accepting input.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attributeGroup ref="format_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="gf">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Graphical function, alternately called lookup functions or table\r
+        functions. They represent a (potentially) non-linear relationship.\r
+        Graphical functions may occur as part of other variables or (with\r
+        a name) as a stand alone variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="xscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="yscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="xpts" type="points_type" minOccurs="0" />\r
+        <xs:element name="ypts" type="points_type" minOccurs="1" />\r
+      </xs:all>\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="type" use="optional" default="continuous">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="continuous" />\r
+            <xs:enumeration value="extrapolate" />\r
+            <xs:enumeration value="discrete" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="min_max_type">\r
+    <xs:attribute name="min" type="xs:double" />\r
+    <xs:attribute name="max" type="xs:double" />\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="points_type">\r
+    <xs:simpleContent>\r
+      <xs:extension base="xs:string">\r
+        <xs:attribute name="sep" type="xs:string" use="optional" default="," />\r
+      </xs:extension>\r
+    </xs:simpleContent>\r
+  </xs:complexType>\r
+\r
+  <xs:element name="group">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A grouping of variables, also called a sector or view.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <!-- this entity use does not allow an index only the name as an attribute -->\r
+        <xs:element name="entity" minOccurs="0" maxOccurs="unbounded" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="module">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Modules are placeholders in the variables section for submodels. If\r
+        present, this must appear in every model that references that\r
+        submodel.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="connect" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="to" type="xs:string" use="required" />\r
+            <xs:attribute name="from" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <!-- the resource is really only optional if the submodel is contained in the model - otherwise it much refer to location-->\r
+      <xs:attribute name="resource" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="dimensions">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Dimensions for a specific stock, flow, or aux in a model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="event_poster">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Events based on entity values can be triggered while the model\r
+        is being simulated. These events are limited to pausing the\r
+        simulation (default) or stopping the simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence maxOccurs="unbounded">\r
+        <xs:element name="threshold">\r
+          <xs:complexType>\r
+            <xs:sequence>\r
+              <xs:element name="event" minOccurs="0" maxOccurs="unbounded">\r
+                <xs:complexType>\r
+                  <xs:choice maxOccurs="unbounded">\r
+                    <xs:element ref="text_box" />\r
+                    <xs:element ref="image" />\r
+                    <xs:element ref="video" />\r
+                    <xs:element ref="sound" />\r
+                    <xs:element ref="link" />\r
+                  </xs:choice>\r
+                  <xs:attribute name="sim_action" use="optional" default="pause">\r
+                    <xs:simpleType>\r
+                      <xs:restriction base="xs:string">\r
+                        <xs:enumeration value="pause" />\r
+                        <xs:enumeration value="stop" />\r
+                        <xs:enumeration value="message" />\r
+                      </xs:restriction>\r
+                    </xs:simpleType>\r
+                  </xs:attribute>\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:sequence>\r
+            <xs:attribute name="value" type="xs:double" use="required" />\r
+            <xs:attribute name="direction" use="optional" default="increasing">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="increasing" />\r
+                  <xs:enumeration value="decreasing" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="repeat" use="optional" default="each">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="each" />\r
+                  <xs:enumeration value="once" />\r
+                  <xs:enumeration value="once_ever" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="interval" type="xs:integer" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+      <xs:attribute name="min" type="xs:double" use="required" />\r
+      <xs:attribute name="max" type="xs:double" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="views">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        List of views or diagrams pertaining to the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="view" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:complexContent>\r
+              <xs:extension base="view_content_type">\r
+                <xs:attribute name="background" type="xs:string" />\r
+                <xs:attribute name="zoom" type="xs:double" />\r
+                <xs:attribute name="scroll_x" type="xs:double" />\r
+                <xs:attribute name="scroll_y" type="xs:double" />\r
+                <xs:attribute name="home_page" type="xs:integer" />\r
+                <xs:attribute name="home_view" type="xs:boolean" />\r
+                <xs:attribute name="page_width" type="xs:double" />\r
+                <xs:attribute name="page_height" type="xs:double" />\r
+                <xs:attribute name="show_pages" type="xs:boolean" />\r
+                <xs:attribute name="page_orientation">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="landscape" />\r
+                      <xs:enumeration value="portrait" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+                <xs:attribute name="page_sequence">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="row" />\r
+                      <xs:enumeration value="column" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+                <xs:attribute name="type" type="view_type" default="stock_flow" />\r
+                <!-- clarify_spec - the following are for popups only -->\r
+                <xs:attribute name="x" type="xs:int" use="optional" />\r
+                <xs:attribute name="y" type="xs:int" use="optional" />\r
+                <xs:attribute name="content" type="xs:string" use="optional" />\r
+              </xs:extension>\r
+            </xs:complexContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:simpleType name="view_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="stock_flow"/>\r
+      <xs:enumeration value="interface"/>\r
+      <xs:enumeration value="popup"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <xs:simpleType name="menu_action_choices">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="open"/>\r
+      <xs:enumeration value="close"/>\r
+      <xs:enumeration value="save"/>\r
+      <xs:enumeration value="save_as"/>\r
+      <xs:enumeration value="save_as_image"/>\r
+      <xs:enumeration value="revert"/>\r
+      <xs:enumeration value="print_setup"/>\r
+      <xs:enumeration value="print"/>\r
+      <xs:enumeration value="print_screen"/>\r
+      <xs:enumeration value="run"/>\r
+      <xs:enumeration value="pause"/>\r
+      <xs:enumeration value="resume"/>\r
+      <xs:enumeration value="stop"/>\r
+      <xs:enumeration value="run_restore"/>\r
+      <xs:enumeration value="restore_all"/>\r
+      <xs:enumeration value="restore_sliders"/>\r
+      <xs:enumeration value="restore_knobs"/>\r
+      <xs:enumeration value="restore_list_inputs"/>\r
+      <xs:enumeration value="restore_graphical_inputs"/>\r
+      <xs:enumeration value="restore_switches"/>\r
+      <xs:enumeration value="restore_numeric_displays"/>\r
+      <xs:enumeration value="restore_graphs_tables"/>\r
+      <xs:enumeration value="restore_lamps_gauges"/>\r
+      <xs:enumeration value="data_manager"/>\r
+      <xs:enumeration value="save_data_now"/>\r
+      <xs:enumeration value="import_now"/>\r
+      <xs:enumeration value="export_now"/>\r
+      <xs:enumeration value="exit"/>\r
+      <xs:enumeration value="find"/>\r
+      <xs:enumeration value="run_specs"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <xs:complexType name="view_content_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Content of a view or container\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+      <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+\r
+      <xs:element name="stock">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="flow">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="pts">\r
+              <xs:complexType>\r
+                <xs:sequence maxOccurs="unbounded">\r
+                  <xs:element name="pt">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:sequence>\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="aux">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="module">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="group">\r
+        <xs:complexType>\r
+          <xs:sequence minOccurs ="0" maxOccurs="unbounded">\r
+            <xs:element name="item">\r
+              <xs:complexType>\r
+                <xs:attribute name="uid" type="xs:int" />\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:sequence>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attribute name="locked" type="xs:boolean" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="connector">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element name="from" minOccurs="1">\r
+              <xs:complexType mixed="true">\r
+                <xs:all minOccurs="0">\r
+                  <xs:element name="alias" minOccurs="0">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="uid" type="xs:int" />\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:all>\r
+              </xs:complexType>\r
+            </xs:element>\r
+            <xs:element name="to" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="angle" type="xs:double" />\r
+          <xs:attribute name="delay_mark" type="xs:boolean" use="optional" default="false" />\r
+          <xs:attribute name="line_style" use="optional" default="solid">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="solid" />\r
+                <xs:enumeration value="dashed" />\r
+                <xs:enumeration value="vendor specific" />\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element name="alias">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="of" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element ref="text_box" />\r
+      <xs:element ref="graphics_frame" />\r
+\r
+      <!-- Output objects -->\r
+      <xs:element name="graph">\r
+        <xs:complexType>\r
+          <xs:choice>\r
+            <xs:element ref="plot" minOccurs="1" maxOccurs="unbounded"/>\r
+          </xs:choice>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attribute name="type" type="graph_type" default="time_series"/>\r
+          <xs:attribute name="title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="doc" type="xs:string" use="optional"/>\r
+          <xs:attribute name="show_grid" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="num_x_grid_lines" type="xs:int" default="0"/>\r
+          <xs:attribute name="num_y_grid_lines" type="xs:int" default="0"/>\r
+          <xs:attribute name="num_y_labels" type="xs:int" default="0"/>\r
+          <xs:attribute name="x_axis_title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="right_axis_title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="right_axis_auto_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="right_axis_multi_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="left_axis_title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="left_axis_auto_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="left_axis_multi_scale" type="xs:boolean" default="true"/>\r
+          <xs:attribute name="plot_numbers" type="xs:boolean" default="false"/>\r
+          <xs:attribute name="comparative" type="xs:boolean" default="false"/>\r
+          <xs:attribute name="from" type="xs:double" use="optional"/>\r
+          <xs:attribute name="to" type="xs:double" use="optional"/>\r
+\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+\r
+      <!-- Output objects -->\r
+\r
+      <xs:element name="table">\r
+        <xs:complexType>\r
+          <xs:choice>\r
+            <!-- we expand item inline because it is specialized for the table even though not defined a a separate type elsewhere -->\r
+            <xs:element name="item" minOccurs="1" maxOccurs="unbounded">\r
+              <xs:complexType>\r
+                <xs:all>\r
+                  <!-- note that entity is not optional if type = variable but the conditional logic is not in this xsd-->\r
+                  <xs:element name="entity" minOccurs="0"  >\r
+                    <xs:complexType>\r
+                      <xs:attribute name="name" type="xs:string" use="required" />\r
+                      <xs:attribute name="index" type="xs:string" use="optional" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:all>\r
+                <xs:attributeGroup ref="style_attributes" />\r
+                <xs:attributeGroup ref="format_attributes" />\r
+                <xs:attribute name="type" type="table_item_type" default="variable" />\r
+                <!-- clarify_spec - this is necessary to maintain order but not clearly delineated in the spec -->\r
+                <xs:attribute name="index" type="xs:int" />\r
+\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:choice>\r
+          <!-- note that default text alignment is right but that is not broken out in style_attributes -->\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attribute name="title" type="xs:string" use="optional"/>\r
+          <xs:attribute name="doc" type="xs:string" use="optional"/>\r
+          <xs:attribute name="orientation" type="orientation" default="vertical" />\r
+          <xs:attribute name="column_width" type="xs:int" use="required"/>\r
+          <xs:attribute name="blank_column_width" type="xs:int" use="optional"/>\r
+          <xs:attribute name="report_interval" type="report_interval" use="required"/>\r
+          <xs:attribute name="report_balances" type="report_balances" default="beginning"/>\r
+          <xs:attribute name="report_flows" type="report_flows" default="instantaneous"/>\r
+          <xs:attribute name="comparative" type="xs:boolean" default="false"/>\r
+          <xs:attribute name="wrap_text" type="xs:boolean" default="false"/>\r
+          <xs:attributeGroup ref="header_style_attributes"/>\r
+\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+\r
+\r
+\r
+      <!-- input devices -->\r
+\r
+      <xs:element name="button">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="image" minOccurs="0" />\r
+            <xs:element ref="video" minOccurs="0" />\r
+            <xs:element ref="sound"  minOccurs="0"/>\r
+            <xs:element name="menu_action" minOccurs ="0">\r
+              <xs:complexType>\r
+                <xs:simpleContent>\r
+                  <xs:extension base="menu_action_choices">\r
+                    <!-- the following only apply for import_now and export_now - then they are required see spec-->\r
+                    <xs:attribute name="resource" type="xs:string" use="optional" />\r
+                    <xs:attribute name="worksheet" type="xs:string" use="optional" />\r
+                    <xs:attribute name="all" type="xs:boolean" default="false" />\r
+                    <!-- the following only with save_data_now -->\r
+                    <xs:attribute name="run_name" type="xs:string" use="optional" />\r
+                  </xs:extension>\r
+                </xs:simpleContent>\r
+              </xs:complexType>\r
+            </xs:element>\r
+            <xs:element ref="switch_action" minOccurs ="0" />\r
+            <xs:element ref="popup" minOccurs="0" />\r
+            <xs:element ref="link" minOccurs="0" />\r
+          </xs:all>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+          <xs:attribute name="transparency" type="transparency_type" default="opaque" />\r
+          <xs:attribute name="style" default="square">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="square"/>\r
+                <xs:enumeration value="rounded"/>\r
+                <xs:enumeration value="capsule"/>\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attribute name="label" type="xs:string" use="optional" />\r
+          <!-- clarify_spec - should list attributes and elements separately clicking_sound is between two elements -->\r
+          <xs:attribute name="clicking_sound" type="xs:boolean" default="true" />\r
+\r
+\r
+          <xs:attribute name="show_name" type="xs:boolean" use="optional" default="true"/>\r
+          <xs:attribute name="show_number" type="xs:boolean" use="optional" default="true"/>\r
+          <xs:attribute name="show_min_max" type="xs:boolean" use="optional" default="true"/>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <!-- clarify_spec - buttons need uids  -->\r
+          <xs:attribute name="uid" type="xs:int" use="optional" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+      <xs:element ref="slider" />\r
+      <xs:element ref="knob" />\r
+      <xs:element ref="list_input" />\r
+      <xs:element ref="numeric_display" />\r
+      <xs:element ref="switch" />\r
+      <xs:element ref="graphical_input" />\r
+      <xs:element ref="stacked_container" />\r
+\r
+      <!-- options is also used for file options so is expanded inline here -->\r
+      <xs:element name="options">\r
+        <xs:complexType>\r
+          <xs:choice>\r
+            <xs:element ref="entity" maxOccurs="unbounded" />\r
+          </xs:choice>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+          <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+          <xs:attribute name="clicking_sound" type="xs:boolean" default="false" />\r
+          <xs:attribute name="layout" default="vertical">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="vertical"/>\r
+                <xs:enumeration value="horizontal"/>\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attribute name="vertical_spacing" type="xs:int" default="2" />\r
+          <xs:attribute name="horizontal_spacing" type="xs:int" default="2" />\r
+          <xs:attribute name="uid" type="xs:int" use="required" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+\r
+\r
+\r
+    </xs:choice>\r
+\r
+\r
+    <xs:attribute name="width" type="xs:double" use="optional" />\r
+    <xs:attribute name="height" type="xs:double" use="optional" />\r
+\r
+  </xs:complexType>\r
+\r
+\r
+  <!-- output object type definitions -->\r
+  <xs:simpleType name="graph_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="time_series"/>\r
+      <xs:enumeration value="scatter"/>\r
+      <xs:enumeration value="bar"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="orientation">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="horizontal"/>\r
+      <xs:enumeration value="vertical"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="table_item_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="variable"/>\r
+      <xs:enumeration value="space"/>\r
+      <xs:enumeration value="time"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <xs:simpleType name="report_interval">\r
+    <xs:union>\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:double"/>\r
+      </xs:simpleType>\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="DT"/>\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:union>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="report_balances">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="beginning"/>\r
+      <xs:enumeration value="ending"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="report_flows">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="instantaneous"/>\r
+      <xs:enumeration value="summed"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="slider">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="reset_to" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="show_name" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_number" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_min_max" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="name" type="xs:string" />\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="precision" type="xs:double" use="optional" />\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="knob">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="show_name" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_number" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="show_min_max" type="xs:boolean" use="optional" default="true"/>\r
+      <xs:attribute name="name" type="xs:string" />\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="precision" type="xs:double" use="optional" />\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:element name="list_input">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element name="numeric_input"  maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <!-- note we do not expect value in this case-->\r
+              <xs:element name="entity" minOccurs="0"  >\r
+                <xs:complexType>\r
+                  <xs:attribute name="name" type="xs:string" use="required" />\r
+                  <xs:attribute name="index" type="xs:string" use="optional" />\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:all>\r
+            <xs:attribute name="min" type="xs:double" use="optional" />\r
+            <xs:attribute name="max" type="xs:double" use="optional" />\r
+            <xs:attribute name="precision" type="xs:double" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="column_width" type="xs:int" use="required"/>\r
+      <!-- the following is required if used in a stacked container -->\r
+      <xs:attribute name="index" type="xs:int" use="optional"/>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="numeric_display">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attributeGroup ref="format_attributes" />\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+      <xs:attribute name="retain_ending_value" type="xs:boolean" default="false" />\r
+      <xs:attribute name="uid" type="xs:int" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="switch">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+            <xs:attribute name="value" type="xs:double" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="reset_to" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+      <xs:attribute name="clicking_sound" type="xs:boolean" default="false" />\r
+      <xs:attribute name="switch_style" default="toggle">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="toggle"/>\r
+            <xs:enumeration value="push_button"/>\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="uid" type="xs:int" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:element name="graphical_input">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="gf" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="show_name" type="xs:boolean" default="false" />\r
+      <!--clarify_spec - what uid values are truly required? -->\r
+      <xs:attribute name="uid" type="xs:int" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+\r
+  <xs:element name="stacked_container">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A stacked container is used to allow XMILE display objects to be\r
+        stacked on top of one another in flipbook form.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:complexContent>\r
+        <xs:extension base="view_content_type">\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attribute name="visible_index" type="xs:integer" />\r
+        </xs:extension>\r
+      </xs:complexContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="plot">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="entity" >\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+            <xs:attribute name="index" type="xs:string" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element ref="scale" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="index" type="xs:int" />\r
+      <xs:attribute name="pen_width" type="xs:int" default="1" />\r
+      <xs:attribute name="pen_style" type="penstyle" default="solid" />\r
+      <xs:attribute name="show_y_axis" type="xs:boolean" default="true" />\r
+      <xs:attribute name="title" type="xs:string" use="required" />\r
+      <xs:attribute name="right_axis" type="xs:boolean" default="false" />\r
+\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="penstyle">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="solid"/>\r
+      <xs:enumeration value="dotted"/>\r
+      <xs:enumeration value="dashed"/>\r
+      <xs:enumeration value="dot_dashed"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+\r
+  <!-- input device type definitions -->\r
+  <xs:simpleType name="after_choices">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="one_time"/>\r
+      <xs:enumeration value="one_dt"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="reset_to">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:double">\r
+          <xs:attribute name="after" type="after_choices"/>\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <!-- clarify_spec this is not really spelled out completely in the spec -->\r
+  <xs:element name="switch_action">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element ref="entity" />\r
+        <xs:element name="group">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="value" type="xs:double" />\r
+            </xs:all>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- clarify_spec this is not really spelled out completely in the spec -->\r
+  <xs:element name="popup">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element ref="text_box" />\r
+        <xs:element ref="image" />\r
+        <xs:element ref="video" />\r
+        <xs:element ref="sound" />\r
+        <xs:element ref="link" />\r
+      </xs:choice>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:element name="shape">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Optional shape of a given element.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="type" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="rectangle" />\r
+            <xs:enumeration value="circle" />\r
+            <xs:enumeration value="name_only" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="width" use="optional" />\r
+      <xs:attribute name="height" use="optional" />\r
+      <xs:attribute name="radius" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="behavior">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Simulation behavior definitions that are inherited/cascaded through all\r
+        models defined in this XMILE document.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+        <xs:element name="stock" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="flow">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="macro">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Defines macros that provide custom functions or building blocks that\r
+        can be used in model entity\r
+        equations.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <xs:element name="parm" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="eqn" type="xs:string" minOccurs="1" maxOccurs="1" />\r
+        <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+      <xs:attribute name="filter" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="stock" />\r
+            <xs:enumeration value="flow" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="applyto" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="inflows" />\r
+            <xs:enumeration value="outflows" />\r
+            <xs:enumeration value="upstream" />\r
+            <xs:enumeration value="downstream" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- clarify_spec - note that style is not allowed at the file level  in this xsd -->\r
+  <xs:element name="style">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stock" type="style_type" minOccurs="0" />\r
+        <xs:element name="flow" type="style_type" minOccurs="0" />\r
+        <xs:element name="aux" type="style_type" minOccurs="0" />\r
+        <xs:element name="connector" type="style_type" minOccurs="0" />\r
+        <xs:element name="module" type="style_type" minOccurs="0" />\r
+        <xs:element name="group" type="style_type" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="style_type">\r
+    <xs:attributeGroup ref="style_attributes" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:complexType>\r
+\r
+  <xs:attributeGroup name="positioning_attributes">\r
+    <xs:attribute name="x" type="xs:double" />\r
+    <xs:attribute name="y" type="xs:double" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:attributeGroup name="style_positioning_attributes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        This is a subset of what can be attached to individual display elements.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:attribute name="height" type="xs:double" />\r
+    <xs:attribute name="width" type="xs:double" />\r
+    <xs:attribute name="label_side">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="top" />\r
+          <xs:enumeration value="left" />\r
+          <xs:enumeration value="center" />\r
+          <xs:enumeration value="bottom" />\r
+          <xs:enumeration value="right" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="label_angle" type="xs:double" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:simpleType name="text_align">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="left" />\r
+      <xs:enumeration value="right" />\r
+      <xs:enumeration value="center" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="vertical_text_align">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="top" />\r
+      <xs:enumeration value="bottom" />\r
+      <xs:enumeration value="center" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:attributeGroup name="style_attributes">\r
+    <xs:attribute name="border_width" type="border_width_type" />\r
+    <xs:attribute name="border_color" type="color_type" />\r
+    <xs:attribute name="border_style" default="none">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="none" />\r
+          <xs:enumeration value="solid" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_family" type="xs:string" />\r
+    <xs:attribute name="font_style" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="italic" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_weight" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="bold" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_decoration" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="underline" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_align" type="text_align" default="left" />\r
+    <xs:attribute name="vertical_text_align" type="vertical_text_align" default="center" />\r
+    <xs:attribute name="font_color" type="color_type" />\r
+    <xs:attribute name="text_background" type="color_type" />\r
+    <xs:attribute name="font_size" type="xs:string" />\r
+    <xs:attribute name="padding" type="xs:string" />\r
+    <xs:attribute name="color" type="color_type" />\r
+    <xs:attribute name="background" type="color_type" />\r
+    <xs:attribute name="z_index" type="xs:integer" />\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:attributeGroup name="header_style_attributes">\r
+    <xs:attribute name="header_border_width" type="border_width_type" />\r
+    <xs:attribute name="header_border_color" type="color_type" />\r
+    <xs:attribute name="header_border_style" default="none">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="none" />\r
+          <xs:enumeration value="solid" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_font_family" type="xs:string" />\r
+    <xs:attribute name="header_font_style" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="italic" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_font_weight" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="bold" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_text_decoration" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="underline" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="header_text_align" type="text_align" default="left" />\r
+    <xs:attribute name="header_vertical_text_align" type="vertical_text_align" default="center"/>\r
+    <xs:attribute name="header_font_color" type="color_type" />\r
+    <xs:attribute name="header_text_background" type="color_type" />\r
+    <xs:attribute name="header_font_size" type="xs:string" />\r
+    <xs:attribute name="header_padding" type="xs:string" />\r
+    <xs:attribute name="header_color" type="color_type" />\r
+    <xs:attribute name="header_background" type="color_type" />\r
+    <xs:attribute name="header_z_index" type="xs:integer" />\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:simpleType name="color_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_color_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_color_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="aqua" />\r
+      <xs:enumeration value="black" />\r
+      <xs:enumeration value="blue" />\r
+      <xs:enumeration value="fuchsia" />\r
+      <xs:enumeration value="gray" />\r
+      <xs:enumeration value="green" />\r
+      <xs:enumeration value="lime" />\r
+      <xs:enumeration value="maroon" />\r
+      <xs:enumeration value="navy" />\r
+      <xs:enumeration value="olive" />\r
+      <xs:enumeration value="purple" />\r
+      <xs:enumeration value="red" />\r
+      <xs:enumeration value="silver" />\r
+      <xs:enumeration value="teal" />\r
+      <xs:enumeration value="white" />\r
+      <xs:enumeration value="yellow" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="border_width_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any double to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_border_width_type xs:double" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_border_width_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="thin" />\r
+      <xs:enumeration value="thick" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="data_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="CSV"/>\r
+      <xs:enumeration value="XLS"/>\r
+      <xs:enumeration value="XML"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="frequency_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="automatic"/>\r
+      <xs:enumeration value="on_demand"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="orientation_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="vertical"/>\r
+      <xs:enumeration value="horizontal"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:attributeGroup name="data_attributes">\r
+    <xs:attribute name="type" type="data_type" default="CSV" />\r
+    <xs:attribute name="enable" type="xs:boolean" default="true" />\r
+    <xs:attribute name="frequency" type="frequency_type" default="automatic" />\r
+    <xs:attribute name="orientation" type="orientation_type" default="vertical" />\r
+    <xs:attribute name="resource" type="xs:string" use="required" />\r
+    <xs:attribute name="worksheet" type="xs:string" use="optional" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:element name="data">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element name="export" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice>\r
+              <xs:element name="all" minOccurs="0" />\r
+              <xs:element name="table" minOccurs="0">\r
+                <xs:complexType>\r
+                  <!-- note that the uid reference here is a string because it may be module qualified -->\r
+                  <xs:attribute name="uid" type="xs:string" use="required" />\r
+                  <xs:attribute name="use_settings" type="xs:boolean" default="false" />\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:choice>\r
+            <xs:attributeGroup ref="data_attributes" />\r
+            <xs:attribute name="interval" type="report_interval" default="0" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="import" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attributeGroup ref="data_attributes" />\r
+            <xs:attribute name="interval" type="report_interval" default="0" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  \r
+\r
+  <xs:element name="text_box">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+          <xs:attribute name="uid" type="xs:int" />\r
+          <xs:attribute name="appearance" type="transparency_type" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="transparency_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="opaque"/>\r
+      <xs:enumeration value="transparent"/>\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+\r
+  <!-- same as image -->\r
+  <xs:element name="video">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+          <xs:attribute name="size_to_parent" type="xs:boolean" default="false" />\r
+          <!--clarify_spec - width and height not always necessary?-->\r
+          <xs:attribute name="width" type="xs:int" use="optional" />\r
+          <xs:attribute name="height" type="xs:int" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="graphics_frame">\r
+    <xs:complexType>\r
+      <xs:choice>\r
+        <xs:element ref="video" />\r
+        <xs:element ref="image" />\r
+      </xs:choice>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+      <xs:attributeGroup ref="positioning_attributes" />\r
+      <xs:attribute name="uid" type="xs:int" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- almost same as image -->\r
+  <xs:element name="sound">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="link">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="x" type="xs:double" default="0" />\r
+          <xs:attribute name="y" type="xs:double" default="0" />\r
+          <xs:attribute name="zoom" type="xs:double" default="100" />\r
+          <xs:attribute name="effect" default="none">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="none"/>\r
+                <xs:enumeration value="dissolve"/>\r
+                <xs:enumeration value="checkerboard"/>\r
+                <xs:enumeration value="bars"/>\r
+                <xs:enumeration value="wipe_left"/>\r
+                <xs:enumeration value="wipe_right"/>\r
+                <xs:enumeration value="wipe_top"/>\r
+                <xs:enumeration value="wipe_bottom"/>\r
+                <xs:enumeration value="wipe_clockwise"/>\r
+                <xs:enumeration value="wipe_counterclockwise"/>\r
+                <xs:enumeration value="iris_in"/>\r
+                <xs:enumeration value="iris_out"/>\r
+                <xs:enumeration value="doors_close"/>\r
+                <xs:enumeration value="doors_open"/>\r
+                <xs:enumeration value="venetian_left"/>\r
+                <xs:enumeration value="venetian_right"/>\r
+                <xs:enumeration value="venetian_top"/>\r
+                <xs:enumeration value="venetian_bottom"/>\r
+                <xs:enumeration value="push_bottom"/>\r
+                <xs:enumeration value="push_top"/>\r
+                <xs:enumeration value="push_left"/>\r
+                <xs:enumeration value="push_right"/>\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attribute name="to_black" type="xs:boolean" default="false" />\r
+          <!-- there is some complexity in the specification of the target - see the specification\r
+                     the validity of the target string is not checked by this xsd -->\r
+          <xs:attribute name="target" type="xs:string" use="required" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="boolean_or_empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+</xs:schema>\r
diff --git a/org.simantics.sysdyn.xmile/schema/xmile-backup.xsd b/org.simantics.sysdyn.xmile/schema/xmile-backup.xsd
new file mode 100644 (file)
index 0000000..5a10447
--- /dev/null
@@ -0,0 +1,1284 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"\r
+           xmlns="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0" targetNamespace="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0">\r
+<!--\r
+       XML Interchange Language for System Dynamics (XMILE) Version 1.0\r
+       OASIS Committee Specification Draft 01 / Public Review Draft 01\r
+       26 August 2014\r
+       Copyright (c) OASIS Open 2014. All rights reserved.\r
+       Source: http://docs.oasis-open.org/xmile/xmile/v1.0/csprd01/schemas/\r
+-->\r
+<!-- \r
+  \r
+  DRAFT schema for XMILE v1.0 \r
+  \r
+  Included \r
+  * all header tags/attributes \r
+  * variables (stocks, flows, aux, arrays, etc) \r
+  * diagram-related tags \r
+  * macros \r
+  \r
+  Not yet included\r
+  * Input objects \r
+  * Output objects \r
+  * Annotations \r
+  * <data> \r
+  * event poster text_box, video, link, sound\r
+  \r
+  -->\r
+\r
+  <xs:element name="xmile">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        The root element for the XMILE file. Note that certain child elements\r
+        (i.e. model) are required for the primary file but not for included\r
+        files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="header" />\r
+        <xs:choice maxOccurs="unbounded">\r
+          <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="model" minOccurs="1" maxOccurs="unbounded" />\r
+          <xs:element ref="model_units" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="data" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="macro" minOccurs="0" maxOccurs="unbounded" />\r
+\r
+          <!-- need to inline dimensions element below to avoid conflict with dimensions element in stock/flow/aux -->\r
+          <xs:element name="dimensions">\r
+            <xs:complexType>\r
+              <xs:sequence>\r
+                <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+                  <xs:complexType>\r
+                    <xs:sequence maxOccurs="unbounded">\r
+                      <xs:element name="elem" minOccurs="0" maxOccurs="unbounded">\r
+                        <xs:complexType>\r
+                          <xs:attribute name="name" type="xs:string" use="required" />\r
+                        </xs:complexType>\r
+                      </xs:element>\r
+                    </xs:sequence>\r
+                    <xs:attribute name="name" type="xs:string" use="required" />\r
+                    <xs:attribute name="size" type="xs:int" use="optional" />\r
+                  </xs:complexType>\r
+                </xs:element>\r
+              </xs:sequence>\r
+            </xs:complexType>\r
+          </xs:element>\r
+        </xs:choice>\r
+      </xs:sequence>\r
+      <xs:attribute name="version" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:decimal">\r
+            <xs:enumeration value="1.0" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Certain child options (product, options, vendor) of the header tag are \r
+  required for main models but not for included files -->\r
+  <xs:element name="header">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the origin of the model and required\r
+        capabilities. Note that certain child elements (i.e. product,\r
+        options, vendor) are required for the primary file but not for\r
+        included files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="vendor" type="xs:string" minOccurs="0" />\r
+        <xs:element name="name" type="xs:string" minOccurs="0" />\r
+        <xs:element name="version" type="xs:string" minOccurs="0" />\r
+        <xs:element name="caption" type="xs:string" minOccurs="0" />\r
+        <xs:element name="author" type="xs:string" minOccurs="0" />\r
+        <xs:element name="affiliation" type="xs:string" minOccurs="0" />\r
+        <xs:element name="client" type="xs:string" minOccurs="0" />\r
+        <xs:element name="copyright" type="xs:string" minOccurs="0" />\r
+        <xs:element name="created" type="xs:date" minOccurs="0" />\r
+        <xs:element name="modified" type="xs:date" minOccurs="0" />\r
+        <xs:element name="uuid" minOccurs="0">\r
+          <xs:simpleType>\r
+            <xs:restriction base="xs:string">\r
+              <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />\r
+            </xs:restriction>\r
+          </xs:simpleType>\r
+        </xs:element>\r
+        <xs:element ref="image" minOccurs="0" />\r
+        <xs:element ref="options" minOccurs="0" />\r
+        <xs:element ref="product" minOccurs="0" />\r
+        <xs:element ref="contact" minOccurs="0" />\r
+        <xs:element ref="includes" minOccurs="0" />\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="image">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+          Picture of the model in JPG, GIF, TIF, or PNG format. The\r
+          resource attribute is optional and may specify a relative \r
+          file path, an absolute file path, or an URL.  The picture \r
+          data may also be embedded inside the tag in Data URI format,\r
+          using base64 encoding.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="contact">\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="fax" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="website" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="options">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the required capabilities to use this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="uses_conveyor" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="arrest" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="leak" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_queue" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="overflow" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_submodels" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_macros" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="references_macros" type="xs:boolean" use="required" />\r
+            <xs:attribute name="option_filters" type="xs:boolean" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_event_posters" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="messages" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="has_model_view" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_outputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_display" type="xs:boolean" />\r
+            <xs:attribute name="lamp" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="gauge" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_inputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_input" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="list" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="graphical_input" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_annotation" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_arrays" minOccurs="0" >\r
+          <xs:complexType>\r
+            <xs:attribute name="max_dimensions" type="xs:integer" use="required" />\r
+            <xs:attribute name="invalid_index_value" default="0" use="optional">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:double">\r
+                  <xs:enumeration value="0" />\r
+                  <xs:enumeration value="NaN" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="product">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="version" type="xs:string" use="required" />\r
+          <xs:attribute name="lang" type="xs:string" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="includes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides a list of included files/resources.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="include" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="resource" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="sim_specs">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default simulation specifications for this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stop" type="xs:double" minOccurs="1" />\r
+        <xs:element name="start" type="xs:double" minOccurs="1" />\r
+        <xs:element name="dt" minOccurs="0" default="1">\r
+          <xs:complexType>\r
+            <xs:simpleContent>\r
+              <xs:extension base="xs:double">\r
+                <xs:attribute name="reciprocal" type="xs:boolean" default="false" use="optional" />\r
+              </xs:extension>\r
+            </xs:simpleContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="run" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="by" use="required">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="all" />\r
+                  <xs:enumeration value="group" />\r
+                  <xs:enumeration value="module" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="time_units" type="time_unit_type" default="time" use="optional" />\r
+      <xs:attribute name="method" type="method_type" default="euler" use="optional" />\r
+      <xs:attribute name="pause" type="xs:double" use="optional" default="INF" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:simpleType name="method_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a method while providing an\r
+        enumerated list of recommended standard types. \r
+        Valid entries include enumerated entries as well as comma\r
+        separated lists, such as "rk2,rk4".\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_method_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_method_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="euler" />\r
+      <xs:enumeration value="rk2" />\r
+      <xs:enumeration value="rk2_auto" />\r
+      <xs:enumeration value="rk4" />\r
+      <xs:enumeration value="rk4_auto" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="time_unit_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a time unit while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_time_unit_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_time_unit_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="day" />\r
+      <xs:enumeration value="hour" />\r
+      <xs:enumeration value="microsecond" />\r
+      <xs:enumeration value="millisecond" />\r
+      <xs:enumeration value="minute" />\r
+      <xs:enumeration value="month" />\r
+      <xs:enumeration value="nanosecond" />\r
+      <xs:enumeration value="quarter" />\r
+      <xs:enumeration value="second" />\r
+      <xs:enumeration value="week" />\r
+      <xs:enumeration value="year" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="model_units">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definitions of units used in this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="units" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice>\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1"/>\r
+              <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:choice>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="model">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definition of model equations and optional diagrams.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:sequence>\r
+      \r
+      <!-- note - name is generally required/recommended but is optional for primary model -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      \r
+      <xs:attribute name="resource" type="xs:string" use="optional" />\r
+      <xs:attribute name="run" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="password" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="variables">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A list of stocks, flows, auxiliaries (with equations) used in the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="stock" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="flow" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="aux" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="module" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Implementation note: Cannot use extensions to inherit common elements for stock, flow, aux elements, as this enforces\r
+    ordering between inherited and new child elements. -->\r
+\r
+  <xs:element name="stock">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called level or state. Stocks\r
+        accumulate. Their value at the start of the simulation must be set\r
+        as either a constant or with an initial equation. The initial\r
+        equation is evaluated only once, at the beginning of the\r
+        simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements for stock -->\r
+        <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <!-- common attributes -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="conveyor">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides additional options for a stock that describe the\r
+        characteristics of a conveyor.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="len" type="xs:string" minOccurs="0" />\r
+        <xs:element name="capacity" type="xs:string" minOccurs="0" />\r
+        <xs:element name="in_limit" type="xs:string" minOccurs="0" />\r
+        <xs:element name="sample" type="xs:string" minOccurs="0" />\r
+        <xs:element name="arrest" type="xs:string" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="discrete" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="batch_integrity" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="one_at_a_time" type="xs:boolean" use="optional" default="true" />\r
+      <xs:attribute name="exponential_leak" type="xs:boolean" use="optional" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="flow">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called a rate or a derivative.\r
+        Flows represent the rate of change of a stock. Each timestep the\r
+        flow multiplied by the timestep is added to the stock.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements elements for flow -->\r
+        <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="overflow" type="empty_type" />\r
+        <xs:element name="leak" type="empty_type" />\r
+        <xs:element name="leak_integers" type="empty_type" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="overflow" type="empty_type" />\r
+              <xs:element name="leak" type="empty_type" />\r
+              <xs:element name="leak_integers" type="empty_type" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for flow -->\r
+      <xs:attribute name="leak_start" type="xs:double" default="0" />\r
+      <xs:attribute name="leak_end" type="xs:double" default="1" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="aux">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model. Auxiliaries allow the isolation of\r
+        any algebraic function that is used. They can both clarify a model \r
+        and factor out important or repeated calculations. They can be \r
+        defined using any algebraic expression (including a constant \r
+        value), optionally in conjunction with a graphical function.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for aux -->\r
+      <xs:attribute name="flow_concept" type="xs:boolean" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="access_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Used in conjunction with submodels to define input and outputs.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="input" />\r
+      <xs:enumeration value="output" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="scale">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default scale for a variable output.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="auto" type="xs:boolean" use="optional" />\r
+      <xs:attribute name="group" type="xs:integer" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="range">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default range of allowable inputs for a variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="format">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default format when displaying a variable or accepting input.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="precision" type="xs:double" use="optional" />\r
+      <xs:attribute name="scale_by" type="xs:integer" default="1" use="optional" />\r
+      <xs:attribute name="delimit_000s" type="xs:boolean" default="false" use="optional" />\r
+      <xs:attribute name="display_as" default="number" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="number" />\r
+            <xs:enumeration value="currency" />\r
+            <xs:enumeration value="percent" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="gf">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Graphical function, alternately called lookup functions or table\r
+        functions. They represent a (potentially) non-linear relationship.\r
+        Graphical functions may occur as part of other variables or (with \r
+        a name) as a stand alone variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="xscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="yscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="xpts" type="points_type" minOccurs="0" />\r
+        <xs:element name="ypts" type="points_type" minOccurs="1" />\r
+      </xs:all>\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="type" use="optional" default="continuous">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="continuous" />\r
+            <xs:enumeration value="extrapolate" />\r
+            <xs:enumeration value="discrete" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="min_max_type">\r
+    <xs:attribute name="min" type="xs:double" />\r
+    <xs:attribute name="max" type="xs:double" />\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="points_type">\r
+    <xs:simpleContent>\r
+      <xs:extension base="xs:string">\r
+        <xs:attribute name="sep" type="xs:string" use="optional" default="," />\r
+      </xs:extension>\r
+    </xs:simpleContent>\r
+  </xs:complexType>\r
+\r
+  <xs:element name="group">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A grouping of variables, also called a sector or view.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="entity" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="module">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Modules are placeholders in the variables section for submodels. If\r
+        present, this must appear in every model that references that\r
+        submodel.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="connect" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="to" type="xs:string" use="required" />\r
+            <xs:attribute name="from" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="resource" type="xs:string" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="dimensions">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Dimensions for a specific stock, flow, or aux in a model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="event_poster">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Events based on entity values can be triggered while the model \r
+        is being simulated. These events are limited to pausing the\r
+        simulation (default) or stopping the simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence maxOccurs="unbounded">\r
+        <xs:element name="threshold">\r
+          <xs:complexType>\r
+            <xs:sequence>\r
+              <xs:element name="event" minOccurs="0" maxOccurs="unbounded">\r
+                <xs:complexType>\r
+                  <xs:choice maxOccurs="unbounded">\r
+                    <xs:element ref="text_box" />\r
+                    <xs:element ref="image" />\r
+                    <xs:element ref="video" />\r
+                    <xs:element ref="sound" />\r
+                    <xs:element ref="link" />\r
+                  </xs:choice>\r
+                  <xs:attribute name="sim_action" use="optional" default="pause">\r
+                    <xs:simpleType>\r
+                      <xs:restriction base="xs:string">\r
+                        <xs:enumeration value="pause" />\r
+                        <xs:enumeration value="stop" />\r
+                        <xs:enumeration value="message" />\r
+                      </xs:restriction>\r
+                    </xs:simpleType>\r
+                  </xs:attribute>\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:sequence>\r
+            <xs:attribute name="value" type="xs:double" use="required" />\r
+            <xs:attribute name="direction" use="optional" default="increasing">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="increasing" />\r
+                  <xs:enumeration value="decreasing" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="repeat" use="optional" default="each">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="each" />\r
+                  <xs:enumeration value="once" />\r
+                  <xs:enumeration value="once_ever" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="interval" type="xs:integer" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+      <xs:attribute name="min" type="xs:double" use="required" />\r
+      <xs:attribute name="max" type="xs:double" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="views">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        List of views or diagrams pertaining to the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="view" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:complexContent>\r
+              <xs:extension base="view_content_type">\r
+                <xs:attribute name="background" type="xs:string" />\r
+                <xs:attribute name="zoom" type="xs:double" />\r
+                <xs:attribute name="scroll_x" type="xs:double" />\r
+                <xs:attribute name="scroll_y" type="xs:double" />\r
+                <xs:attribute name="home_page" type="xs:integer" />\r
+                <xs:attribute name="home_view" type="xs:boolean" />\r
+                <xs:attribute name="page_width" type="xs:double" />\r
+                <xs:attribute name="page_height" type="xs:double" />\r
+                <xs:attribute name="show_pages" type="xs:boolean" />\r
+                <xs:attribute name="page_orientation">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="landscape" />\r
+                      <xs:enumeration value="portrait" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+                <xs:attribute name="page_sequence">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="row" />\r
+                      <xs:enumeration value="column" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+              </xs:extension>\r
+            </xs:complexContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="view_content_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Content of a view or container\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+      <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+      <xs:element name="stock">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="flow">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="pts">\r
+              <xs:complexType>\r
+                <xs:sequence maxOccurs="unbounded">\r
+                  <xs:element name="pt">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:sequence>\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="aux">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="module">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="group">\r
+        <xs:complexType>\r
+          <xs:sequence maxOccurs="unbounded">\r
+            <xs:element name="item">\r
+              <xs:complexType>\r
+                <xs:attribute name="uid" type="xs:string" />\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:sequence>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attribute name="locked" type="xs:boolean" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="connector">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element name="from" minOccurs="1">\r
+              <xs:complexType mixed="true">\r
+                <xs:all minOccurs="0">\r
+                  <xs:element name="alias" minOccurs="0">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="uid" type="xs:string" />\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:all>\r
+              </xs:complexType>\r
+            </xs:element>\r
+            <xs:element name="to" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:string" />\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="angle" type="xs:double" />\r
+          <xs:attribute name="delay_mark" type="xs:boolean" use="optional" default="false" />\r
+          <xs:attribute name="line_style" use="optional" default="solid">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="solid" />\r
+                <xs:enumeration value="dashed" />\r
+                <xs:enumeration value="vendor specific" />\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="alias">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="of" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:string" />\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element ref="stacked_container" />\r
+    </xs:choice>\r
+    <xs:attribute name="width" type="xs:double" use="optional" />\r
+    <xs:attribute name="height" type="xs:double" use="optional" />\r
+  </xs:complexType>\r
+\r
+  <xs:element name="stacked_container">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A stacked container is used to allow XMILE display objects to be\r
+        stacked on top of one another in flipbook form.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:complexContent>\r
+        <xs:extension base="view_content_type">\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="uid" type="xs:string" />\r
+          <xs:attribute name="visible_index" type="xs:integer" />\r
+        </xs:extension>\r
+      </xs:complexContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  \r
+  <xs:element name="shape">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Optional shape of a given element.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="type" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="rectangle" />\r
+            <xs:enumeration value="circle" />\r
+            <xs:enumeration value="name_only" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="width" use="optional" />\r
+      <xs:attribute name="height" use="optional" />\r
+      <xs:attribute name="radius" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="behavior">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Simulation behavior definitions that are inherited/cascaded through all\r
+        models defined in this XMILE document.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+        <xs:element name="stock" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="flow">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="macro">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Defines macros that provide custom functions or building blocks that\r
+        can be used in model entity\r
+        equations.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <xs:element name="parm" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="eqn" type="xs:string" minOccurs="1" maxOccurs="1" />\r
+        <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+      <xs:attribute name="filter" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="stock" />\r
+            <xs:enumeration value="flow" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="applyto" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="inflows" />\r
+            <xs:enumeration value="outflows" />\r
+            <xs:enumeration value="upstream" />\r
+            <xs:enumeration value="downstream" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="style">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stock" type="style_type" minOccurs="0" />\r
+        <xs:element name="flow" type="style_type" minOccurs="0" />\r
+        <xs:element name="aux" type="style_type" minOccurs="0" />\r
+        <xs:element name="connector" type="style_type" minOccurs="0" />\r
+        <xs:element name="module" type="style_type" minOccurs="0" />\r
+        <xs:element name="group" type="style_type" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="style_type">\r
+    <xs:attributeGroup ref="style_attributes" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:complexType>\r
+\r
+  <xs:attributeGroup name="positioning_attributes">\r
+    <xs:attribute name="x" type="xs:double" />\r
+    <xs:attribute name="y" type="xs:double" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:attributeGroup name="style_positioning_attributes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        This is a subset of what can be attached to individual display elements.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:attribute name="height" type="xs:double" />\r
+    <xs:attribute name="width" type="xs:double" />\r
+    <xs:attribute name="label_side">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="top" />\r
+          <xs:enumeration value="left" />\r
+          <xs:enumeration value="center" />\r
+          <xs:enumeration value="bottom" />\r
+          <xs:enumeration value="right" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="label_angle" type="xs:double" />\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:attributeGroup name="style_attributes">\r
+    <xs:attribute name="border_width" type="border_width_type" />\r
+    <xs:attribute name="border_color" type="color_type" />\r
+    <xs:attribute name="border_style" default="none">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="none" />\r
+          <xs:enumeration value="solid" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_family" type="xs:string" />\r
+    <xs:attribute name="font_style" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="italic" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_weight" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="bold" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_decoration" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="underline" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_align">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="left" />\r
+          <xs:enumeration value="right" />\r
+          <xs:enumeration value="center" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="vertical_text_align">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="top" />\r
+          <xs:enumeration value="bottom" />\r
+          <xs:enumeration value="center" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_color" type="color_type" />\r
+    <xs:attribute name="text_background" type="color_type" />\r
+    <xs:attribute name="font_size" type="xs:string" />\r
+    <xs:attribute name="padding" type="xs:string" />\r
+    <xs:attribute name="color" type="color_type" />\r
+    <xs:attribute name="background" type="color_type" />\r
+    <xs:attribute name="z_index" type="xs:integer" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:simpleType name="color_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_color_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_color_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="aqua" />\r
+      <xs:enumeration value="black" />\r
+      <xs:enumeration value="blue" />\r
+      <xs:enumeration value="fuchsia" />\r
+      <xs:enumeration value="gray" />\r
+      <xs:enumeration value="green" />\r
+      <xs:enumeration value="lime" />\r
+      <xs:enumeration value="maroon" />\r
+      <xs:enumeration value="navy" />\r
+      <xs:enumeration value="olive" />\r
+      <xs:enumeration value="purple" />\r
+      <xs:enumeration value="red" />\r
+      <xs:enumeration value="silver" />\r
+      <xs:enumeration value="teal" />\r
+      <xs:enumeration value="white" />\r
+      <xs:enumeration value="yellow" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="border_width_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any double to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_border_width_type xs:double" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_border_width_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="thin" />\r
+      <xs:enumeration value="thick" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="data">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="text_box">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="video">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="sound">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="link">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:complexType name="empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="boolean_or_empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+</xs:schema>\r
diff --git a/org.simantics.sysdyn.xmile/schema/xmile.xsd b/org.simantics.sysdyn.xmile/schema/xmile.xsd
new file mode 100644 (file)
index 0000000..f7393c6
--- /dev/null
@@ -0,0 +1,1284 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"\r
+           xmlns="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0" targetNamespace="http://docs.oasis-open.org/xmile/ns/XMILE/v1.0">\r
+<!--\r
+       XML Interchange Language for System Dynamics (XMILE) Version 1.0\r
+       OASIS Committee Specification Draft 01 / Public Review Draft 01\r
+       26 August 2014\r
+       Copyright (c) OASIS Open 2014. All rights reserved.\r
+       Source: http://docs.oasis-open.org/xmile/xmile/v1.0/csprd01/schemas/\r
+-->\r
+<!-- \r
+  \r
+  DRAFT schema for XMILE v1.0 \r
+  \r
+  Included \r
+  * all header tags/attributes \r
+  * variables (stocks, flows, aux, arrays, etc) \r
+  * diagram-related tags \r
+  * macros \r
+  \r
+  Not yet included\r
+  * Input objects \r
+  * Output objects \r
+  * Annotations \r
+  * <data> \r
+  * event poster text_box, video, link, sound\r
+  \r
+  -->\r
+\r
+  <xs:element name="xmile">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        The root element for the XMILE file. Note that certain child elements\r
+        (i.e. model) are required for the primary file but not for included\r
+        files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="header" />\r
+        <xs:choice maxOccurs="unbounded">\r
+          <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="model" minOccurs="1" maxOccurs="unbounded" />\r
+          <xs:element ref="model_units" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="data" minOccurs="0" maxOccurs="1" />\r
+          <xs:element ref="macro" minOccurs="0" maxOccurs="unbounded" />\r
+\r
+          <!-- need to inline dimensions element below to avoid conflict with dimensions element in stock/flow/aux -->\r
+          <xs:element name="dimensions">\r
+            <xs:complexType>\r
+              <xs:sequence>\r
+                <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+                  <xs:complexType>\r
+                    <xs:sequence maxOccurs="unbounded">\r
+                      <xs:element name="elem" minOccurs="0" maxOccurs="unbounded">\r
+                        <xs:complexType>\r
+                          <xs:attribute name="name" type="xs:string" use="required" />\r
+                        </xs:complexType>\r
+                      </xs:element>\r
+                    </xs:sequence>\r
+                    <xs:attribute name="name" type="xs:string" use="required" />\r
+                    <xs:attribute name="size" type="xs:int" use="optional" />\r
+                  </xs:complexType>\r
+                </xs:element>\r
+              </xs:sequence>\r
+            </xs:complexType>\r
+          </xs:element>\r
+        </xs:choice>\r
+      </xs:sequence>\r
+      <xs:attribute name="version" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:decimal">\r
+            <xs:enumeration value="1.0" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Certain child options (product, options, vendor) of the header tag are \r
+  required for main models but not for included files -->\r
+  <xs:element name="header">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the origin of the model and required\r
+        capabilities. Note that certain child elements (i.e. product,\r
+        options, vendor) are required for the primary file but not for\r
+        included files.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="vendor" type="xs:string" minOccurs="0" />\r
+        <xs:element name="name" type="xs:string" minOccurs="0" />\r
+        <xs:element name="version" type="xs:string" minOccurs="0" />\r
+        <xs:element name="caption" type="xs:string" minOccurs="0" />\r
+        <xs:element name="author" type="xs:string" minOccurs="0" />\r
+        <xs:element name="affiliation" type="xs:string" minOccurs="0" />\r
+        <xs:element name="client" type="xs:string" minOccurs="0" />\r
+        <xs:element name="copyright" type="xs:string" minOccurs="0" />\r
+        <xs:element name="created" type="xs:date" minOccurs="0" />\r
+        <xs:element name="modified" type="xs:date" minOccurs="0" />\r
+        <xs:element name="uuid" minOccurs="0">\r
+          <xs:simpleType>\r
+            <xs:restriction base="xs:string">\r
+              <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />\r
+            </xs:restriction>\r
+          </xs:simpleType>\r
+        </xs:element>\r
+        <xs:element ref="image" minOccurs="0" />\r
+        <xs:element ref="options" minOccurs="0" />\r
+        <xs:element ref="product" minOccurs="0" />\r
+        <xs:element ref="contact" minOccurs="0" />\r
+        <xs:element ref="includes" minOccurs="0" />\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="image">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+          Picture of the model in JPG, GIF, TIF, or PNG format. The\r
+          resource attribute is optional and may specify a relative \r
+          file path, an absolute file path, or an URL.  The picture \r
+          data may also be embedded inside the tag in Data URI format,\r
+          using base64 encoding.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="resource" use="optional" type="xs:string"/>\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="contact">\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="fax" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="website" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="options">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides information about the required capabilities to use this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="uses_conveyor" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="arrest" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="leak" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_queue" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="overflow" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_submodels" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_macros" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="references_macros" type="xs:boolean" use="required" />\r
+            <xs:attribute name="option_filters" type="xs:boolean" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_event_posters" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="messages" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="has_model_view" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_outputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_display" type="xs:boolean" />\r
+            <xs:attribute name="lamp" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="gauge" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_inputs" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="numeric_input" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="list" type="xs:boolean" use="optional" />\r
+            <xs:attribute name="graphical_input" type="xs:boolean" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="uses_annotation" type="empty_type" minOccurs="0" />\r
+        <xs:element name="uses_arrays" minOccurs="0" >\r
+          <xs:complexType>\r
+            <xs:attribute name="max_dimensions" type="xs:integer" use="required" />\r
+            <xs:attribute name="invalid_index_value" default="0" use="optional">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:double">\r
+                  <xs:enumeration value="0" />\r
+                  <xs:enumeration value="NaN" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="product">\r
+    <xs:complexType>\r
+      <xs:simpleContent>\r
+        <xs:extension base="xs:string">\r
+          <xs:attribute name="version" type="xs:string" use="required" />\r
+          <xs:attribute name="lang" type="xs:string" use="optional" />\r
+        </xs:extension>\r
+      </xs:simpleContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="includes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides a list of included files/resources.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="include" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="resource" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="sim_specs">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default simulation specifications for this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stop" type="xs:double" minOccurs="1" />\r
+        <xs:element name="start" type="xs:double" minOccurs="1" />\r
+        <xs:element name="dt" minOccurs="0" default="1">\r
+          <xs:complexType>\r
+            <xs:simpleContent>\r
+              <xs:extension base="xs:double">\r
+                <xs:attribute name="reciprocal" type="xs:boolean" default="false" use="optional" />\r
+              </xs:extension>\r
+            </xs:simpleContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="run" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:attribute name="by" use="required">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="all" />\r
+                  <xs:enumeration value="group" />\r
+                  <xs:enumeration value="module" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+      <xs:attribute name="time_units" type="time_unit_type" default="time" use="optional" />\r
+      <xs:attribute name="method" type="method_type" default="euler" use="optional" />\r
+      <xs:attribute name="pause" type="xs:double" use="optional" default="INF" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+\r
+  <xs:simpleType name="method_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a method while providing an\r
+        enumerated list of recommended standard types. \r
+        Valid entries include enumerated entries as well as comma\r
+        separated lists, such as "rk2,rk4".\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_method_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_method_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="euler" />\r
+      <xs:enumeration value="rk2" />\r
+      <xs:enumeration value="rk2_auto" />\r
+      <xs:enumeration value="rk4" />\r
+      <xs:enumeration value="rk4_auto" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="time_unit_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a time unit while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_time_unit_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_time_unit_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="day" />\r
+      <xs:enumeration value="hour" />\r
+      <xs:enumeration value="microsecond" />\r
+      <xs:enumeration value="millisecond" />\r
+      <xs:enumeration value="minute" />\r
+      <xs:enumeration value="month" />\r
+      <xs:enumeration value="nanosecond" />\r
+      <xs:enumeration value="quarter" />\r
+      <xs:enumeration value="second" />\r
+      <xs:enumeration value="week" />\r
+      <xs:enumeration value="year" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="model_units">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definitions of units used in this model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="units" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice>\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1"/>\r
+              <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
+            </xs:choice>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="model">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Definition of model equations and optional diagrams.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="behavior" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:sequence>\r
+      \r
+      <!-- note - name is generally required/recommended but is optional for primary model -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      \r
+      <xs:attribute name="resource" type="xs:string" use="optional" />\r
+      <xs:attribute name="run" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="password" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="variables">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A list of stocks, flows, auxiliaries (with equations) used in the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="stock" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="flow" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="auxiliary" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element ref="module" minOccurs="0" maxOccurs="unbounded" />\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <!-- Implementation note: Cannot use extensions to inherit common elements for stock, flow, aux elements, as this enforces\r
+    ordering between inherited and new child elements. -->\r
+\r
+  <xs:element name="stock">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called level or state. Stocks\r
+        accumulate. Their value at the start of the simulation must be set\r
+        as either a constant or with an initial equation. The initial\r
+        equation is evaluated only once, at the beginning of the\r
+        simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements for stock -->\r
+        <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="inflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="outflow" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+              <xs:element name="queue" type="empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="conveyor" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <!-- common attributes -->\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="conveyor">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Provides additional options for a stock that describe the\r
+        characteristics of a conveyor.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="len" type="xs:string" minOccurs="0" />\r
+        <xs:element name="capacity" type="xs:string" minOccurs="0" />\r
+        <xs:element name="in_limit" type="xs:string" minOccurs="0" />\r
+        <xs:element name="sample" type="xs:string" minOccurs="0" />\r
+        <xs:element name="arrest" type="xs:string" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attribute name="discrete" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="batch_integrity" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="one_at_a_time" type="xs:boolean" use="optional" default="true" />\r
+      <xs:attribute name="exponential_leak" type="xs:boolean" use="optional" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="flow">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model, also called a rate or a derivative.\r
+        Flows represent the rate of change of a stock. Each timestep the\r
+        flow multiplied by the timestep is added to the stock.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common child elements -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- specific child elements elements for flow -->\r
+        <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="overflow" type="empty_type" />\r
+        <xs:element name="leak" type="empty_type" />\r
+        <xs:element name="leak_integers" type="empty_type" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="multiplier" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="overflow" type="empty_type" />\r
+              <xs:element name="leak" type="empty_type" />\r
+              <xs:element name="leak_integers" type="empty_type" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for flow -->\r
+      <xs:attribute name="leak_start" type="xs:double" default="0" />\r
+      <xs:attribute name="leak_end" type="xs:double" default="1" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="auxiliary">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Core building block of a model. Auxiliaries allow the isolation of\r
+        any algebraic function that is used. They can both clarify a model \r
+        and factor out important or repeated calculations. They can be \r
+        defined using any algebraic expression (including a constant \r
+        value), optionally in conjunction with a graphical function.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <!-- common -->\r
+        <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="units" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="dimensions" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="scale" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="range" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="format" minOccurs="0" maxOccurs="1" />\r
+\r
+        <!-- for arrays.  necessarily repeats some of the above elements which may vary per subscript -->\r
+        <xs:element name="element" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:choice maxOccurs="unbounded">\r
+              <xs:element name="eqn" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element name="mathml" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="gf" minOccurs="0" maxOccurs="1" />\r
+              <xs:element ref="event_poster" minOccurs="0" maxOccurs="1" />\r
+            </xs:choice>\r
+            <xs:attribute name="subscript" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="access" type="access_type" use="optional" />\r
+      <xs:attribute name="autoexport" type="xs:boolean" use="optional" default="false" />\r
+      <xs:attribute name="subscript" type="xs:string" use="optional" />\r
+\r
+      <!-- specific attributes for aux -->\r
+      <xs:attribute name="flow_concept" type="xs:boolean" default="false" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:simpleType name="access_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Used in conjunction with submodels to define input and outputs.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="input" />\r
+      <xs:enumeration value="output" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="scale">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default scale for a variable output.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+      <xs:attribute name="auto" type="xs:boolean" use="optional" />\r
+      <xs:attribute name="group" type="xs:integer" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="range">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default range of allowable inputs for a variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="min" type="xs:double" use="optional" />\r
+      <xs:attribute name="max" type="xs:double" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="format">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Default format when displaying a variable or accepting input.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="precision" type="xs:double" use="optional" />\r
+      <xs:attribute name="scale_by" type="xs:integer" default="1" use="optional" />\r
+      <xs:attribute name="delimit_000s" type="xs:boolean" default="false" use="optional" />\r
+      <xs:attribute name="display_as" default="number" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="number" />\r
+            <xs:enumeration value="currency" />\r
+            <xs:enumeration value="percent" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="gf">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Graphical function, alternately called lookup functions or table\r
+        functions. They represent a (potentially) non-linear relationship.\r
+        Graphical functions may occur as part of other variables or (with \r
+        a name) as a stand alone variable.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="xscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="yscale" type="min_max_type" minOccurs="0" />\r
+        <xs:element name="xpts" type="points_type" minOccurs="0" />\r
+        <xs:element name="ypts" type="points_type" minOccurs="1" />\r
+      </xs:all>\r
+      <xs:attribute name="name" type="xs:string" use="optional" />\r
+      <xs:attribute name="type" use="optional" default="continuous">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="continuous" />\r
+            <xs:enumeration value="extrapolate" />\r
+            <xs:enumeration value="discrete" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="min_max_type">\r
+    <xs:attribute name="min" type="xs:double" />\r
+    <xs:attribute name="max" type="xs:double" />\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="points_type">\r
+    <xs:simpleContent>\r
+      <xs:extension base="xs:string">\r
+        <xs:attribute name="sep" type="xs:string" use="optional" default="," />\r
+      </xs:extension>\r
+    </xs:simpleContent>\r
+  </xs:complexType>\r
+\r
+  <xs:element name="group">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A grouping of variables, also called a sector or view.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="entity" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="module">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Modules are placeholders in the variables section for submodels. If\r
+        present, this must appear in every model that references that\r
+        submodel.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element name="connect" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="to" type="xs:string" use="required" />\r
+            <xs:attribute name="from" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="resource" type="xs:string" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="dimensions">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Dimensions for a specific stock, flow, or aux in a model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element name="dim" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:attribute name="name" type="xs:string" use="required" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="event_poster">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Events based on entity values can be triggered while the model \r
+        is being simulated. These events are limited to pausing the\r
+        simulation (default) or stopping the simulation.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence maxOccurs="unbounded">\r
+        <xs:element name="threshold">\r
+          <xs:complexType>\r
+            <xs:sequence>\r
+              <xs:element name="event" minOccurs="0" maxOccurs="unbounded">\r
+                <xs:complexType>\r
+                  <xs:choice maxOccurs="unbounded">\r
+                    <xs:element ref="text_box" />\r
+                    <xs:element ref="image" />\r
+                    <xs:element ref="video" />\r
+                    <xs:element ref="sound" />\r
+                    <xs:element ref="link" />\r
+                  </xs:choice>\r
+                  <xs:attribute name="sim_action" use="optional" default="pause">\r
+                    <xs:simpleType>\r
+                      <xs:restriction base="xs:string">\r
+                        <xs:enumeration value="pause" />\r
+                        <xs:enumeration value="stop" />\r
+                        <xs:enumeration value="message" />\r
+                      </xs:restriction>\r
+                    </xs:simpleType>\r
+                  </xs:attribute>\r
+                </xs:complexType>\r
+              </xs:element>\r
+            </xs:sequence>\r
+            <xs:attribute name="value" type="xs:double" use="required" />\r
+            <xs:attribute name="direction" use="optional" default="increasing">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="increasing" />\r
+                  <xs:enumeration value="decreasing" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="repeat" use="optional" default="each">\r
+              <xs:simpleType>\r
+                <xs:restriction base="xs:string">\r
+                  <xs:enumeration value="each" />\r
+                  <xs:enumeration value="once" />\r
+                  <xs:enumeration value="once_ever" />\r
+                </xs:restriction>\r
+              </xs:simpleType>\r
+            </xs:attribute>\r
+            <xs:attribute name="interval" type="xs:integer" use="optional" />\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:sequence>\r
+      <xs:attribute name="min" type="xs:double" use="required" />\r
+      <xs:attribute name="max" type="xs:double" use="required" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="views">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        List of views or diagrams pertaining to the model.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+        <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="view" minOccurs="0" maxOccurs="unbounded">\r
+          <xs:complexType>\r
+            <xs:complexContent>\r
+              <xs:extension base="view_content_type">\r
+                <xs:attribute name="background" type="xs:string" />\r
+                <xs:attribute name="zoom" type="xs:double" />\r
+                <xs:attribute name="scroll_x" type="xs:double" />\r
+                <xs:attribute name="scroll_y" type="xs:double" />\r
+                <xs:attribute name="home_page" type="xs:integer" />\r
+                <xs:attribute name="home_view" type="xs:boolean" />\r
+                <xs:attribute name="page_width" type="xs:double" />\r
+                <xs:attribute name="page_height" type="xs:double" />\r
+                <xs:attribute name="show_pages" type="xs:boolean" />\r
+                <xs:attribute name="page_orientation">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="landscape" />\r
+                      <xs:enumeration value="portrait" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+                <xs:attribute name="page_sequence">\r
+                  <xs:simpleType>\r
+                    <xs:restriction base="xs:string">\r
+                      <xs:enumeration value="row" />\r
+                      <xs:enumeration value="column" />\r
+                    </xs:restriction>\r
+                  </xs:simpleType>\r
+                </xs:attribute>\r
+              </xs:extension>\r
+            </xs:complexContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:choice>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="view_content_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Content of a view or container\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+      <xs:element ref="style" minOccurs="0" maxOccurs="1" />\r
+      <xs:element name="stock">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="flow">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="pts">\r
+              <xs:complexType>\r
+                <xs:sequence maxOccurs="unbounded">\r
+                  <xs:element name="pt">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:sequence>\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="auxiliary">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="module">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+          </xs:all>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="group">\r
+        <xs:complexType>\r
+          <xs:sequence maxOccurs="unbounded">\r
+            <xs:element name="item">\r
+              <xs:complexType>\r
+                <xs:attribute name="uid" type="xs:string" />\r
+              </xs:complexType>\r
+            </xs:element>\r
+          </xs:sequence>\r
+          <xs:attribute name="name" type="xs:string" />\r
+          <xs:attribute name="locked" type="xs:boolean" />\r
+          <xs:attributeGroup ref="style_attributes" />\r
+          <xs:attributeGroup ref="positioning_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="connector">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element name="from" minOccurs="1">\r
+              <xs:complexType mixed="true">\r
+                <xs:all minOccurs="0">\r
+                  <xs:element name="alias" minOccurs="0">\r
+                    <xs:complexType>\r
+                      <xs:attribute name="uid" type="xs:string" />\r
+                      <xs:attribute name="x" type="xs:double" />\r
+                      <xs:attribute name="y" type="xs:double" />\r
+                    </xs:complexType>\r
+                  </xs:element>\r
+                </xs:all>\r
+              </xs:complexType>\r
+            </xs:element>\r
+            <xs:element name="to" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:string" />\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="angle" type="xs:double" />\r
+          <xs:attribute name="delay_mark" type="xs:boolean" use="optional" default="false" />\r
+          <xs:attribute name="line_style" use="optional" default="solid">\r
+            <xs:simpleType>\r
+              <xs:restriction base="xs:string">\r
+                <xs:enumeration value="solid" />\r
+                <xs:enumeration value="dashed" />\r
+                <xs:enumeration value="vendor specific" />\r
+              </xs:restriction>\r
+            </xs:simpleType>\r
+          </xs:attribute>\r
+          <xs:attributeGroup ref="style_attributes" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element name="alias">\r
+        <xs:complexType>\r
+          <xs:all>\r
+            <xs:element ref="shape" minOccurs="0"/>\r
+            <xs:element name="of" type="xs:string" minOccurs="1" />\r
+          </xs:all>\r
+          <xs:attribute name="uid" type="xs:string" />\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+        </xs:complexType>\r
+      </xs:element>\r
+      <xs:element ref="stacked_container" />\r
+    </xs:choice>\r
+    <xs:attribute name="width" type="xs:double" use="optional" />\r
+    <xs:attribute name="height" type="xs:double" use="optional" />\r
+  </xs:complexType>\r
+\r
+  <xs:element name="stacked_container">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        A stacked container is used to allow XMILE display objects to be\r
+        stacked on top of one another in flipbook form.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:complexContent>\r
+        <xs:extension base="view_content_type">\r
+          <xs:attribute name="x" type="xs:double" />\r
+          <xs:attribute name="y" type="xs:double" />\r
+          <xs:attribute name="uid" type="xs:string" />\r
+          <xs:attribute name="visible_index" type="xs:integer" />\r
+        </xs:extension>\r
+      </xs:complexContent>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  \r
+  <xs:element name="shape">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Optional shape of a given element.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:attribute name="type" use="required">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="rectangle" />\r
+            <xs:enumeration value="circle" />\r
+            <xs:enumeration value="name_only" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="width" use="optional" />\r
+      <xs:attribute name="height" use="optional" />\r
+      <xs:attribute name="radius" use="optional" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="behavior">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Simulation behavior definitions that are inherited/cascaded through all\r
+        models defined in this XMILE document.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+        <xs:element name="stock" minOccurs="0">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <xs:element name="flow">\r
+          <xs:complexType>\r
+            <xs:all>\r
+              <xs:element name="non_negative" type="boolean_or_empty_type" minOccurs="0" />\r
+            </xs:all>\r
+          </xs:complexType>\r
+        </xs:element>\r
+      </xs:all>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="macro">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Defines macros that provide custom functions or building blocks that\r
+        can be used in model entity\r
+        equations.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:choice maxOccurs="unbounded">\r
+        <xs:element name="parm" type="xs:string" minOccurs="0" maxOccurs="unbounded" />\r
+        <xs:element name="eqn" type="xs:string" minOccurs="1" maxOccurs="1" />\r
+        <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="sim_specs" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="variables" minOccurs="0" maxOccurs="1" />\r
+        <xs:element ref="views" minOccurs="0" maxOccurs="1" />\r
+      </xs:choice>\r
+      <xs:attribute name="name" type="xs:string" use="required" />\r
+      <xs:attribute name="namespace" type="xs:string" use="optional" />\r
+      <xs:attribute name="filter" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="stock" />\r
+            <xs:enumeration value="flow" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+      <xs:attribute name="applyto" use="optional">\r
+        <xs:simpleType>\r
+          <xs:restriction base="xs:string">\r
+            <xs:enumeration value="inflows" />\r
+            <xs:enumeration value="outflows" />\r
+            <xs:enumeration value="upstream" />\r
+            <xs:enumeration value="downstream" />\r
+          </xs:restriction>\r
+        </xs:simpleType>\r
+      </xs:attribute>\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:element name="style">\r
+    <xs:complexType>\r
+      <xs:all>\r
+        <xs:element name="stock" type="style_type" minOccurs="0" />\r
+        <xs:element name="flow" type="style_type" minOccurs="0" />\r
+        <xs:element name="auxiliary" type="style_type" minOccurs="0" />\r
+        <xs:element name="connector" type="style_type" minOccurs="0" />\r
+        <xs:element name="module" type="style_type" minOccurs="0" />\r
+        <xs:element name="group" type="style_type" minOccurs="0" />\r
+      </xs:all>\r
+      <xs:attributeGroup ref="style_attributes" />\r
+    </xs:complexType>\r
+  </xs:element>\r
+\r
+  <xs:complexType name="style_type">\r
+    <xs:attributeGroup ref="style_attributes" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:complexType>\r
+\r
+  <xs:attributeGroup name="positioning_attributes">\r
+    <xs:attribute name="x" type="xs:double" />\r
+    <xs:attribute name="y" type="xs:double" />\r
+    <xs:attributeGroup ref="style_positioning_attributes" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:attributeGroup name="style_positioning_attributes">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        This is a subset of what can be attached to individual display elements.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:attribute name="height" type="xs:double" />\r
+    <xs:attribute name="width" type="xs:double" />\r
+    <xs:attribute name="label_side">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="top" />\r
+          <xs:enumeration value="left" />\r
+          <xs:enumeration value="center" />\r
+          <xs:enumeration value="bottom" />\r
+          <xs:enumeration value="right" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="label_angle" type="xs:double" />\r
+  </xs:attributeGroup>\r
+\r
+\r
+  <xs:attributeGroup name="style_attributes">\r
+    <xs:attribute name="border_width" type="border_width_type" />\r
+    <xs:attribute name="border_color" type="color_type" />\r
+    <xs:attribute name="border_style" default="none">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="none" />\r
+          <xs:enumeration value="solid" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_family" type="xs:string" />\r
+    <xs:attribute name="font_style" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="italic" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_weight" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="bold" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_decoration" default="normal">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="normal" />\r
+          <xs:enumeration value="underline" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="text_align">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="left" />\r
+          <xs:enumeration value="right" />\r
+          <xs:enumeration value="center" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="vertical_text_align">\r
+      <xs:simpleType>\r
+        <xs:restriction base="xs:string">\r
+          <xs:enumeration value="top" />\r
+          <xs:enumeration value="bottom" />\r
+          <xs:enumeration value="center" />\r
+        </xs:restriction>\r
+      </xs:simpleType>\r
+    </xs:attribute>\r
+    <xs:attribute name="font_color" type="color_type" />\r
+    <xs:attribute name="text_background" type="color_type" />\r
+    <xs:attribute name="font_size" type="xs:string" />\r
+    <xs:attribute name="padding" type="xs:string" />\r
+    <xs:attribute name="color" type="color_type" />\r
+    <xs:attribute name="background" type="color_type" />\r
+    <xs:attribute name="z_index" type="xs:integer" />\r
+  </xs:attributeGroup>\r
+\r
+  <xs:simpleType name="color_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any string to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_color_type xs:string" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_color_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="aqua" />\r
+      <xs:enumeration value="black" />\r
+      <xs:enumeration value="blue" />\r
+      <xs:enumeration value="fuchsia" />\r
+      <xs:enumeration value="gray" />\r
+      <xs:enumeration value="green" />\r
+      <xs:enumeration value="lime" />\r
+      <xs:enumeration value="maroon" />\r
+      <xs:enumeration value="navy" />\r
+      <xs:enumeration value="olive" />\r
+      <xs:enumeration value="purple" />\r
+      <xs:enumeration value="red" />\r
+      <xs:enumeration value="silver" />\r
+      <xs:enumeration value="teal" />\r
+      <xs:enumeration value="white" />\r
+      <xs:enumeration value="yellow" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="border_width_type">\r
+    <xs:annotation>\r
+      <xs:documentation>\r
+        Allows any double to be entered as a color while providing an\r
+        enumerated list of recommended\r
+        standard types.\r
+      </xs:documentation>\r
+    </xs:annotation>\r
+    <xs:union memberTypes="standard_border_width_type xs:double" />\r
+  </xs:simpleType>\r
+\r
+  <xs:simpleType name="standard_border_width_type">\r
+    <xs:restriction base="xs:string">\r
+      <xs:enumeration value="thin" />\r
+      <xs:enumeration value="thick" />\r
+    </xs:restriction>\r
+  </xs:simpleType>\r
+\r
+  <xs:element name="data">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="text_box">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="video">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="sound">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:element name="link">\r
+    <xs:complexType />\r
+  </xs:element>\r
+\r
+  <xs:complexType name="empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+  <xs:complexType name="boolean_or_empty_type">\r
+    <xs:complexContent>\r
+      <xs:restriction base="xs:anyType" />\r
+    </xs:complexContent>\r
+  </xs:complexType>\r
+\r
+</xs:schema>\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/Activator.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/Activator.java
new file mode 100644 (file)
index 0000000..83ce919
--- /dev/null
@@ -0,0 +1,50 @@
+package org.simantics.sysdyn.xmile;\r
+\r
+import org.eclipse.ui.plugin.AbstractUIPlugin;\r
+import org.osgi.framework.BundleContext;\r
+\r
+/**\r
+ * The activator class controls the plug-in life cycle\r
+ */\r
+public class Activator extends AbstractUIPlugin {\r
+\r
+       // The plug-in ID\r
+       public static final String PLUGIN_ID = "org.simantics.sysdyn.xmile"; //$NON-NLS-1$\r
+\r
+       // The shared instance\r
+       private static Activator plugin;\r
+       \r
+       /**\r
+        * The constructor\r
+        */\r
+       public Activator() {\r
+       }\r
+\r
+       /*\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)\r
+        */\r
+       public void start(BundleContext context) throws Exception {\r
+               super.start(context);\r
+               plugin = this;\r
+       }\r
+\r
+       /*\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)\r
+        */\r
+       public void stop(BundleContext context) throws Exception {\r
+               plugin = null;\r
+               super.stop(context);\r
+       }\r
+\r
+       /**\r
+        * Returns the shared instance\r
+        *\r
+        * @return the shared instance\r
+        */\r
+       public static Activator getDefault() {\r
+               return plugin;\r
+       }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ExportHandler.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ExportHandler.java
new file mode 100644 (file)
index 0000000..05aefed
--- /dev/null
@@ -0,0 +1,76 @@
+package org.simantics.sysdyn.xmile;\r
+\r
+import java.io.File;\r
+\r
+import javax.xml.bind.JAXBContext;\r
+import javax.xml.bind.Marshaller;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.widgets.FileDialog;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
+import org.simantics.Simantics;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.request.Read;\r
+import org.simantics.sysdyn.xmile.schema.Xmile;\r
+import org.simantics.utils.ui.AdaptionUtils;\r
+import org.simantics.utils.ui.ExceptionUtils;\r
+\r
+public class ExportHandler extends AbstractHandler {\r
+       \r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               // prompt the user for a file\r
+               FileDialog dialog = new FileDialog(HandlerUtil.getActiveShell(event), SWT.SAVE);\r
+               dialog.setFilterExtensions(new String[] {"*.xml","*.*"});\r
+               dialog.setOverwrite(true);\r
+               \r
+               String fileName = dialog.open();\r
+               if (fileName == null) {\r
+                       return null;\r
+               }\r
+               \r
+               try {\r
+                       // the selection should always be a model as the handler should not \r
+                       // be executable otherwise\r
+                       ISelection selection = HandlerUtil.getCurrentSelection(event);\r
+                       \r
+                       Resource model = AdaptionUtils.adaptToSingle(selection, Resource.class);\r
+                       \r
+                       Read<Xmile> request;\r
+                       \r
+                       // there probably is some cleaner way to parse parameters but this \r
+                       // will suffice for now\r
+                       String includeView = event.getParameter("org.simantics.sysdyn.xmile.export.includeView");\r
+                       if (includeView != null) {\r
+                               if (!(includeView.equals("true") || includeView.equals("false"))) {\r
+                                       throw new ExecutionException("incorrect value for includeView");\r
+                               }\r
+                               request = new ModelTransform(model, includeView.equals("true"));\r
+                       }\r
+                       else {\r
+                               request = new ModelTransform(model);\r
+                       }\r
+                       \r
+                       // transform the sysdyn model into an xmile document\r
+                       Xmile xmile = Simantics.getSession().syncRequest(request);\r
+                       \r
+                       // write the xml into the file\r
+                       JAXBContext context = JAXBContext.newInstance("org.simantics.sysdyn.xmile.schema");\r
+                       Marshaller marshaller = context.createMarshaller();\r
+                       marshaller.setProperty("jaxb.formatted.output", Boolean.TRUE);\r
+                       // TODO: this is for debugging purposes, remove when done\r
+                       marshaller.marshal(xmile, System.out);\r
+                       marshaller.marshal(xmile, new File(fileName));\r
+               }\r
+               catch (Exception e) {\r
+                       ExceptionUtils.logAndShowError("XMILE export failed: "+e.getMessage(), e);\r
+               }\r
+               \r
+               return null;\r
+       }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ImportHandler.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ImportHandler.java
new file mode 100644 (file)
index 0000000..0703e3c
--- /dev/null
@@ -0,0 +1,48 @@
+package org.simantics.sysdyn.xmile;\r
+\r
+import java.io.File;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.widgets.FileDialog;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
+import org.simantics.Simantics;\r
+import org.simantics.db.WriteGraph;\r
+import org.simantics.db.common.request.WriteRequest;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.sysdyn.modelImport.model.Model;\r
+import org.simantics.utils.ui.ExceptionUtils;\r
+\r
+public class ImportHandler extends AbstractHandler {\r
+\r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+               // prompt the user for a file\r
+               FileDialog dialog = new FileDialog(HandlerUtil.getActiveShell(event), SWT.OPEN);\r
+               dialog.setFilterExtensions(new String[] {"*.xml","*.*"});\r
+               \r
+               String fileName = dialog.open();\r
+               if (fileName == null) {\r
+                       return null;\r
+               }\r
+               \r
+               try {\r
+                       final Model model = new XmileParser().parse(new File(fileName));\r
+                       \r
+                       Simantics.getSession().syncRequest(new WriteRequest() {\r
+                               @Override\r
+                               public void perform(WriteGraph graph) throws DatabaseException {\r
+                                       model.write(graph, Simantics.getProject().get());\r
+                               }\r
+                       });\r
+               }\r
+               catch (Exception e) {\r
+                       ExceptionUtils.logAndShowError("XMILE import failed: "+e.getMessage(), e);\r
+               }\r
+               \r
+               return null;\r
+       }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ModelTransform.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/ModelTransform.java
new file mode 100644 (file)
index 0000000..23b2715
--- /dev/null
@@ -0,0 +1,628 @@
+package org.simantics.sysdyn.xmile;\r
+\r
+import java.math.BigDecimal;\r
+import java.math.BigInteger;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.simantics.databoard.Bindings;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.request.Read;\r
+import org.simantics.diagram.stubs.DiagramResource;\r
+import org.simantics.layer0.Layer0;\r
+import org.simantics.modeling.ModelingResources;\r
+import org.simantics.simulation.ontology.SimulationResource;\r
+import org.simantics.sysdyn.SysdynResource;\r
+import org.simantics.sysdyn.manager.SysdynModel;\r
+import org.simantics.sysdyn.manager.SysdynModelManager;\r
+import org.simantics.sysdyn.representation.Configuration;\r
+import org.simantics.sysdyn.representation.Enumeration;\r
+import org.simantics.sysdyn.representation.EnumerationIndex;\r
+import org.simantics.sysdyn.representation.IElement;\r
+import org.simantics.sysdyn.representation.expressions.IExpression;\r
+import org.simantics.sysdyn.representation.expressions.NormalExpression;\r
+import org.simantics.sysdyn.representation.expressions.ParameterExpression;\r
+import org.simantics.sysdyn.representation.expressions.StockExpression;\r
+import org.simantics.sysdyn.representation.expressions.WithLookupExpression;\r
+import org.simantics.sysdyn.xmile.schema.Auxiliary;\r
+import org.simantics.sysdyn.xmile.schema.Dimensions;\r
+import org.simantics.sysdyn.xmile.schema.Flow;\r
+import org.simantics.sysdyn.xmile.schema.Gf;\r
+import org.simantics.sysdyn.xmile.schema.Header;\r
+import org.simantics.sysdyn.xmile.schema.Model;\r
+import org.simantics.sysdyn.xmile.schema.ObjectFactory;\r
+import org.simantics.sysdyn.xmile.schema.Options;\r
+import org.simantics.sysdyn.xmile.schema.PointsType;\r
+import org.simantics.sysdyn.xmile.schema.Product;\r
+import org.simantics.sysdyn.xmile.schema.SimSpecs;\r
+import org.simantics.sysdyn.xmile.schema.Stock;\r
+import org.simantics.sysdyn.xmile.schema.Variables;\r
+import org.simantics.sysdyn.xmile.schema.ViewContentType;\r
+import org.simantics.sysdyn.xmile.schema.Views;\r
+import org.simantics.sysdyn.xmile.schema.Xmile;\r
+import org.simantics.sysdyn.xmile.schema.Dimensions.Dim;\r
+import org.simantics.sysdyn.xmile.schema.ViewContentType.Connector.From;\r
+import org.simantics.sysdyn.xmile.schema.Views.View;\r
+\r
+public class ModelTransform implements Read<Xmile> {\r
+       \r
+       private Resource source;\r
+       \r
+       private ObjectFactory factory;\r
+       private boolean includeView;\r
+       \r
+       private SysdynModel sourceModel;\r
+       \r
+       private DiagramResource dr;\r
+       private Layer0 l0;\r
+       private ModelingResources mr;\r
+       private SimulationResource sim;\r
+       private SysdynResource sr;\r
+       \r
+       private static final double version = 1.0;\r
+       \r
+       private static final String HEADER_VENDOR = "Simantics";\r
+       private static final String HEADER_PRODUCT_NAME = "System Dynamics";\r
+       private static final String HEADER_PRODUCT_VERSION = "0.1";\r
+       \r
+       private static final String SPECS_SOLVER = "euler";\r
+       \r
+       // the xmile document must specify which features are used under the\r
+       // options tag. if the sysdyn model uses one of these features the\r
+       // parser sets the related flag to true, which causes an appropriate \r
+       // options tag to be generated.\r
+       private boolean usesArrays = false;\r
+       private int     usesArraysMaxDimensions = 0;\r
+       private boolean usesSubmodels = false;\r
+       private boolean usesMacros = false;\r
+       \r
+       private int connectorId = 0;\r
+       \r
+       public ModelTransform(Resource source) {\r
+               this(source, true);\r
+       }\r
+       \r
+       public ModelTransform(Resource source, boolean includeView) {\r
+               this.source = source;\r
+               this.factory = new ObjectFactory();\r
+               this.includeView = includeView;\r
+       }\r
+       \r
+       @Override\r
+       public Xmile perform(ReadGraph graph) \r
+                       throws DatabaseException {\r
+               dr = DiagramResource.getInstance(graph);\r
+               l0 = Layer0.getInstance(graph);\r
+               mr = ModelingResources.getInstance(graph);\r
+               sim = SimulationResource.getInstance(graph);\r
+               sr = SysdynResource.getInstance(graph);\r
+               \r
+               // try to use the sysdyn model interface for everything and only read \r
+               // data from graph if absolutely necessary (remember to refactor this\r
+               // method to perform outside of a transaction if the graph is not\r
+               // needed in the end)\r
+               \r
+               Resource configuration = graph.getSingleObject(source, sim.HasConfiguration);\r
+               \r
+               sourceModel = SysdynModelManager.getInstance(graph.getSession()).getModel(graph, configuration);\r
+               \r
+               return getDocument(graph);\r
+       }\r
+       \r
+       private Xmile getDocument(ReadGraph graph) \r
+                       throws DatabaseException {\r
+               Xmile xmile = factory.createXmile();\r
+               \r
+               xmile.setVersion(BigDecimal.valueOf(version));\r
+               \r
+               xmile.setHeader(getHeader(graph));\r
+               \r
+               xmile.getSimSpecsOrModelUnitsOrBehavior().add(getSimulationSpecifications());\r
+               \r
+               org.simantics.sysdyn.xmile.schema.Xmile.Dimensions dims = getDimensions();\r
+               if (dims != null) { \r
+                       xmile.getSimSpecsOrModelUnitsOrBehavior().add(dims);\r
+               }\r
+               \r
+               xmile.getSimSpecsOrModelUnitsOrBehavior().addAll(getModels(graph));\r
+               \r
+               // add options last so we know which options to set\r
+               xmile.getHeader().setOptions(getOptions());\r
+               \r
+               return xmile;\r
+       }\r
+       \r
+       private Header getHeader(ReadGraph graph) \r
+                       throws DatabaseException {\r
+               Header header = factory.createHeader();\r
+               \r
+               // required fields\r
+               header.setVendor(HEADER_VENDOR);\r
+               \r
+               Product product = factory.createProduct();\r
+               product.setValue(HEADER_PRODUCT_NAME);\r
+               product.setVersion(HEADER_PRODUCT_VERSION);\r
+               \r
+               header.setProduct(product);\r
+               \r
+               // optional fields\r
+               Resource model = sourceModel.getMapping().inverseGet(\r
+                               sourceModel.getConfiguration().getModel());\r
+               String name = graph.getRelatedValue(model, l0.HasName, Bindings.STRING);\r
+               header.setName(name);\r
+               \r
+               return header;\r
+       }\r
+       \r
+       private Options getOptions() {\r
+               Options options = factory.createOptions();\r
+               \r
+               if (usesArrays) {\r
+                       options.setUsesArrays(factory.createOptionsUsesArrays());\r
+                       options.getUsesArrays().setMaxDimensions(BigInteger.valueOf(usesArraysMaxDimensions));\r
+               }\r
+               if (usesSubmodels) {\r
+                       options.setUsesSubmodels(factory.createEmptyType());\r
+               }\r
+               if (usesMacros) {\r
+                       options.setUsesMacros(factory.createOptionsUsesMacros());\r
+                       options.getUsesMacros().setReferencesMacros(false);\r
+                       options.getUsesMacros().setOptionFilters(false);\r
+               }\r
+               \r
+               // the options must also include a note of the view\r
+               if (includeView) {\r
+                       options.setHasModelView(factory.createEmptyType());\r
+               }\r
+               \r
+               return options;\r
+       }\r
+       \r
+       private SimSpecs getSimulationSpecifications() {\r
+               SimSpecs specs = factory.createSimSpecs();\r
+               \r
+               specs.setMethod(SPECS_SOLVER);\r
+               \r
+               org.simantics.sysdyn.representation.Model model = \r
+                               sourceModel.getConfiguration().getModel();\r
+               \r
+               specs.setStart(model.getStartTime());\r
+               specs.setStop(model.getStopTime());\r
+               \r
+               specs.setDt(factory.createSimSpecsDt());\r
+               specs.getDt().setValue(model.getSimulationStepLength());\r
+               \r
+               return specs;\r
+       }\r
+       \r
+       private org.simantics.sysdyn.xmile.schema.Xmile.Dimensions getDimensions() {\r
+               org.simantics.sysdyn.xmile.schema.Xmile.Dimensions dimensions = \r
+                               factory.createXmileDimensions();\r
+               \r
+               // go through all configurations to find all enumerations and generate\r
+               // dimensions based on them\r
+               \r
+               for (IElement element : sourceModel.getConfiguration().getElements()) {\r
+                       if (element instanceof Enumeration) {\r
+                               Enumeration enumeration = (Enumeration)element;\r
+                               \r
+                               org.simantics.sysdyn.xmile.schema.Xmile.Dimensions.Dim dim = \r
+                                               factory.createXmileDimensionsDim();\r
+                               dim.setName(enumeration.getName());\r
+                               \r
+                               // sysdyn supports only named indices\r
+                               \r
+                               for (EnumerationIndex index : enumeration.getEnumerationIndexes()) {\r
+                                       org.simantics.sysdyn.xmile.schema.Xmile.Dimensions.Dim.Elem elem = \r
+                                                       factory.createXmileDimensionsDimElem();\r
+                                       elem.setName(index.getName());\r
+                                       dim.getElem().add(elem);\r
+                               }\r
+                               \r
+                               dimensions.getDim().add(dim);\r
+                               \r
+                               usesArrays = true;\r
+                               usesArraysMaxDimensions = Math.max(\r
+                                               usesArraysMaxDimensions, \r
+                                               enumeration.getEnumerationIndexes().size());\r
+                       }\r
+               }\r
+               \r
+               return dimensions.getDim().isEmpty() ? null : dimensions;\r
+       }\r
+       \r
+       private List<Model> getModels(ReadGraph graph) \r
+                       throws DatabaseException {\r
+               List<Model> models = new ArrayList<Model>();\r
+               \r
+               for (Configuration configuration : sourceModel.getModules()) {\r
+                       // create submodels\r
+               }\r
+               \r
+               Model model = factory.createModel();\r
+               \r
+               model.setVariables(getVariables(sourceModel.getConfiguration()));\r
+               \r
+               if (includeView) {\r
+                       model.setViews(getViews(graph, sourceModel.getConfiguration()));\r
+               }\r
+               \r
+               models.add(model);\r
+               \r
+               return models;\r
+       }\r
+       \r
+       private Variables getVariables(Configuration configuration) \r
+                       throws DatabaseException {\r
+               Variables variables = factory.createVariables();\r
+               \r
+               for (IElement element : configuration.getElements()) {\r
+                       Object variable;\r
+                       \r
+                       if (element instanceof org.simantics.sysdyn.representation.Auxiliary) {\r
+                               variable = getAuxiliary((org.simantics.sysdyn.representation.Auxiliary)element);\r
+                       }\r
+                       else if (element instanceof org.simantics.sysdyn.representation.Valve) {\r
+                               variable = getFlow((org.simantics.sysdyn.representation.Valve)element);\r
+                       }\r
+                       else if (element instanceof org.simantics.sysdyn.representation.Stock) {\r
+                               variable = getStock((org.simantics.sysdyn.representation.Stock)element);\r
+                       }\r
+                       else {\r
+                               // skip other element types\r
+                               continue;\r
+                       }\r
+                       \r
+                       variables.getStockOrFlowOrAuxiliary().add(variable);\r
+               }\r
+               \r
+               return variables;\r
+       }\r
+       \r
+       private Views getViews(ReadGraph graph, Configuration configuration) \r
+                       throws DatabaseException {\r
+               Views views = factory.createViews();\r
+               \r
+               // since sysdyn does not really have separate views, just create one \r
+               // view for the whole diagram\r
+               View view = factory.createViewsView();\r
+               views.getStyleOrView().add(view);\r
+               \r
+               // the object model is only interested in the variables so the diagram\r
+               // data must be read directly from the graph\r
+               for (IElement element : configuration.getElements()) {\r
+                       Resource res = sourceModel.getMapping().inverseGet(element);\r
+                       \r
+                       Object obj;\r
+                       \r
+                       if (element instanceof org.simantics.sysdyn.representation.Auxiliary) {\r
+                               obj = getViewAuxiliary(graph, res);\r
+                       }\r
+                       else if (element instanceof org.simantics.sysdyn.representation.Valve) {\r
+                               obj = getViewFlow(graph, res);\r
+                       }\r
+                       else if (element instanceof org.simantics.sysdyn.representation.Stock) {\r
+                               obj = getViewStock(graph, res);\r
+                       }\r
+                       else if (element instanceof org.simantics.sysdyn.representation.Dependency) {\r
+                               obj = getViewConnector(graph, res);\r
+                       }\r
+                       else {\r
+                               continue;\r
+                       }\r
+                       \r
+                       view.getStyleOrStockOrFlow().add(obj);\r
+               }\r
+               \r
+               return views;\r
+       }\r
+       \r
+       private Auxiliary getAuxiliary(org.simantics.sysdyn.representation.Auxiliary auxVar) \r
+                       throws DatabaseException {\r
+               Auxiliary aux = factory.createAuxiliary();\r
+               \r
+               aux.setName(auxVar.getName());\r
+               \r
+               String desc = auxVar.getDescription();\r
+               if (desc != null && !desc.isEmpty()) {\r
+                       aux.getEqnOrMathmlOrUnits().add(\r
+                                       factory.createAuxiliaryDoc(desc));\r
+               }\r
+               \r
+               if (!auxVar.getArrayIndexes().isEmpty()) {\r
+                       Dimensions dims = factory.createDimensions();\r
+                       \r
+                       for (Enumeration enumeration : auxVar.getArrayIndexes()) {\r
+                               Dim dim = factory.createDimensionsDim();\r
+                               dim.setName(enumeration.getName());\r
+                               dims.getDim().add(dim);\r
+                       }\r
+                       \r
+                       aux.getEqnOrMathmlOrUnits().add(dims);\r
+               }\r
+               \r
+               // if there is only one expression, create an apply-to-all equation\r
+               if (auxVar.getExpressions().size() == 1) {\r
+                       aux.getEqnOrMathmlOrUnits().addAll(\r
+                                       parseExpression(Auxiliary.class, auxVar.getExpressions().get(0)));\r
+               }\r
+               // otherwise, create a suitable set of elements and an equation for each of them\r
+               else {\r
+                       for (IExpression expression : auxVar.getExpressions()) {\r
+                               Auxiliary.Element element = factory.createAuxiliaryElement();\r
+                               \r
+                               StringBuilder subscript = new StringBuilder();\r
+                               for (String index : expression.getArrayIndices()) {\r
+                                       if (subscript.length() > 0)\r
+                                               subscript.append(',');\r
+                                       subscript.append(index);\r
+                               }\r
+                               element.setSubscript(subscript.toString());\r
+                               \r
+                               element.getEqnOrMathmlOrGf().addAll(\r
+                                               parseExpression(Auxiliary.Element.class, expression));\r
+                               \r
+                               aux.getEqnOrMathmlOrUnits().add(factory.createAuxiliaryElement(element));\r
+                       }\r
+               }\r
+               \r
+               return aux;\r
+       }\r
+       \r
+       private Flow getFlow(org.simantics.sysdyn.representation.Valve valveVar) \r
+                       throws DatabaseException {\r
+               Flow flow = factory.createFlow();\r
+               \r
+               flow.setName(valveVar.getName());\r
+               \r
+               String desc = valveVar.getDescription();\r
+               if (desc != null && !desc.isEmpty()) {\r
+                       flow.getEqnOrMathmlOrUnits().add(\r
+                                       factory.createAuxiliaryDoc(desc));\r
+               }\r
+               \r
+               IExpression expression = valveVar.getExpressions().get(0);\r
+               \r
+               flow.getEqnOrMathmlOrUnits().addAll(parseExpression(Flow.class, expression));\r
+               \r
+               return flow;\r
+       }\r
+       \r
+       private Stock getStock(org.simantics.sysdyn.representation.Stock stockVar) \r
+                       throws DatabaseException {\r
+               Stock stock = factory.createStock();\r
+               \r
+               stock.setName(stockVar.getName());\r
+               \r
+               String desc = stockVar.getDescription();\r
+               if (desc != null && !desc.isEmpty()) {\r
+                       stock.getEqnOrMathmlOrUnits().add(\r
+                                       factory.createAuxiliaryDoc(desc));\r
+               }\r
+               \r
+               IExpression expression = stockVar.getExpressions().get(0);\r
+               \r
+               // initial equation\r
+               stock.getEqnOrMathmlOrUnits().addAll(parseExpression(Stock.class, expression));\r
+               \r
+               // inputs and outputs\r
+               for (org.simantics.sysdyn.representation.Valve valve : stockVar.getIncomingValves()) {\r
+                       Object inflow = factory.createStockElementInflow(valve.getName());\r
+                       stock.getEqnOrMathmlOrUnits().add(inflow);\r
+               }\r
+               for (org.simantics.sysdyn.representation.Valve valve : stockVar.getOutgoingValves()) {\r
+                       Object outflow = factory.createStockElementOutflow(valve.getName());\r
+                       stock.getEqnOrMathmlOrUnits().add(outflow);\r
+               }\r
+               \r
+               return stock;\r
+       }\r
+       \r
+       private ViewContentType.Aux getViewAuxiliary(ReadGraph graph, Resource auxRes) \r
+                       throws DatabaseException {\r
+               ViewContentType.Aux aux = factory.createViewContentTypeAux();\r
+               \r
+               String name = graph.getRelatedValue(auxRes, l0.HasName, Bindings.STRING);\r
+               aux.setName(name);\r
+               \r
+               aux.setX(getComponentX(graph, auxRes));\r
+               aux.setY(getComponentY(graph, auxRes));\r
+               \r
+               return aux;\r
+       }\r
+       \r
+       private ViewContentType.Flow getViewFlow(ReadGraph graph, Resource valveRes) \r
+                       throws DatabaseException {\r
+               ViewContentType.Flow flow = factory.createViewContentTypeFlow();\r
+               \r
+               String name = graph.getRelatedValue(valveRes, l0.HasName, Bindings.STRING);\r
+               flow.setName(name);\r
+               \r
+               ViewContentType.Flow.Pts points = factory.createViewContentTypeFlowPts();\r
+               \r
+               // construct the list of points for the flow from the inbound and \r
+               // outbound flows of the valve with the valve in the middle\r
+               \r
+               for (Resource res : graph.getObjects(valveRes, sr.Variable_isHeadOf)) {\r
+                       if (graph.isInstanceOf(res, sr.Flow)) {\r
+                               Resource tail = graph.getSingleObject(res, sr.Variable_HasTail);\r
+                               \r
+                               ViewContentType.Flow.Pts.Pt start = factory.createViewContentTypeFlowPtsPt();\r
+                               start.setX(getComponentX(graph, tail));\r
+                               start.setY(getComponentY(graph, tail));\r
+                               \r
+                               points.getPt().add(start);\r
+                               break; // just in case not sure what to do if there are multiple flows\r
+                       }\r
+               }\r
+               \r
+               for (Resource res : graph.getObjects(valveRes, sr.Variable_isTailOf)) {\r
+                       if (graph.isInstanceOf(res, sr.Flow)) {\r
+                               Resource head = graph.getSingleObject(res, sr.Variable_HasHead);\r
+                               \r
+                               ViewContentType.Flow.Pts.Pt end = factory.createViewContentTypeFlowPtsPt();\r
+                               end.setX(getComponentX(graph, head));\r
+                               end.setY(getComponentY(graph, head));\r
+                               \r
+                               points.getPt().add(end);\r
+                               break; // just in case not sure what to do if there are multiple flows\r
+                       }\r
+               }\r
+               \r
+               flow.setPts(points);\r
+               \r
+               flow.setX(getComponentX(graph, valveRes));\r
+               flow.setY(getComponentY(graph, valveRes));\r
+               \r
+               return flow;\r
+       }\r
+       \r
+       private ViewContentType.Stock getViewStock(ReadGraph graph, Resource stockRes) \r
+                       throws DatabaseException {\r
+               ViewContentType.Stock stock = factory.createViewContentTypeStock();\r
+               \r
+               String name = graph.getRelatedValue(stockRes, l0.HasName, Bindings.STRING);\r
+               stock.setName(name);\r
+               \r
+               stock.setX(getComponentX(graph, stockRes));\r
+               stock.setY(getComponentY(graph, stockRes));\r
+               \r
+               return stock;\r
+       }\r
+       \r
+       private ViewContentType.Connector getViewConnector(ReadGraph graph, Resource depRes) \r
+                       throws DatabaseException {\r
+               ViewContentType.Connector connector = factory.createViewContentTypeConnector();\r
+               \r
+               connector.setUid(connectorId++);\r
+               \r
+               // TODO: figure these out\r
+               connector.setX(1.0);\r
+               connector.setY(1.0);\r
+               \r
+               Resource head = graph.getSingleObject(depRes, sr.Variable_HasHead);\r
+               Resource tail = graph.getSingleObject(depRes, sr.Variable_HasTail);\r
+               \r
+               String headName = graph.getRelatedValue(head, l0.HasName, Bindings.STRING);\r
+               String tailName = graph.getRelatedValue(tail, l0.HasName, Bindings.STRING);\r
+               \r
+               // from and to are not symmetric, no idea why but it is the specification\r
+               From from = factory.createViewContentTypeConnectorFrom();\r
+               from.getContent().add(tailName);\r
+               connector.setFrom(from);\r
+               connector.setTo(headName);\r
+               \r
+               return connector;\r
+       }\r
+       \r
+       private double getComponentX(ReadGraph graph, Resource comp) \r
+                       throws DatabaseException {\r
+               Resource symbol = graph.getSingleObject(comp, mr.ComponentToElement);\r
+               double[] transform = graph.getRelatedValue(symbol, dr.HasTransform, Bindings.DOUBLE_ARRAY);\r
+               return transform[4];\r
+       }\r
+       \r
+       private double getComponentY(ReadGraph graph, Resource comp) \r
+                       throws DatabaseException {\r
+               Resource symbol = graph.getSingleObject(comp, mr.ComponentToElement);\r
+               double[] transform = graph.getRelatedValue(symbol, dr.HasTransform, Bindings.DOUBLE_ARRAY);\r
+               return transform[5];\r
+       }\r
+       \r
+       private List<Object> parseExpression(Class<?> varType, IExpression expression) \r
+                       throws DatabaseException {\r
+               List<Object> exprObjs = new ArrayList<Object>();\r
+               \r
+               String exprStr;\r
+               if (expression instanceof NormalExpression) {\r
+                       NormalExpression expr = (NormalExpression)expression;\r
+                       exprStr = expr.getExpression();\r
+               }\r
+               else if (expression instanceof ParameterExpression) {\r
+                       ParameterExpression expr = (ParameterExpression)expression;\r
+                       exprStr = expr.getValue().toString();\r
+               }\r
+               else if (expression instanceof WithLookupExpression) {\r
+                       WithLookupExpression expr = (WithLookupExpression)expression;\r
+                       \r
+                       Gf gf = factory.createGf();\r
+                       \r
+                       double[] points = expr.getPoints();\r
+                       StringBuilder xPts = new StringBuilder();\r
+                       StringBuilder yPts = new StringBuilder();\r
+                       for (int i = 0; i < points.length / 2; i++) {\r
+                               if (i > 0) {\r
+                                       xPts.append(',');\r
+                                       yPts.append(',');\r
+                               }\r
+                               xPts.append(points[2*i]);\r
+                               yPts.append(points[2*i + 1]);\r
+                       }\r
+                       \r
+                       PointsType xPtsType = factory.createPointsType();\r
+                       PointsType yPtsType = factory.createPointsType();\r
+                       \r
+                       xPtsType.setValue(xPts.toString());\r
+                       yPtsType.setValue(yPts.toString());\r
+                       \r
+                       gf.setXpts(xPtsType);\r
+                       gf.setYpts(yPtsType);\r
+                       \r
+                       exprObjs.add(gf);\r
+                       \r
+                       exprStr = expr.getLookupEquation();\r
+               }\r
+               else if (expression instanceof StockExpression) {\r
+                       StockExpression expr = (StockExpression)expression;\r
+                       \r
+                       // xmile does not support custom stock expressions so if the\r
+                       // expression is anything else than a sum of inputs and outputs\r
+                       // then something special should be done here. for the moment\r
+                       // though it should be sufficient to just handle the initial\r
+                       // equation here and add the inputs and outputs in getStock()\r
+                       \r
+                       exprStr = expr.getExpression();\r
+               }\r
+               else {\r
+                       throw new DatabaseException("unrecognized expression type");\r
+               }\r
+               \r
+               Object eqn;\r
+               try {\r
+                       eqn = getEqn(varType, XmileUtil.modelicaExprToXmile(exprStr));\r
+               }\r
+               catch (Exception e) {\r
+                       throw new DatabaseException(e);\r
+               }\r
+               \r
+               exprObjs.add(eqn);\r
+               \r
+               return exprObjs;\r
+       }\r
+       \r
+       private Object getEqn(Class<?> varType, String equation) {\r
+               if (varType.equals(Auxiliary.class)) {\r
+                       return factory.createAuxiliaryEqn(equation);\r
+               }\r
+               else if (varType.equals(Auxiliary.Element.class)) {\r
+                       return factory.createAuxiliaryElementEqn(equation);\r
+               }\r
+               else if (varType.equals(Flow.class)) {\r
+                       return factory.createFlowEqn(equation);\r
+               }\r
+               else if (varType.equals(Flow.Element.class)) {\r
+                       return factory.createFlowElementEqn(equation);\r
+               }\r
+               else if (varType.equals(Stock.class)) {\r
+                       return factory.createStockEqn(equation);\r
+               }\r
+               else if (varType.equals(Stock.Element.class)) {\r
+                       return factory.createStockElementEqn(equation);\r
+               }\r
+               else {\r
+                       return null;\r
+               }\r
+       }\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/XmileParser.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/XmileParser.java
new file mode 100644 (file)
index 0000000..9444ed4
--- /dev/null
@@ -0,0 +1,759 @@
+package org.simantics.sysdyn.xmile;\r
+\r
+import java.io.File;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import javax.xml.bind.JAXBContext;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.Unmarshaller;\r
+\r
+import org.simantics.sysdyn.modelImport.IModelParser;\r
+import org.simantics.sysdyn.modelImport.model.Auxiliary;\r
+import org.simantics.sysdyn.modelImport.model.Cloud;\r
+import org.simantics.sysdyn.modelImport.model.Dependency;\r
+import org.simantics.sysdyn.modelImport.model.Flow;\r
+import org.simantics.sysdyn.modelImport.model.Model;\r
+import org.simantics.sysdyn.modelImport.model.Stock;\r
+import org.simantics.sysdyn.modelImport.model.Valve;\r
+import org.simantics.sysdyn.modelImport.model.Variable;\r
+import org.simantics.sysdyn.modelImport.model.expression.EnumerationExpression;\r
+import org.simantics.sysdyn.modelImport.model.expression.Expression;\r
+import org.simantics.sysdyn.modelImport.model.expression.IntegralExpression;\r
+import org.simantics.sysdyn.modelImport.model.expression.LookupExpression;\r
+import org.simantics.sysdyn.modelImport.model.expression.NormalExpression;\r
+import org.simantics.sysdyn.modelImport.model.support.Enumeration;\r
+import org.simantics.sysdyn.xmile.expressionParser.XmileExpressionParser;\r
+import org.simantics.sysdyn.xmile.schema.Dimensions;\r
+import org.simantics.sysdyn.xmile.schema.Gf;\r
+import org.simantics.sysdyn.xmile.schema.MinMaxType;\r
+import org.simantics.sysdyn.xmile.schema.PointsType;\r
+import org.simantics.sysdyn.xmile.schema.Xmile;\r
+import org.simantics.sysdyn.xmile.schema.Dimensions.Dim;\r
+import org.simantics.sysdyn.xmile.schema.Includes.Include;\r
+import org.simantics.sysdyn.xmile.schema.ModelUnits.Unit;\r
+import org.simantics.sysdyn.xmile.schema.ViewContentType.Flow.Pts.Pt;\r
+import org.simantics.sysdyn.xmile.unitParser.XmileUnitParser;\r
+\r
+public class XmileParser implements IModelParser {\r
+       \r
+       /*\r
+        * TODO list:\r
+        * - submodels\r
+        * - figure out any possible problems with models without views\r
+        * - subscript indices should be expanded in array equations (not\r
+        *   implemented yet in expression parser)\r
+        * - included files\r
+        * - macros\r
+        * - function implementations\r
+        */\r
+       \r
+       private static final String EQUATION = "eqn";\r
+       private static final String INFLOW = "inflow";\r
+       private static final String OUTFLOW = "outflow";\r
+       private static final String UNITS = "units";\r
+       private static final String ELEMENT = "element";\r
+       private static final String DOC = "doc";\r
+       \r
+       private static final double DEFAULT_X = 1.0;\r
+       private static final double DEFAULT_Y = 1.0;\r
+       private static final double DEFAULT_ANGLE = 1.0;\r
+       \r
+       private Model model;\r
+       \r
+       private Map<String, String> unitMap = new HashMap<String, String>();\r
+       \r
+       // TODO: list all options\r
+       private boolean arrays = true;\r
+       \r
+       @Override\r
+       public Model parse(File file) throws Exception {\r
+               // read the xml file\r
+               JAXBContext context = JAXBContext.newInstance("org.simantics.sysdyn.xmile.schema");\r
+               Unmarshaller unmarshaller = context.createUnmarshaller();\r
+               Xmile xmile = (Xmile)unmarshaller.unmarshal(file);\r
+               \r
+               // initialize the model representation (the name of the model is the \r
+               // name of the file unless a name has been specified in the header)\r
+               String name = XmileUtil.normalize(file.getName().replaceAll("\\.\\w+$", ""));\r
+               model = new Model(name);\r
+\r
+               // parse the xmile document to populate the model representation with \r
+               // appropriate elements\r
+               parseDocument(xmile);\r
+               \r
+               // return the model representation\r
+               return model;\r
+       }\r
+       \r
+       private Model parseDocument(Xmile xmile) \r
+                       throws Exception {\r
+               // note that this is very inefficient since the list is traversed\r
+               // several times but this should not matter as the list is not very\r
+               // long (and this solutions is much more readable than the alternative)\r
+               \r
+               List<Object> objs = xmile.getSimSpecsOrModelUnitsOrBehavior();\r
+               \r
+               // the specification requires that the document must contain a header \r
+               // and at least one model. model units and dimensions should be parsed\r
+               // before the model(s).\r
+               \r
+               parseHeader(xmile.getHeader());\r
+               \r
+               org.simantics.sysdyn.xmile.schema.SimSpecs specsObj =\r
+                               getPossibleElement(org.simantics.sysdyn.xmile.schema.SimSpecs.class, objs);\r
+               if (specsObj != null)\r
+                       parseSimSpecs(specsObj);\r
+               \r
+               org.simantics.sysdyn.xmile.schema.ModelUnits unitsObj =\r
+                               getPossibleElement(org.simantics.sysdyn.xmile.schema.ModelUnits.class, objs);\r
+               if (unitsObj != null)\r
+                       parseModelUnits(unitsObj);\r
+               \r
+               org.simantics.sysdyn.xmile.schema.Xmile.Dimensions dimensionsObj =\r
+                               getPossibleElement(org.simantics.sysdyn.xmile.schema.Xmile.Dimensions.class, objs);\r
+               if (dimensionsObj != null)\r
+                       parseDimensions(dimensionsObj);\r
+               \r
+               List<org.simantics.sysdyn.xmile.schema.Model> modelObjs = \r
+                               getElements(org.simantics.sysdyn.xmile.schema.Model.class, objs);\r
+               for (org.simantics.sysdyn.xmile.schema.Model modelObj : modelObjs) {\r
+                       // TODO: skip submodels for now\r
+                       if (modelObj.getName() == null)\r
+                               parseModel(modelObj);\r
+               }\r
+               \r
+               // TODO: behaviour, style, data, macro\r
+               \r
+               return model;\r
+       }\r
+       \r
+       private void parseHeader(org.simantics.sysdyn.xmile.schema.Header header) \r
+                       throws Exception {\r
+               String name = header.getName();\r
+               if (name != null) {\r
+                       // remove a possible file suffix from the model name\r
+                       model.setName(XmileUtil.normalize(name.replaceAll("\\.\\w+$", "")));\r
+               }\r
+               // handle includes\r
+               if (header.getIncludes() != null) {\r
+                       for (Include include : header.getIncludes().getInclude()) {\r
+                               parseInclude(include);\r
+                       }\r
+               }\r
+       }\r
+       \r
+       private void parseInclude(Include include) {\r
+               System.err.println("INCLUDE");\r
+       }\r
+       \r
+       private void parseSimSpecs(org.simantics.sysdyn.xmile.schema.SimSpecs specsObj) \r
+                       throws Exception {\r
+               model.setStartTime(specsObj.getStart());\r
+               model.setStopTime(specsObj.getStop());\r
+               // the default value for time step is 1\r
+               double step = 1;\r
+               if (specsObj.getDt() != null)\r
+                       step = specsObj.getDt().getValue();\r
+               model.setTimeStep(step);\r
+               // the default value for method is euler (and since it is the only \r
+               // thing we support there is no need to do anything here currently)\r
+               String method = specsObj.getMethod();\r
+               String unit = specsObj.getTimeUnits();\r
+               if (unit != null)\r
+                       model.setTimeUnit(unit);\r
+               // according to the specification, pause interval can be currently \r
+               // ignored and since we only support simulation of the complete model\r
+               // the run attribute does not do anything\r
+       }\r
+       \r
+       private void parseModelUnits(org.simantics.sysdyn.xmile.schema.ModelUnits unitsObj) \r
+                       throws Exception {\r
+               // first collect all "primary" units that do not have equations \r
+               // associated with them\r
+               for (Unit unit : unitsObj.getUnit()) {\r
+                       if (unit.getEqn() != null)\r
+                               continue;\r
+                       String name = unit.getName();\r
+                       unitMap.put(name.toUpperCase(), name);\r
+                       for (String alias : unit.getAlias())\r
+                               for (String a : alias.split(","))\r
+                                       unitMap.put(a.toUpperCase(), name);\r
+               }\r
+               // then process all non-primary units so that the equations are\r
+               // normalized to only contain primary units\r
+               for (Unit unit : unitsObj.getUnit()) {\r
+                       if (unit.getEqn() == null)\r
+                               continue;\r
+                       String name = unit.getName();\r
+                       String equation = XmileUnitParser.parse(unit.getEqn(), unitMap);\r
+                       unitMap.put(name.toUpperCase(), equation);\r
+                       for (String alias : unit.getAlias())\r
+                               for (String a : alias.split(","))\r
+                                       unitMap.put(a.toUpperCase(), equation);\r
+               }\r
+       }\r
+       \r
+       private void parseDimensions(org.simantics.sysdyn.xmile.schema.Xmile.Dimensions dimensionsObj) \r
+                       throws Exception {\r
+               for (org.simantics.sysdyn.xmile.schema.Xmile.Dimensions.Dim dim : dimensionsObj.getDim()) {\r
+                       // each subscript has a name, and either a list of dimension names\r
+                       // or a size attribute which defines the size of the subscript but \r
+                       // not both. since SYSDYN only supports named array indices, we\r
+                       // must create names for unnamed dimensions here.\r
+                       String name = dim.getName();\r
+                       ArrayList<String> values = new ArrayList<String>();\r
+                       if (dim.getSize() != null) {\r
+                               for (int i = 0; i < dim.getSize(); i++) {\r
+                                       values.add("index"+i);\r
+                               }\r
+                       }\r
+                       else {\r
+                               for (org.simantics.sysdyn.xmile.schema.Xmile.Dimensions.Dim.Elem elem : dim.getElem()) {\r
+                                       values.add(elem.getName());\r
+                               }\r
+                       }\r
+                       model.addEnumeration(new Enumeration(name, values));\r
+               }\r
+       }\r
+       \r
+       private void parseModel(org.simantics.sysdyn.xmile.schema.Model modelObj) \r
+                       throws Exception {\r
+               // TODO: isee models do not follow the specification and\r
+               // list variables directly under the model without a separate\r
+               // variables tag. find out why and how to fix this\r
+               List<Object> vars = modelObj.getVariables().getStockOrFlowOrAuxiliary();\r
+               \r
+               // auxiliaries and flows should be handled before stocks\r
+               \r
+               for (org.simantics.sysdyn.xmile.schema.Auxiliary auxObj : \r
+                               getElements(org.simantics.sysdyn.xmile.schema.Auxiliary.class, vars)) {\r
+                       model.addVariable(getAux(auxObj));\r
+               }\r
+               \r
+               for (org.simantics.sysdyn.xmile.schema.Flow flowObj :\r
+                               getElements(org.simantics.sysdyn.xmile.schema.Flow.class, vars)) {\r
+                       model.addVariable(getFlow(flowObj));\r
+               }\r
+               \r
+               for (org.simantics.sysdyn.xmile.schema.Stock stockObj :\r
+                               getElements(org.simantics.sysdyn.xmile.schema.Stock.class, vars)) {\r
+                       Stock stock = getStock(stockObj);\r
+                       model.addVariable(stock);\r
+                       \r
+                       for (String in : getJAXBElements(String.class, INFLOW, stockObj.getEqnOrMathmlOrUnits())) {\r
+                               Variable from = model.getVariable(XmileUtil.normalize(in));\r
+                               model.addConnection(new Flow(from, stock));\r
+                       }\r
+                       for (String out : getJAXBElements(String.class, OUTFLOW, stockObj.getEqnOrMathmlOrUnits())) {\r
+                               Variable to = model.getVariable(XmileUtil.normalize(out));\r
+                               model.addConnection(new Flow(stock, to));\r
+                       }\r
+               }\r
+               \r
+               // views are optional\r
+               if (modelObj.getViews() != null) {\r
+                       for (org.simantics.sysdyn.xmile.schema.Views.View view : \r
+                                       getElements(org.simantics.sysdyn.xmile.schema.Views.View.class, modelObj.getViews().getStyleOrView())) {\r
+                               // TODO: multiple views will probably break things\r
+                               parseView(view);\r
+                       }\r
+               }\r
+               \r
+               if (modelObj.getSimSpecs() != null) {\r
+                       // these settings should override the global ones\r
+               }\r
+       }\r
+       \r
+       private enum VariableType {\r
+               STOCK, FLOW, AUX;\r
+       }\r
+       \r
+       private void parseView(org.simantics.sysdyn.xmile.schema.Views.View view) {\r
+               List<Object> objs = view.getStyleOrStockOrFlow();\r
+               \r
+               for (org.simantics.sysdyn.xmile.schema.ViewContentType.Stock stockObj :\r
+                               getElements(org.simantics.sysdyn.xmile.schema.ViewContentType.Stock.class, objs)) {\r
+                       Stock stock = (Stock)model.getVariable(XmileUtil.normalize(stockObj.getName()));\r
+                       \r
+                       Double x = stockObj.getX();\r
+                       Double y = stockObj.getY();\r
+                       \r
+                       stock.setX(x != null ? x : DEFAULT_X);\r
+                       stock.setY(y != null ? y : DEFAULT_Y);\r
+               }\r
+               \r
+               for (org.simantics.sysdyn.xmile.schema.ViewContentType.Flow flowObj :\r
+                               getElements(org.simantics.sysdyn.xmile.schema.ViewContentType.Flow.class, objs)) {\r
+                       Valve valve = (Valve)model.getVariable(XmileUtil.normalize(flowObj.getName()));\r
+                       \r
+                       Double x = flowObj.getX();\r
+                       Double y = flowObj.getY();\r
+                       \r
+                       valve.setX(x != null ? x : DEFAULT_X);\r
+                       valve.setY(y != null ? y : DEFAULT_Y);\r
+                       \r
+                       List<Pt> points = flowObj.getPts().getPt();\r
+                       \r
+                       // xmile does not have clouds, so we need to add them here when necessary\r
+                       if (model.getInFlows(valve).isEmpty()) {\r
+                               Pt first = points.get(0);\r
+                               Cloud cloud = new Cloud(new double[]{first.getX(), first.getY(), 0, 0});\r
+                               model.addSymbol(cloud);\r
+                               model.addConnection(new Flow(cloud, valve));\r
+                       }\r
+                       if (model.getOutFlows(valve).isEmpty()) {\r
+                               Pt last = points.get(points.size()-1);\r
+                               Cloud cloud = new Cloud(new double[]{last.getX(), last.getY(), 0, 0});\r
+                               model.addSymbol(cloud);\r
+                               model.addConnection(new Flow(valve, cloud));\r
+                       }\r
+               }\r
+               \r
+               for (org.simantics.sysdyn.xmile.schema.ViewContentType.Aux auxObj :\r
+                               getElements(org.simantics.sysdyn.xmile.schema.ViewContentType.Aux.class, objs)) {\r
+                       Auxiliary aux = (Auxiliary)model.getVariable(XmileUtil.normalize(auxObj.getName()));\r
+\r
+                       Double x = auxObj.getX();\r
+                       Double y = auxObj.getY();\r
+\r
+                       aux.setX(x != null ? x : DEFAULT_X);\r
+                       aux.setY(y != null ? y : DEFAULT_Y);\r
+               }\r
+               \r
+               for (org.simantics.sysdyn.xmile.schema.ViewContentType.Connector connector : \r
+                               getElements(org.simantics.sysdyn.xmile.schema.ViewContentType.Connector.class, objs)) {\r
+                       \r
+                       // why the 'from' variable is stored differently than the 'to' \r
+                       // variable is not clear\r
+                       String fromName = XmileUtil.normalize((String)connector.getFrom().getContent().get(0));\r
+                       String toName = XmileUtil.normalize(connector.getTo());\r
+                       \r
+                       Variable from = model.getVariable(fromName);\r
+                       Variable to = model.getVariable(toName);\r
+                       \r
+                       // angle is currently fixed\r
+                       model.addConnection(new Dependency(from, to, true, false, DEFAULT_ANGLE));\r
+               }\r
+               \r
+               // TODO: handle styles if necessary\r
+       }\r
+       \r
+       private Stock getStock(org.simantics.sysdyn.xmile.schema.Stock stockObj) \r
+                       throws Exception {\r
+               List<Object> objs = stockObj.getEqnOrMathmlOrUnits();\r
+               \r
+               Stock stock = new Stock();\r
+               \r
+               stock.setName(XmileUtil.normalize(stockObj.getName()));\r
+               \r
+               String doc = getPossibleJAXBElement(String.class, DOC, objs);\r
+               if (doc != null) {\r
+                       stock.setDescription(doc);\r
+               }\r
+               \r
+               // stock expression is constructed from in and out flows and initial\r
+               // value is obtained from the equation field\r
+               StringBuilder expression = new StringBuilder();\r
+               for (String in : getJAXBElements(String.class, INFLOW, objs)) {\r
+                       expression.append('+').append(XmileUtil.normalize(in));\r
+               }\r
+               for (String out : getJAXBElements(String.class, OUTFLOW, objs)) {\r
+                       expression.append('-').append(XmileUtil.normalize(out));\r
+               }\r
+               \r
+               Expression expr = parseExpression(objs, VariableType.STOCK, expression.toString());\r
+               stock.setExpression(expr);\r
+               \r
+               String units = getPossibleJAXBElement(String.class, UNITS, objs);\r
+               if (units != null) {\r
+                       stock.setUnit(XmileUnitParser.parse(units, unitMap));\r
+               }\r
+               \r
+               stock.setX(DEFAULT_X);\r
+               stock.setY(DEFAULT_Y);\r
+               \r
+               return stock;\r
+       }\r
+       \r
+       private Valve getFlow(org.simantics.sysdyn.xmile.schema.Flow flowObj) \r
+                       throws Exception {\r
+               List<Object> objs = flowObj.getEqnOrMathmlOrUnits();\r
+               \r
+               Valve valve = new Valve();\r
+               \r
+               valve.setName(XmileUtil.normalize(flowObj.getName()));\r
+               \r
+               String doc = getPossibleJAXBElement(String.class, DOC, objs);\r
+               if (doc != null) {\r
+                       valve.setDescription(doc);\r
+               }\r
+               \r
+               Expression expr = parseExpression(objs, VariableType.FLOW, null);\r
+               valve.setExpression(expr);\r
+               \r
+               String units = getPossibleJAXBElement(String.class, UNITS, objs);\r
+               if (units != null) {\r
+                       valve.setUnit(XmileUnitParser.parse(units, unitMap));\r
+               }\r
+               \r
+               valve.setX(DEFAULT_X);\r
+               valve.setY(DEFAULT_Y);\r
+               \r
+               return valve;\r
+       }\r
+       \r
+       private Auxiliary getAux(org.simantics.sysdyn.xmile.schema.Auxiliary auxObj) \r
+                       throws Exception {\r
+               List<Object> objs = auxObj.getEqnOrMathmlOrUnits();\r
+               \r
+               Auxiliary aux = new Auxiliary();\r
+               \r
+               aux.setName(XmileUtil.normalize(auxObj.getName()));\r
+               \r
+               String doc = getPossibleJAXBElement(String.class, DOC, objs);\r
+               if (doc != null) {\r
+                       aux.setDescription(doc);\r
+               }\r
+               \r
+               Expression expr = parseExpression(objs, VariableType.AUX, null);\r
+               aux.setExpression(expr);\r
+               \r
+               String units = getPossibleJAXBElement(String.class, UNITS, objs);\r
+               if (units != null) {\r
+                       aux.setUnit(XmileUnitParser.parse(units, unitMap));\r
+               }\r
+               \r
+               aux.setX(DEFAULT_X);\r
+               aux.setY(DEFAULT_Y);\r
+               \r
+               return aux;\r
+       }\r
+       \r
+       private Expression parseExpression(List<Object> objs, VariableType type, String additional) \r
+                       throws Exception {\r
+               // figure out the correct expression from the provided data\r
+               String     equation   = getPossibleJAXBElement(String.class, EQUATION, objs);\r
+               Gf         gf         = getPossibleElement(Gf.class, objs);\r
+               Dimensions dimensions = getPossibleElement(Dimensions.class, objs);\r
+               \r
+               if (dimensions != null) {\r
+                       // an array equation\r
+                       List<Enumeration> enums = new ArrayList<Enumeration>();\r
+                       for (Dim dim : dimensions.getDim()) {\r
+                               enums.add(model.getEnumeration(dim.getName()));\r
+                       }\r
+                       \r
+                       EnumerationExpression expr = new EnumerationExpression(enums);\r
+                       \r
+                       // array equations are either apply-to-all with one global equation, \r
+                       // or non-apply-to-all with individual equations for each element.\r
+                       // graphical functions are somewhat of an exception since they can\r
+                       // define different graphical functions for each element even if\r
+                       // they all use the same global equation.\r
+                       \r
+                       // the element type is different for each variable type for some\r
+                       // inexplicable reason so this is pretty ugly\r
+                       Class<?> elementType;\r
+                       switch (type) {\r
+                       case STOCK:\r
+                               elementType = org.simantics.sysdyn.xmile.schema.Stock.Element.class; \r
+                               break;\r
+                       case FLOW:\r
+                               elementType = org.simantics.sysdyn.xmile.schema.Flow.Element.class; \r
+                               break;\r
+                       case AUX:\r
+                               elementType = org.simantics.sysdyn.xmile.schema.Auxiliary.Element.class; \r
+                               break;\r
+                       default:\r
+                               // should not happen\r
+                               throw new Exception("unrecognized variable type "+type);\r
+                       }\r
+\r
+                       List<?> elements = getJAXBElements(elementType, ELEMENT, objs);\r
+                       if (!elements.isEmpty()) {\r
+                               // non-apply-to-all\r
+                               for (Object element : elements) {\r
+                                       List<Object> elementObjs;\r
+                                       String       subscript;\r
+                                       switch (type) {\r
+                                       case STOCK:\r
+                                               org.simantics.sysdyn.xmile.schema.Stock.Element stockElement = \r
+                                                       (org.simantics.sysdyn.xmile.schema.Stock.Element)element;\r
+                                               elementObjs = stockElement.getEqnOrMathmlOrGf();\r
+                                               subscript = stockElement.getSubscript();\r
+                                               break;\r
+                                       case FLOW:\r
+                                               org.simantics.sysdyn.xmile.schema.Flow.Element flowElement = \r
+                                                       (org.simantics.sysdyn.xmile.schema.Flow.Element)element;\r
+                                               elementObjs = flowElement.getEqnOrMathmlOrGf();\r
+                                               subscript = flowElement.getSubscript();\r
+                                               break;\r
+                                       case AUX:\r
+                                               org.simantics.sysdyn.xmile.schema.Auxiliary.Element auxElement = \r
+                                                       (org.simantics.sysdyn.xmile.schema.Auxiliary.Element)element;\r
+                                               elementObjs = auxElement.getEqnOrMathmlOrGf();\r
+                                               subscript = auxElement.getSubscript();\r
+                                               break;\r
+                                       default:\r
+                                               // should not happen\r
+                                               throw new Exception("unrecognized variable type "+type);\r
+                                       }\r
+                                       \r
+                                       String   elementEquation = getPossibleJAXBElement(String.class, EQUATION, elementObjs);\r
+                                       Gf       elementGf       = getPossibleElement(Gf.class, elementObjs);\r
+                                       String[] elementIndices  = subscript.split(",");\r
+                                       \r
+                                       // replace integer indices with appropriate names\r
+                                       for (int i = 0; i < elementIndices.length; i++) {\r
+                                               try {\r
+                                                       int index = Integer.parseInt(elementIndices[i]);\r
+                                                       elementIndices[i] = enums.get(i).getValues().get(index-1);\r
+                                               }\r
+                                               catch (NumberFormatException e) {\r
+                                                       // nothing to do here\r
+                                               }\r
+                                       }\r
+                                       \r
+                                       // handle non-apply-to-all graphical functions with common equation\r
+                                       if (elementEquation == null) {\r
+                                               if (elementGf != null) {\r
+                                                       elementEquation = equation;\r
+                                               }\r
+                                               else {\r
+                                                       throw new Exception("non-graphical non-apply-to-all array element equation not found");\r
+                                               }\r
+                                       }\r
+                                       \r
+                                       // TODO: should replace subscript indices in the equation here\r
+                                       elementEquation = XmileExpressionParser.parse(elementEquation, null);\r
+                                       \r
+                                       // it is assumed that stock expressions have a common integral\r
+                                       // even if they are defined in terms of array equations. the\r
+                                       // specification is not explicitly clear on whether this is the\r
+                                       // case, but it would make sense.\r
+                                       \r
+                                       expr.addExpression(\r
+                                                       getExpression(elementEquation, elementGf, type, additional), \r
+                                                       elementIndices);\r
+                               }\r
+                       }\r
+                       else {\r
+                               // apply-to-all\r
+                               EnumIterator iter = new EnumIterator(enums);\r
+                               while (iter.hasNext()) {\r
+                                       String[] elementIndices = iter.next();\r
+                                       // TODO: should replace subscript indices in the equation here\r
+                                       String elementEquation = XmileExpressionParser.parse(equation, null);\r
+                                       expr.addExpression(\r
+                                                       getExpression(elementEquation, gf, type, additional), \r
+                                                       elementIndices);\r
+                               }\r
+                       }\r
+                       \r
+                       return expr;\r
+               }\r
+               else {\r
+                       // a normal equation\r
+                       equation = XmileExpressionParser.parse(equation, null);\r
+                       return getExpression(equation, gf, type, additional);\r
+               }\r
+       }\r
+       \r
+       private Expression getExpression(String equation, Gf gf, VariableType type, String additional) \r
+                       throws Exception {\r
+               // TODO: should also handle delay expressions somehow\r
+               if (equation == null) throw new Exception("no equation for "+type+" variable");\r
+               switch (type) {\r
+               case STOCK:\r
+                       // can stocks even have graphical functions?\r
+                       if (additional == null) throw new Exception("no integral for stock");\r
+                       return new IntegralExpression(additional, equation);\r
+               case FLOW:\r
+               case AUX:\r
+                       if (gf != null) {\r
+                               return getLookupExpression(equation, gf);\r
+                       }\r
+                       else {\r
+                               return new NormalExpression(equation);\r
+                       }\r
+               default:\r
+                       // should not happen\r
+                       throw new Exception("unrecognized variable type "+type);\r
+               }\r
+       }\r
+       \r
+       private LookupExpression getLookupExpression(String equation, Gf gf) {\r
+               // graphical functions are defined either with an x-axis scale and\r
+               // a set of y-axis values, or as a set of x and y pairs. as sysdyn\r
+               // only recognizes x and y pairs, the scale must be expanded into\r
+               // points manually in the case the points are not provided.\r
+\r
+               PointsType xPts = gf.getXpts();\r
+               PointsType yPts = gf.getYpts();\r
+               MinMaxType xScale = gf.getXscale();\r
+               MinMaxType yScale = gf.getYscale();\r
+               \r
+               double[] y = getPointsArray(yPts);\r
+               double[] x = xPts != null ? \r
+                               getPointsArray(xPts) : getPointsArray(xScale, y.length);\r
+                               \r
+               double[] points = new double[y.length * 2];\r
+               for (int i = 0; i < y.length; i++) {\r
+                       points[2*i] = x[i];\r
+                       points[2*i+1] = y[i];\r
+               }\r
+               \r
+               double xMin = xScale != null ? xScale.getMin() : getMinValue(x);\r
+               double yMin = yScale != null ? yScale.getMin() : getMinValue(y);\r
+               double xMax = xScale != null ? xScale.getMax() : getMaxValue(x);\r
+               double yMax = yScale != null ? yScale.getMax() : getMaxValue(y);\r
+               \r
+               return new LookupExpression(equation, xMin, yMin, xMax, yMax, points);\r
+       }\r
+       \r
+       private double[] getPointsArray(PointsType points) {\r
+               String[] tmp = points.getValue().split(points.getSep());\r
+               double[] res = new double[tmp.length];\r
+               for (int i = 0; i < tmp.length; i++) {\r
+                       res[i] = Double.parseDouble(tmp[i]);\r
+               }\r
+               return res;\r
+       }\r
+       \r
+       private double[] getPointsArray(MinMaxType scale, int size) {\r
+               double[] res = new double[size];\r
+               double min = scale.getMin();\r
+               double max = scale.getMax();\r
+               double interval = (max - min) / (size - 1);\r
+               for (int i = 0; i < size; i++) {\r
+                       res[i] = min + i*interval;\r
+               }\r
+               return res;\r
+       }\r
+       \r
+       private double getMaxValue(double[] values) {\r
+               double max = values[0];\r
+               for (double value : values) {\r
+                       if (value > max) {\r
+                               max = value;\r
+                       }\r
+               }\r
+               return max;\r
+       }\r
+       \r
+       private double getMinValue(double[] values) {\r
+               double min = values[0];\r
+               for (double value : values) {\r
+                       if (value < min) {\r
+                               min = value;\r
+                       }\r
+               }\r
+               return min;\r
+       }\r
+       \r
+       /**\r
+        * Return the first element of the given type from the given list of\r
+        * objects.\r
+        * \r
+        * @param type\r
+        * @param objects\r
+        * @return the element or null if none could be found\r
+        */\r
+       private <T> T getPossibleElement(Class<T> type, List<Object> objects) {\r
+               for (Object obj : objects) {\r
+                       if (obj.getClass().equals(type)) {\r
+                               return (T)obj;\r
+                       }\r
+               }\r
+               return null;\r
+       }\r
+       \r
+       /**\r
+        * Return all the elements of the given type from the given list of\r
+        * objects.\r
+        * \r
+        * @param type\r
+        * @param objects\r
+        * @return a list of elements (empty if none could be found)\r
+        */\r
+       private <T> List<T> getElements(Class<T> type, List<Object> objects) {\r
+               List<T> elements = new ArrayList<T>();\r
+               for (Object obj : objects) {\r
+                       if (obj.getClass().equals(type)) {\r
+                               elements.add((T)obj);\r
+                       }\r
+               }\r
+               return elements;\r
+       }\r
+       \r
+       private <T> T getPossibleJAXBElement(Class<T> type, String name, List<Object> objects) {\r
+               for (JAXBElement je : getElements(JAXBElement.class, objects)) {\r
+                       if (je.getName().getLocalPart().equals(name) && je.getDeclaredType().equals(type)) {\r
+                               return (T)je.getValue();\r
+                       }\r
+               }\r
+               return null;\r
+       }\r
+       \r
+       private <T> List<T> getJAXBElements(Class<T> type, String name, List<Object> objects) {\r
+               List<T> elements = new ArrayList<T>();\r
+               for (JAXBElement je : getElements(JAXBElement.class, objects)) {\r
+                       if (je.getName().getLocalPart().equals(name) && je.getDeclaredType().equals(type)) {\r
+                               elements.add((T)je.getValue());\r
+                       }\r
+               }\r
+               return elements;\r
+       }\r
+       \r
+       private class EnumIterator implements Iterator<String[]> {\r
+               \r
+               private List<Enumeration> enums;\r
+               private int[] indices;\r
+               private boolean done;\r
+               \r
+               public EnumIterator(List<Enumeration> enums) {\r
+                       this.enums = enums;\r
+                       this.indices = new int[enums.size()];\r
+                       this.done = false;\r
+                       for (Enumeration e : enums) {\r
+                               if (e.getValues().size() == 0) {\r
+                                       // can not iterate if some of the enums are empty\r
+                                       this.done = true;\r
+                               }\r
+                       }\r
+               }\r
+               @Override\r
+               public boolean hasNext() {\r
+                       return !done;\r
+               }\r
+               @Override\r
+               public String[] next() {\r
+                       // return the list of indices for the current element\r
+                       String[] result = new String[indices.length];\r
+                       for (int i = 0; i < indices.length; i++) {\r
+                               result[i] = enums.get(i).getValues().get(indices[i]);\r
+                       }\r
+                       // update the indices for the next element\r
+                       boolean next = false;\r
+                       for (int i = indices.length - 1; i >= 0; i--) {\r
+                               indices[i] = (indices[i] + 1) % enums.get(i).getValues().size();\r
+                               if (indices[i] > 0) {\r
+                                       next = true;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       // set the done flag if the indices run out\r
+                       done = !next;\r
+                       return result;\r
+               }\r
+               @Override\r
+               public void remove() {\r
+                       \r
+               }\r
+       }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/XmileUtil.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/XmileUtil.java
new file mode 100644 (file)
index 0000000..c1a52bd
--- /dev/null
@@ -0,0 +1,192 @@
+package org.simantics.sysdyn.xmile;\r
+\r
+import java.io.StringReader;\r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.Comparator;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import org.simantics.sysdyn.expressionParser.ExpressionParser;\r
+import org.simantics.sysdyn.expressionParser.ParseException;\r
+import org.simantics.sysdyn.expressionParser.Token;\r
+import org.simantics.utils.datastructures.Pair;\r
+\r
+public class XmileUtil {\r
+       \r
+       public static final String FUNCTION_PREFIX = "XMILE.";\r
+       \r
+       public static final String TIME_PARAM = ",time";\r
+       public static final String TIME_STEP_PARAM = ",timeStep";\r
+       \r
+       private static final Map<String, String> keywords;\r
+       private static final List<String> time_functions;\r
+       private static final List<String> time_step_functions;\r
+       \r
+       public static final double SCALE_X_TO_S = 1.0;\r
+       public static final double SCALE_S_TO_X = 1.0 / SCALE_X_TO_S;\r
+       \r
+       static {\r
+               keywords = new HashMap<String, String>();\r
+               keywords.put("TIME", "time");\r
+               keywords.put("DT", "timeStep");\r
+               keywords.put("STARTTIME", "startTime");\r
+               keywords.put("STOPTIME", "stopTime");\r
+               \r
+               // the following lists are used to add extra parameters to Xmile \r
+               // functions that need them because functions stored in a separate \r
+               // library cannot refer to model parameters directly (these can be \r
+               // removed if this behavior is ever changed)\r
+               \r
+               time_functions = new ArrayList<String>();\r
+               time_functions.add("PULSE");\r
+               time_functions.add("RAMP");\r
+               time_functions.add("STEP");\r
+               \r
+               time_step_functions = new ArrayList<String>();\r
+               time_step_functions.add("PULSE");\r
+       }\r
+       \r
+       /**\r
+        * Normalize a variable name\r
+        * \r
+        * XMILE variable names are case-insensitive, can contain numbers and \r
+        * are whitespace-insensitive in terms of whitespace characters ' ', \r
+        * '_' and '\n'. Sysdyn variable names can not contain (lone) numbers or\r
+        * underscores, and are recommended to begin with a capital letter\r
+        * to avoid conflicts with reserved keywords. This method translates\r
+        * the given variable name into a format that is compatible with both\r
+        * XMILE and Sysdyn.\r
+        * \r
+        * @param variable\r
+        * @return\r
+        */\r
+       public static String normalize(String variable) {\r
+               if (keywords.get(variable) != null) {\r
+                       return keywords.get(variable);\r
+               }\r
+               \r
+               StringBuilder result = new StringBuilder();\r
+               \r
+               String[] parts = variable.split("( |_|\\\\n)+");\r
+               \r
+               for (String part : parts) {\r
+                       if (result.length() > 0) {\r
+                               // replace any whitespace with a single space\r
+                               result.append(' ');\r
+                       }\r
+                       // preface numbers with 'n'\r
+                       if (part.matches("\\d.*")) {\r
+                               part = "n" + part;\r
+                       }\r
+                       // capitalize each part\r
+                       result.append(part.substring(0, 1).toUpperCase()).append(part.substring(1));\r
+               }\r
+               \r
+               return result.toString();\r
+       }\r
+       \r
+       public static String modelicaVarToXmile(String variable) {\r
+               // very ugly, use another map\r
+               if (keywords.values().contains(variable)) {\r
+                       for (String key : keywords.keySet()) {\r
+                               if (keywords.get(key).equals(variable)) {\r
+                                       return key;\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               // xmile is not happy with spaces in variable names so handle it here\r
+               return variable.replace(' ', '_');\r
+       }\r
+       \r
+       public static String modelicaExprToXmile(String expression) throws Exception {\r
+               ExpressionParser parser = new ExpressionParser(new StringReader(expression));\r
+               \r
+               try {\r
+                       parser.expr();\r
+               }\r
+               catch (ParseException e) {\r
+                       throw new Exception("could not parse expression "+expression, e);\r
+               }\r
+               \r
+               // rename variable references and remove prefixes from functions\r
+               \r
+               // in order to rewrite the equation accurately (without modifications \r
+               // to the parser which would be easier) a list of tokens and the \r
+               // respective replacements must first be collected so the tokens can \r
+               // be replaced in the correct order. a simple string replace is not\r
+               // sufficient here as the tokens can have common substrings.\r
+               \r
+               List<Pair<Token,String>> tokens = new ArrayList<Pair<Token,String>>();\r
+               \r
+               HashMap<String, List<Token>> variables = parser.getReferences();\r
+               \r
+               for (String variable : variables.keySet()) {\r
+                       for (Token occurrence : variables.get(variable)) {\r
+                               // xmile is not happy with spaces in variable names so handle \r
+                               // it here\r
+                               tokens.add(Pair.make(occurrence, modelicaVarToXmile(variable)));\r
+                       }\r
+               }\r
+               \r
+               Collections.sort(tokens, new Comparator<Pair<Token,String>>() {\r
+                       @Override\r
+                       public int compare(Pair<Token, String> o1, Pair<Token, String> o2) {\r
+                               // assume that the tokens do not overlap\r
+                               if (o1.first.endColumn < o2.first.beginColumn)\r
+                                       return -1;\r
+                               else\r
+                                       return 1;\r
+                       }\r
+               });\r
+               \r
+               StringBuilder expr = new StringBuilder();\r
+               \r
+               int last = 0;\r
+               for (Pair<Token, String> token : tokens) {\r
+                       expr.append(expression.substring(last, token.first.beginColumn-1));\r
+                       expr.append(token.second);\r
+                       last = token.first.endColumn;\r
+               }\r
+               expr.append(expression.substring(last));\r
+               \r
+               // TODO: note that this is extremely ugly, there must be a better\r
+               // way to handle xmile functions\r
+               String result = expr.toString();\r
+               for (String function : parser.getFunctionCallReferences().keySet()) {\r
+                       if (!function.startsWith(FUNCTION_PREFIX)) {\r
+                               // non-xmile functions are not handled currently\r
+                               throw new Exception("non-xmile function "+function+" encountered");\r
+                       }\r
+                       else {\r
+                               String replacement = function.substring(FUNCTION_PREFIX.length());\r
+                               result = result.replaceAll(function, replacement);\r
+                               if (needsTime(replacement)) {\r
+                                       result = result.replaceAll(TIME_PARAM, "");\r
+                               }\r
+                               if (needsTimeStep(replacement)) {\r
+                                       result = result.replaceAll(TIME_STEP_PARAM, "");\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               return result;\r
+       }\r
+       \r
+       public static String getSysdynFunction(String name) {\r
+               return name;\r
+       }\r
+       \r
+       public static boolean needsTime(String function) {\r
+               return time_functions.contains(function);\r
+       }\r
+       \r
+       public static boolean needsTimeStep(String function) {\r
+               return time_step_functions.contains(function);\r
+       }\r
+       \r
+       \r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/ParseException.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/ParseException.java
new file mode 100644 (file)
index 0000000..1ac469c
--- /dev/null
@@ -0,0 +1,187 @@
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 6.0 */\r
+/* JavaCCOptions:KEEP_LINE_COL=null */\r
+package org.simantics.sysdyn.xmile.expressionParser;\r
+\r
+/**\r
+ * This exception is thrown when parse errors are encountered.\r
+ * You can explicitly create objects of this exception type by\r
+ * calling the method generateParseException in the generated\r
+ * parser.\r
+ *\r
+ * You can modify this class to customize your error reporting\r
+ * mechanisms so long as you retain the public fields.\r
+ */\r
+public class ParseException extends Exception {\r
+\r
+  /**\r
+   * The version identifier for this Serializable class.\r
+   * Increment only if the <i>serialized</i> form of the\r
+   * class changes.\r
+   */\r
+  private static final long serialVersionUID = 1L;\r
+\r
+  /**\r
+   * This constructor is used by the method "generateParseException"\r
+   * in the generated parser.  Calling this constructor generates\r
+   * a new object of this type with the fields "currentToken",\r
+   * "expectedTokenSequences", and "tokenImage" set.\r
+   */\r
+  public ParseException(Token currentTokenVal,\r
+                        int[][] expectedTokenSequencesVal,\r
+                        String[] tokenImageVal\r
+                       )\r
+  {\r
+    super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));\r
+    currentToken = currentTokenVal;\r
+    expectedTokenSequences = expectedTokenSequencesVal;\r
+    tokenImage = tokenImageVal;\r
+  }\r
+\r
+  /**\r
+   * The following constructors are for use by you for whatever\r
+   * purpose you can think of.  Constructing the exception in this\r
+   * manner makes the exception behave in the normal way - i.e., as\r
+   * documented in the class "Throwable".  The fields "errorToken",\r
+   * "expectedTokenSequences", and "tokenImage" do not contain\r
+   * relevant information.  The JavaCC generated code does not use\r
+   * these constructors.\r
+   */\r
+\r
+  public ParseException() {\r
+    super();\r
+  }\r
+\r
+  /** Constructor with message. */\r
+  public ParseException(String message) {\r
+    super(message);\r
+  }\r
+\r
+\r
+  /**\r
+   * This is the last token that has been consumed successfully.  If\r
+   * this object has been created due to a parse error, the token\r
+   * followng this token will (therefore) be the first error token.\r
+   */\r
+  public Token currentToken;\r
+\r
+  /**\r
+   * Each entry in this array is an array of integers.  Each array\r
+   * of integers represents a sequence of tokens (by their ordinal\r
+   * values) that is expected at this point of the parse.\r
+   */\r
+  public int[][] expectedTokenSequences;\r
+\r
+  /**\r
+   * This is a reference to the "tokenImage" array of the generated\r
+   * parser within which the parse error occurred.  This array is\r
+   * defined in the generated ...Constants interface.\r
+   */\r
+  public String[] tokenImage;\r
+\r
+  /**\r
+   * It uses "currentToken" and "expectedTokenSequences" to generate a parse\r
+   * error message and returns it.  If this object has been created\r
+   * due to a parse error, and you do not catch it (it gets thrown\r
+   * from the parser) the correct error message\r
+   * gets displayed.\r
+   */\r
+  private static String initialise(Token currentToken,\r
+                           int[][] expectedTokenSequences,\r
+                           String[] tokenImage) {\r
+    String eol = System.getProperty("line.separator", "\n");\r
+    StringBuffer expected = new StringBuffer();\r
+    int maxSize = 0;\r
+    for (int i = 0; i < expectedTokenSequences.length; i++) {\r
+      if (maxSize < expectedTokenSequences[i].length) {\r
+        maxSize = expectedTokenSequences[i].length;\r
+      }\r
+      for (int j = 0; j < expectedTokenSequences[i].length; j++) {\r
+        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');\r
+      }\r
+      if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {\r
+        expected.append("...");\r
+      }\r
+      expected.append(eol).append("    ");\r
+    }\r
+    String retval = "Encountered \"";\r
+    Token tok = currentToken.next;\r
+    for (int i = 0; i < maxSize; i++) {\r
+      if (i != 0) retval += " ";\r
+      if (tok.kind == 0) {\r
+        retval += tokenImage[0];\r
+        break;\r
+      }\r
+      retval += " " + tokenImage[tok.kind];\r
+      retval += " \"";\r
+      retval += add_escapes(tok.image);\r
+      retval += " \"";\r
+      tok = tok.next;\r
+    }\r
+    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;\r
+    retval += "." + eol;\r
+    if (expectedTokenSequences.length == 1) {\r
+      retval += "Was expecting:" + eol + "    ";\r
+    } else {\r
+      retval += "Was expecting one of:" + eol + "    ";\r
+    }\r
+    retval += expected.toString();\r
+    return retval;\r
+  }\r
+\r
+  /**\r
+   * The end of line string for this machine.\r
+   */\r
+  protected String eol = System.getProperty("line.separator", "\n");\r
+\r
+  /**\r
+   * Used to convert raw characters to their escaped version\r
+   * when these raw version cannot be used as part of an ASCII\r
+   * string literal.\r
+   */\r
+  static String add_escapes(String str) {\r
+      StringBuffer retval = new StringBuffer();\r
+      char ch;\r
+      for (int i = 0; i < str.length(); i++) {\r
+        switch (str.charAt(i))\r
+        {\r
+           case 0 :\r
+              continue;\r
+           case '\b':\r
+              retval.append("\\b");\r
+              continue;\r
+           case '\t':\r
+              retval.append("\\t");\r
+              continue;\r
+           case '\n':\r
+              retval.append("\\n");\r
+              continue;\r
+           case '\f':\r
+              retval.append("\\f");\r
+              continue;\r
+           case '\r':\r
+              retval.append("\\r");\r
+              continue;\r
+           case '\"':\r
+              retval.append("\\\"");\r
+              continue;\r
+           case '\'':\r
+              retval.append("\\\'");\r
+              continue;\r
+           case '\\':\r
+              retval.append("\\\\");\r
+              continue;\r
+           default:\r
+              if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {\r
+                 String s = "0000" + Integer.toString(ch, 16);\r
+                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));\r
+              } else {\r
+                 retval.append(ch);\r
+              }\r
+              continue;\r
+        }\r
+      }\r
+      return retval.toString();\r
+   }\r
+\r
+}\r
+/* JavaCC - OriginalChecksum=c302e557875f7c68c2a1e8870feafb03 (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/SimpleCharStream.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/SimpleCharStream.java
new file mode 100644 (file)
index 0000000..841ccf5
--- /dev/null
@@ -0,0 +1,474 @@
+/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 6.0 */\r
+/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */\r
+package org.simantics.sysdyn.xmile.expressionParser;\r
+\r
+/**\r
+ * An implementation of interface CharStream, where the stream is assumed to\r
+ * contain only ASCII characters (without unicode processing).\r
+ */\r
+\r
+public class SimpleCharStream\r
+{\r
+/** Whether parser is static. */\r
+  public static final boolean staticFlag = false;\r
+  int bufsize;\r
+  int available;\r
+  int tokenBegin;\r
+/** Position in buffer. */\r
+  public int bufpos = -1;\r
+  protected int bufline[];\r
+  protected int bufcolumn[];\r
+\r
+  protected int column = 0;\r
+  protected int line = 1;\r
+\r
+  protected boolean prevCharIsCR = false;\r
+  protected boolean prevCharIsLF = false;\r
+\r
+  protected java.io.Reader inputStream;\r
+\r
+  protected char[] buffer;\r
+  protected int maxNextCharInd = 0;\r
+  protected int inBuf = 0;\r
+  protected int tabSize = 8;\r
+  protected boolean trackLineColumn = true;\r
+\r
+  public void setTabSize(int i) { tabSize = i; }\r
+  public int getTabSize() { return tabSize; }\r
+\r
+\r
+  protected void ExpandBuff(boolean wrapAround)\r
+  {\r
+    char[] newbuffer = new char[bufsize + 2048];\r
+    int newbufline[] = new int[bufsize + 2048];\r
+    int newbufcolumn[] = new int[bufsize + 2048];\r
+\r
+    try\r
+    {\r
+      if (wrapAround)\r
+      {\r
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);\r
+        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);\r
+        buffer = newbuffer;\r
+\r
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);\r
+        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);\r
+        bufline = newbufline;\r
+\r
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);\r
+        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);\r
+        bufcolumn = newbufcolumn;\r
+\r
+        maxNextCharInd = (bufpos += (bufsize - tokenBegin));\r
+      }\r
+      else\r
+      {\r
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);\r
+        buffer = newbuffer;\r
+\r
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);\r
+        bufline = newbufline;\r
+\r
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);\r
+        bufcolumn = newbufcolumn;\r
+\r
+        maxNextCharInd = (bufpos -= tokenBegin);\r
+      }\r
+    }\r
+    catch (Throwable t)\r
+    {\r
+      throw new Error(t.getMessage());\r
+    }\r
+\r
+\r
+    bufsize += 2048;\r
+    available = bufsize;\r
+    tokenBegin = 0;\r
+  }\r
+\r
+  protected void FillBuff() throws java.io.IOException\r
+  {\r
+    if (maxNextCharInd == available)\r
+    {\r
+      if (available == bufsize)\r
+      {\r
+        if (tokenBegin > 2048)\r
+        {\r
+          bufpos = maxNextCharInd = 0;\r
+          available = tokenBegin;\r
+        }\r
+        else if (tokenBegin < 0)\r
+          bufpos = maxNextCharInd = 0;\r
+        else\r
+          ExpandBuff(false);\r
+      }\r
+      else if (available > tokenBegin)\r
+        available = bufsize;\r
+      else if ((tokenBegin - available) < 2048)\r
+        ExpandBuff(true);\r
+      else\r
+        available = tokenBegin;\r
+    }\r
+\r
+    int i;\r
+    try {\r
+      if ((i = inputStream.read(buffer, maxNextCharInd, available - maxNextCharInd)) == -1)\r
+      {\r
+        inputStream.close();\r
+        throw new java.io.IOException();\r
+      }\r
+      else\r
+        maxNextCharInd += i;\r
+      return;\r
+    }\r
+    catch(java.io.IOException e) {\r
+      --bufpos;\r
+      backup(0);\r
+      if (tokenBegin == -1)\r
+        tokenBegin = bufpos;\r
+      throw e;\r
+    }\r
+  }\r
+\r
+/** Start. */\r
+  public char BeginToken() throws java.io.IOException\r
+  {\r
+    tokenBegin = -1;\r
+    char c = readChar();\r
+    tokenBegin = bufpos;\r
+\r
+    return c;\r
+  }\r
+\r
+  protected void UpdateLineColumn(char c)\r
+  {\r
+    column++;\r
+\r
+    if (prevCharIsLF)\r
+    {\r
+      prevCharIsLF = false;\r
+      line += (column = 1);\r
+    }\r
+    else if (prevCharIsCR)\r
+    {\r
+      prevCharIsCR = false;\r
+      if (c == '\n')\r
+      {\r
+        prevCharIsLF = true;\r
+      }\r
+      else\r
+        line += (column = 1);\r
+    }\r
+\r
+    switch (c)\r
+    {\r
+      case '\r' :\r
+        prevCharIsCR = true;\r
+        break;\r
+      case '\n' :\r
+        prevCharIsLF = true;\r
+        break;\r
+      case '\t' :\r
+        column--;\r
+        column += (tabSize - (column % tabSize));\r
+        break;\r
+      default :\r
+        break;\r
+    }\r
+\r
+    bufline[bufpos] = line;\r
+    bufcolumn[bufpos] = column;\r
+  }\r
+\r
+/** Read a character. */\r
+  public char readChar() throws java.io.IOException\r
+  {\r
+    if (inBuf > 0)\r
+    {\r
+      --inBuf;\r
+\r
+      if (++bufpos == bufsize)\r
+        bufpos = 0;\r
+\r
+      return buffer[bufpos];\r
+    }\r
+\r
+    if (++bufpos >= maxNextCharInd)\r
+      FillBuff();\r
+\r
+    char c = buffer[bufpos];\r
+\r
+    UpdateLineColumn(c);\r
+    return c;\r
+  }\r
+\r
+  @Deprecated\r
+  /**\r
+   * @deprecated\r
+   * @see #getEndColumn\r
+   */\r
+\r
+  public int getColumn() {\r
+    return bufcolumn[bufpos];\r
+  }\r
+\r
+  @Deprecated\r
+  /**\r
+   * @deprecated\r
+   * @see #getEndLine\r
+   */\r
+\r
+  public int getLine() {\r
+    return bufline[bufpos];\r
+  }\r
+\r
+  /** Get token end column number. */\r
+  public int getEndColumn() {\r
+    return bufcolumn[bufpos];\r
+  }\r
+\r
+  /** Get token end line number. */\r
+  public int getEndLine() {\r
+     return bufline[bufpos];\r
+  }\r
+\r
+  /** Get token beginning column number. */\r
+  public int getBeginColumn() {\r
+    return bufcolumn[tokenBegin];\r
+  }\r
+\r
+  /** Get token beginning line number. */\r
+  public int getBeginLine() {\r
+    return bufline[tokenBegin];\r
+  }\r
+\r
+/** Backup a number of characters. */\r
+  public void backup(int amount) {\r
+\r
+    inBuf += amount;\r
+    if ((bufpos -= amount) < 0)\r
+      bufpos += bufsize;\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.Reader dstream, int startline,\r
+  int startcolumn, int buffersize)\r
+  {\r
+    inputStream = dstream;\r
+    line = startline;\r
+    column = startcolumn - 1;\r
+\r
+    available = bufsize = buffersize;\r
+    buffer = new char[buffersize];\r
+    bufline = new int[buffersize];\r
+    bufcolumn = new int[buffersize];\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.Reader dstream, int startline,\r
+                          int startcolumn)\r
+  {\r
+    this(dstream, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.Reader dstream)\r
+  {\r
+    this(dstream, 1, 1, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.Reader dstream, int startline,\r
+  int startcolumn, int buffersize)\r
+  {\r
+    inputStream = dstream;\r
+    line = startline;\r
+    column = startcolumn - 1;\r
+\r
+    if (buffer == null || buffersize != buffer.length)\r
+    {\r
+      available = bufsize = buffersize;\r
+      buffer = new char[buffersize];\r
+      bufline = new int[buffersize];\r
+      bufcolumn = new int[buffersize];\r
+    }\r
+    prevCharIsLF = prevCharIsCR = false;\r
+    tokenBegin = inBuf = maxNextCharInd = 0;\r
+    bufpos = -1;\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.Reader dstream, int startline,\r
+                     int startcolumn)\r
+  {\r
+    ReInit(dstream, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.Reader dstream)\r
+  {\r
+    ReInit(dstream, 1, 1, 4096);\r
+  }\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,\r
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException\r
+  {\r
+    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, int startline,\r
+  int startcolumn, int buffersize)\r
+  {\r
+    this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,\r
+                          int startcolumn) throws java.io.UnsupportedEncodingException\r
+  {\r
+    this(dstream, encoding, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, int startline,\r
+                          int startcolumn)\r
+  {\r
+    this(dstream, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException\r
+  {\r
+    this(dstream, encoding, 1, 1, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream)\r
+  {\r
+    this(dstream, 1, 1, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,\r
+                          int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException\r
+  {\r
+    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, int startline,\r
+                          int startcolumn, int buffersize)\r
+  {\r
+    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException\r
+  {\r
+    ReInit(dstream, encoding, 1, 1, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream)\r
+  {\r
+    ReInit(dstream, 1, 1, 4096);\r
+  }\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,\r
+                     int startcolumn) throws java.io.UnsupportedEncodingException\r
+  {\r
+    ReInit(dstream, encoding, startline, startcolumn, 4096);\r
+  }\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, int startline,\r
+                     int startcolumn)\r
+  {\r
+    ReInit(dstream, startline, startcolumn, 4096);\r
+  }\r
+  /** Get token literal value. */\r
+  public String GetImage()\r
+  {\r
+    if (bufpos >= tokenBegin)\r
+      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);\r
+    else\r
+      return new String(buffer, tokenBegin, bufsize - tokenBegin) +\r
+                            new String(buffer, 0, bufpos + 1);\r
+  }\r
+\r
+  /** Get the suffix. */\r
+  public char[] GetSuffix(int len)\r
+  {\r
+    char[] ret = new char[len];\r
+\r
+    if ((bufpos + 1) >= len)\r
+      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);\r
+    else\r
+    {\r
+      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,\r
+                                                        len - bufpos - 1);\r
+      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);\r
+    }\r
+\r
+    return ret;\r
+  }\r
+\r
+  /** Reset buffer when finished. */\r
+  public void Done()\r
+  {\r
+    buffer = null;\r
+    bufline = null;\r
+    bufcolumn = null;\r
+  }\r
+\r
+  /**\r
+   * Method to adjust line and column numbers for the start of a token.\r
+   */\r
+  public void adjustBeginLineColumn(int newLine, int newCol)\r
+  {\r
+    int start = tokenBegin;\r
+    int len;\r
+\r
+    if (bufpos >= tokenBegin)\r
+    {\r
+      len = bufpos - tokenBegin + inBuf + 1;\r
+    }\r
+    else\r
+    {\r
+      len = bufsize - tokenBegin + bufpos + 1 + inBuf;\r
+    }\r
+\r
+    int i = 0, j = 0, k = 0;\r
+    int nextColDiff = 0, columnDiff = 0;\r
+\r
+    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])\r
+    {\r
+      bufline[j] = newLine;\r
+      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];\r
+      bufcolumn[j] = newCol + columnDiff;\r
+      columnDiff = nextColDiff;\r
+      i++;\r
+    }\r
+\r
+    if (i < len)\r
+    {\r
+      bufline[j] = newLine++;\r
+      bufcolumn[j] = newCol + columnDiff;\r
+\r
+      while (i++ < len)\r
+      {\r
+        if (bufline[j = start % bufsize] != bufline[++start % bufsize])\r
+          bufline[j] = newLine++;\r
+        else\r
+          bufline[j] = newLine;\r
+      }\r
+    }\r
+\r
+    line = bufline[j];\r
+    column = bufcolumn[j];\r
+  }\r
+\r
+  boolean getTrackLineColumn() { return trackLineColumn; }\r
+  void setTrackLineColumn(boolean tlc) { trackLineColumn = tlc; }\r
+}\r
+/* JavaCC - OriginalChecksum=1814a4e5744c140567d0a9c996674b08 (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/Token.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/Token.java
new file mode 100644 (file)
index 0000000..1b2b2a3
--- /dev/null
@@ -0,0 +1,131 @@
+/* Generated By:JavaCC: Do not edit this line. Token.java Version 6.0 */\r
+/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */\r
+package org.simantics.sysdyn.xmile.expressionParser;\r
+\r
+/**\r
+ * Describes the input token stream.\r
+ */\r
+\r
+public class Token implements java.io.Serializable {\r
+\r
+  /**\r
+   * The version identifier for this Serializable class.\r
+   * Increment only if the <i>serialized</i> form of the\r
+   * class changes.\r
+   */\r
+  private static final long serialVersionUID = 1L;\r
+\r
+  /**\r
+   * An integer that describes the kind of this token.  This numbering\r
+   * system is determined by JavaCCParser, and a table of these numbers is\r
+   * stored in the file ...Constants.java.\r
+   */\r
+  public int kind;\r
+\r
+  /** The line number of the first character of this Token. */\r
+  public int beginLine;\r
+  /** The column number of the first character of this Token. */\r
+  public int beginColumn;\r
+  /** The line number of the last character of this Token. */\r
+  public int endLine;\r
+  /** The column number of the last character of this Token. */\r
+  public int endColumn;\r
+\r
+  /**\r
+   * The string image of the token.\r
+   */\r
+  public String image;\r
+\r
+  /**\r
+   * A reference to the next regular (non-special) token from the input\r
+   * stream.  If this is the last token from the input stream, or if the\r
+   * token manager has not read tokens beyond this one, this field is\r
+   * set to null.  This is true only if this token is also a regular\r
+   * token.  Otherwise, see below for a description of the contents of\r
+   * this field.\r
+   */\r
+  public Token next;\r
+\r
+  /**\r
+   * This field is used to access special tokens that occur prior to this\r
+   * token, but after the immediately preceding regular (non-special) token.\r
+   * If there are no such special tokens, this field is set to null.\r
+   * When there are more than one such special token, this field refers\r
+   * to the last of these special tokens, which in turn refers to the next\r
+   * previous special token through its specialToken field, and so on\r
+   * until the first special token (whose specialToken field is null).\r
+   * The next fields of special tokens refer to other special tokens that\r
+   * immediately follow it (without an intervening regular token).  If there\r
+   * is no such token, this field is null.\r
+   */\r
+  public Token specialToken;\r
+\r
+  /**\r
+   * An optional attribute value of the Token.\r
+   * Tokens which are not used as syntactic sugar will often contain\r
+   * meaningful values that will be used later on by the compiler or\r
+   * interpreter. This attribute value is often different from the image.\r
+   * Any subclass of Token that actually wants to return a non-null value can\r
+   * override this method as appropriate.\r
+   */\r
+  public Object getValue() {\r
+    return null;\r
+  }\r
+\r
+  /**\r
+   * No-argument constructor\r
+   */\r
+  public Token() {}\r
+\r
+  /**\r
+   * Constructs a new token for the specified Image.\r
+   */\r
+  public Token(int kind)\r
+  {\r
+    this(kind, null);\r
+  }\r
+\r
+  /**\r
+   * Constructs a new token for the specified Image and Kind.\r
+   */\r
+  public Token(int kind, String image)\r
+  {\r
+    this.kind = kind;\r
+    this.image = image;\r
+  }\r
+\r
+  /**\r
+   * Returns the image.\r
+   */\r
+  public String toString()\r
+  {\r
+    return image;\r
+  }\r
+\r
+  /**\r
+   * Returns a new Token object, by default. However, if you want, you\r
+   * can create and return subclass objects based on the value of ofKind.\r
+   * Simply add the cases to the switch for all those special cases.\r
+   * For example, if you have a subclass of Token called IDToken that\r
+   * you want to create if ofKind is ID, simply add something like :\r
+   *\r
+   *    case MyParserConstants.ID : return new IDToken(ofKind, image);\r
+   *\r
+   * to the following switch statement. Then you can cast matchedToken\r
+   * variable to the appropriate type and use sit in your lexical actions.\r
+   */\r
+  public static Token newToken(int ofKind, String image)\r
+  {\r
+    switch(ofKind)\r
+    {\r
+      default : return new Token(ofKind, image);\r
+    }\r
+  }\r
+\r
+  public static Token newToken(int ofKind)\r
+  {\r
+    return newToken(ofKind, null);\r
+  }\r
+\r
+}\r
+/* JavaCC - OriginalChecksum=7f962e2ea7cda01cd7fb9ab66c242719 (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/TokenMgrError.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/TokenMgrError.java
new file mode 100644 (file)
index 0000000..c3395e1
--- /dev/null
@@ -0,0 +1,147 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 6.0 */\r
+/* JavaCCOptions: */\r
+package org.simantics.sysdyn.xmile.expressionParser;\r
+\r
+/** Token Manager Error. */\r
+public class TokenMgrError extends Error\r
+{\r
+\r
+  /**\r
+   * The version identifier for this Serializable class.\r
+   * Increment only if the <i>serialized</i> form of the\r
+   * class changes.\r
+   */\r
+  private static final long serialVersionUID = 1L;\r
+\r
+  /*\r
+   * Ordinals for various reasons why an Error of this type can be thrown.\r
+   */\r
+\r
+  /**\r
+   * Lexical error occurred.\r
+   */\r
+  static final int LEXICAL_ERROR = 0;\r
+\r
+  /**\r
+   * An attempt was made to create a second instance of a static token manager.\r
+   */\r
+  static final int STATIC_LEXER_ERROR = 1;\r
+\r
+  /**\r
+   * Tried to change to an invalid lexical state.\r
+   */\r
+  static final int INVALID_LEXICAL_STATE = 2;\r
+\r
+  /**\r
+   * Detected (and bailed out of) an infinite loop in the token manager.\r
+   */\r
+  static final int LOOP_DETECTED = 3;\r
+\r
+  /**\r
+   * Indicates the reason why the exception is thrown. It will have\r
+   * one of the above 4 values.\r
+   */\r
+  int errorCode;\r
+\r
+  /**\r
+   * Replaces unprintable characters by their escaped (or unicode escaped)\r
+   * equivalents in the given string\r
+   */\r
+  protected static final String addEscapes(String str) {\r
+    StringBuffer retval = new StringBuffer();\r
+    char ch;\r
+    for (int i = 0; i < str.length(); i++) {\r
+      switch (str.charAt(i))\r
+      {\r
+        case 0 :\r
+          continue;\r
+        case '\b':\r
+          retval.append("\\b");\r
+          continue;\r
+        case '\t':\r
+          retval.append("\\t");\r
+          continue;\r
+        case '\n':\r
+          retval.append("\\n");\r
+          continue;\r
+        case '\f':\r
+          retval.append("\\f");\r
+          continue;\r
+        case '\r':\r
+          retval.append("\\r");\r
+          continue;\r
+        case '\"':\r
+          retval.append("\\\"");\r
+          continue;\r
+        case '\'':\r
+          retval.append("\\\'");\r
+          continue;\r
+        case '\\':\r
+          retval.append("\\\\");\r
+          continue;\r
+        default:\r
+          if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {\r
+            String s = "0000" + Integer.toString(ch, 16);\r
+            retval.append("\\u" + s.substring(s.length() - 4, s.length()));\r
+          } else {\r
+            retval.append(ch);\r
+          }\r
+          continue;\r
+      }\r
+    }\r
+    return retval.toString();\r
+  }\r
+\r
+  /**\r
+   * Returns a detailed message for the Error when it is thrown by the\r
+   * token manager to indicate a lexical error.\r
+   * Parameters :\r
+   *    EOFSeen     : indicates if EOF caused the lexical error\r
+   *    curLexState : lexical state in which this error occurred\r
+   *    errorLine   : line number when the error occurred\r
+   *    errorColumn : column number when the error occurred\r
+   *    errorAfter  : prefix that was seen before this error occurred\r
+   *    curchar     : the offending character\r
+   * Note: You can customize the lexical error message by modifying this method.\r
+   */\r
+  protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {\r
+    return("Lexical error at line " +\r
+          errorLine + ", column " +\r
+          errorColumn + ".  Encountered: " +\r
+          (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +\r
+          "after : \"" + addEscapes(errorAfter) + "\"");\r
+  }\r
+\r
+  /**\r
+   * You can also modify the body of this method to customize your error messages.\r
+   * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not\r
+   * of end-users concern, so you can return something like :\r
+   *\r
+   *     "Internal Error : Please file a bug report .... "\r
+   *\r
+   * from this method for such cases in the release version of your parser.\r
+   */\r
+  public String getMessage() {\r
+    return super.getMessage();\r
+  }\r
+\r
+  /*\r
+   * Constructors of various flavors follow.\r
+   */\r
+\r
+  /** No arg constructor. */\r
+  public TokenMgrError() {\r
+  }\r
+\r
+  /** Constructor with message and reason. */\r
+  public TokenMgrError(String message, int reason) {\r
+    super(message);\r
+    errorCode = reason;\r
+  }\r
+\r
+  /** Full Constructor. */\r
+  public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {\r
+    this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);\r
+  }\r
+}\r
+/* JavaCC - OriginalChecksum=e375e7d573840d72f04069f13ef966e3 (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParser.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParser.java
new file mode 100644 (file)
index 0000000..f10c824
--- /dev/null
@@ -0,0 +1,590 @@
+/* XmileExpressionParser.java */
+/* Generated By:JavaCC: Do not edit this line. XmileExpressionParser.java */
+package org.simantics.sysdyn.xmile.expressionParser;
+
+import java.io.StringReader;
+import java.lang.StringBuilder;
+import java.util.ArrayList;
+import java.util.Map;
+
+import org.simantics.sysdyn.xmile.XmileUtil;
+
+public class XmileExpressionParser implements XmileExpressionParserConstants {
+  private static final boolean DEBUG = true;
+
+  public static String parse(String expression, Map<String, String> subscripts) {
+    XmileExpressionParser parser = new XmileExpressionParser(new StringReader(expression));
+
+    try {
+      return parser.Expression(subscripts);
+    }
+    catch (ParseException e) {
+      e.printStackTrace();
+      return null;
+    }
+  }
+
+  final public String Expression(Map<String, String> subscripts) throws ParseException {String e;
+    e = BinExpr(subscripts);
+    jj_consume_token(0);
+{if ("" != null) return e;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String BinOp() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case LOR:{
+      jj_consume_token(LOR);
+{if ("" != null) return "OR";}
+      break;
+      }
+    case LAND:{
+      jj_consume_token(LAND);
+{if ("" != null) return "AND";}
+      break;
+      }
+    case EQ:{
+      jj_consume_token(EQ);
+{if ("" != null) return "=";}
+      break;
+      }
+    case LT:{
+      jj_consume_token(LT);
+{if ("" != null) return "<";}
+      break;
+      }
+    case LEQ:{
+      jj_consume_token(LEQ);
+{if ("" != null) return "<=";}
+      break;
+      }
+    case GT:{
+      jj_consume_token(GT);
+{if ("" != null) return ">";}
+      break;
+      }
+    case GEQ:{
+      jj_consume_token(GEQ);
+{if ("" != null) return ">=";}
+      break;
+      }
+    case PLUS:{
+      jj_consume_token(PLUS);
+{if ("" != null) return "+";}
+      break;
+      }
+    case MINUS:{
+      jj_consume_token(MINUS);
+{if ("" != null) return "-";}
+      break;
+      }
+    case MULT:{
+      jj_consume_token(MULT);
+{if ("" != null) return "*";}
+      break;
+      }
+    case DIV:{
+      jj_consume_token(DIV);
+{if ("" != null) return "/";}
+      break;
+      }
+    case MOD:{
+      jj_consume_token(MOD);
+{if ("" != null) return "%";}
+      break;
+      }
+    default:
+      jj_la1[0] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String BinExpr(Map<String, String> subscripts) throws ParseException {String l = null;
+  String o = null;
+  String r = null;
+    l = UnExpr(subscripts);
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case LOR:
+    case LAND:
+    case EQ:
+    case LT:
+    case LEQ:
+    case GT:
+    case GEQ:
+    case PLUS:
+    case MINUS:
+    case MULT:
+    case DIV:
+    case MOD:{
+      o = BinOp();
+      r = BinExpr(subscripts);
+      break;
+      }
+    default:
+      jj_la1[1] = jj_gen;
+      ;
+    }
+{if ("" != null) return o != null ? l + o + r : l;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String UnOp() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case LNOT:{
+      jj_consume_token(LNOT);
+{if ("" != null) return "NOT";}
+      break;
+      }
+    case PLUS:{
+      jj_consume_token(PLUS);
+{if ("" != null) return "+";}
+      break;
+      }
+    case MINUS:{
+      jj_consume_token(MINUS);
+{if ("" != null) return "-";}
+      break;
+      }
+    default:
+      jj_la1[2] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String UnExpr(Map<String, String> subscripts) throws ParseException {String o = null;
+  String e = null;
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case LNOT:
+    case PLUS:
+    case MINUS:{
+      o = UnOp();
+      break;
+      }
+    default:
+      jj_la1[3] = jj_gen;
+      ;
+    }
+    e = Atom(subscripts);
+{if ("" != null) return o != null ? o + e : e;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String Atom(Map<String, String> subscripts) throws ParseException {Token t = null;
+  String s = null;
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case NUMBER:{
+      t = jj_consume_token(NUMBER);
+{if ("" != null) return t.image;}
+      break;
+      }
+    default:
+      jj_la1[4] = jj_gen;
+      if (jj_2_1(2)) {
+        s = Function(subscripts);
+{if ("" != null) return s;}
+      } else {
+        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+        case IDENT:
+        case QIDENT:{
+          s = Variable(subscripts);
+{if ("" != null) return s;}
+          break;
+          }
+        case LPAREN:{
+          jj_consume_token(LPAREN);
+          s = BinExpr(subscripts);
+          jj_consume_token(RPAREN);
+{if ("" != null) return "(" + s + ")";}
+          break;
+          }
+        default:
+          jj_la1[5] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
+        }
+      }
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String Function(Map<String, String> subscripts) throws ParseException {Token t = null;
+  String p = null;
+  ArrayList<String> params = new ArrayList<String>();
+    t = jj_consume_token(IDENT);
+    jj_consume_token(LPAREN);
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case LNOT:
+    case PLUS:
+    case MINUS:
+    case LPAREN:
+    case NUMBER:
+    case IDENT:
+    case QIDENT:{
+      p = BinExpr(subscripts);
+params.add(p);
+      label_1:
+      while (true) {
+        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+        case COMMA:{
+          ;
+          break;
+          }
+        default:
+          jj_la1[6] = jj_gen;
+          break label_1;
+        }
+        jj_consume_token(COMMA);
+        p = BinExpr(subscripts);
+params.add(p);
+      }
+      break;
+      }
+    default:
+      jj_la1[7] = jj_gen;
+      ;
+    }
+    jj_consume_token(RPAREN);
+String name = XmileUtil.getSysdynFunction(t.image);
+    StringBuilder f = new StringBuilder();
+    f.append(XmileUtil.FUNCTION_PREFIX);
+    f.append(name);
+    f.append('(');
+    for (int i = 0; i < params.size(); i++) {
+      if (i > 0) f.append(',');
+      f.append(params.get(i));
+    }
+    if (XmileUtil.needsTime(name)) {
+      f.append(XmileUtil.TIME_PARAM);
+    }
+    if (XmileUtil.needsTimeStep(name)) {
+      f.append(XmileUtil.TIME_STEP_PARAM);
+    }
+    f.append(')');
+    {if ("" != null) return f.toString();}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String Variable(Map<String, String> subscripts) throws ParseException {Token t = null;
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case IDENT:{
+      t = jj_consume_token(IDENT);
+{if ("" != null) return XmileUtil.normalize(t.image);}
+      break;
+      }
+    case QIDENT:{
+      t = jj_consume_token(QIDENT);
+{if ("" != null) return t.image;}
+      break;
+      }
+    default:
+      jj_la1[8] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  private boolean jj_2_1(int xla)
+ {
+    jj_la = xla; jj_lastpos = jj_scanpos = token;
+    try { return !jj_3_1(); }
+    catch(LookaheadSuccess ls) { return true; }
+    finally { jj_save(0, xla); }
+  }
+
+  private boolean jj_3R_2()
+ {
+    if (jj_scan_token(IDENT)) return true;
+    if (jj_scan_token(LPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3_1()
+ {
+    if (jj_3R_2()) return true;
+    return false;
+  }
+
+  /** Generated Token Manager. */
+  public XmileExpressionParserTokenManager token_source;
+  SimpleCharStream jj_input_stream;
+  /** Current token. */
+  public Token token;
+  /** Next token. */
+  public Token jj_nt;
+  private int jj_ntk;
+  private Token jj_scanpos, jj_lastpos;
+  private int jj_la;
+  private int jj_gen;
+  final private int[] jj_la1 = new int[9];
+  static private int[] jj_la1_0;
+  static {
+      jj_la1_init_0();
+   }
+   private static void jj_la1_init_0() {
+      jj_la1_0 = new int[] {0x7fec,0x7fec,0xc10,0xc10,0x80000,0x310000,0x40000,0x390c10,0x300000,};
+   }
+  final private JJCalls[] jj_2_rtns = new JJCalls[1];
+  private boolean jj_rescan = false;
+  private int jj_gc = 0;
+
+  /** Constructor with InputStream. */
+  public XmileExpressionParser(java.io.InputStream stream) {
+     this(stream, null);
+  }
+  /** Constructor with InputStream and supplied encoding */
+  public XmileExpressionParser(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source = new XmileExpressionParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream) {
+     ReInit(stream, null);
+  }
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+  }
+
+  /** Constructor. */
+  public XmileExpressionParser(java.io.Reader stream) {
+    jj_input_stream = new SimpleCharStream(stream, 1, 1);
+    token_source = new XmileExpressionParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.Reader stream) {
+    jj_input_stream.ReInit(stream, 1, 1);
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+  }
+
+  /** Constructor with generated Token Manager. */
+  public XmileExpressionParser(XmileExpressionParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+  }
+
+  /** Reinitialise. */
+  public void ReInit(XmileExpressionParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+  }
+
+  private Token jj_consume_token(int kind) throws ParseException {
+    Token oldToken;
+    if ((oldToken = token).next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    if (token.kind == kind) {
+      jj_gen++;
+      if (++jj_gc > 100) {
+        jj_gc = 0;
+        for (int i = 0; i < jj_2_rtns.length; i++) {
+          JJCalls c = jj_2_rtns[i];
+          while (c != null) {
+            if (c.gen < jj_gen) c.first = null;
+            c = c.next;
+          }
+        }
+      }
+      return token;
+    }
+    token = oldToken;
+    jj_kind = kind;
+    throw generateParseException();
+  }
+
+  @SuppressWarnings("serial")
+  static private final class LookaheadSuccess extends java.lang.Error { }
+  final private LookaheadSuccess jj_ls = new LookaheadSuccess();
+  private boolean jj_scan_token(int kind) {
+    if (jj_scanpos == jj_lastpos) {
+      jj_la--;
+      if (jj_scanpos.next == null) {
+        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
+      } else {
+        jj_lastpos = jj_scanpos = jj_scanpos.next;
+      }
+    } else {
+      jj_scanpos = jj_scanpos.next;
+    }
+    if (jj_rescan) {
+      int i = 0; Token tok = token;
+      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
+      if (tok != null) jj_add_error_token(kind, i);
+    }
+    if (jj_scanpos.kind != kind) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
+    return false;
+  }
+
+
+/** Get the next Token. */
+  final public Token getNextToken() {
+    if (token.next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    jj_gen++;
+    return token;
+  }
+
+/** Get the specific Token. */
+  final public Token getToken(int index) {
+    Token t = token;
+    for (int i = 0; i < index; i++) {
+      if (t.next != null) t = t.next;
+      else t = t.next = token_source.getNextToken();
+    }
+    return t;
+  }
+
+  private int jj_ntk_f() {
+    if ((jj_nt=token.next) == null)
+      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+    else
+      return (jj_ntk = jj_nt.kind);
+  }
+
+  private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+  private int[] jj_expentry;
+  private int jj_kind = -1;
+  private int[] jj_lasttokens = new int[100];
+  private int jj_endpos;
+
+  private void jj_add_error_token(int kind, int pos) {
+    if (pos >= 100) return;
+    if (pos == jj_endpos + 1) {
+      jj_lasttokens[jj_endpos++] = kind;
+    } else if (jj_endpos != 0) {
+      jj_expentry = new int[jj_endpos];
+      for (int i = 0; i < jj_endpos; i++) {
+        jj_expentry[i] = jj_lasttokens[i];
+      }
+      jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
+        int[] oldentry = (int[])(it.next());
+        if (oldentry.length == jj_expentry.length) {
+          for (int i = 0; i < jj_expentry.length; i++) {
+            if (oldentry[i] != jj_expentry[i]) {
+              continue jj_entries_loop;
+            }
+          }
+          jj_expentries.add(jj_expentry);
+          break jj_entries_loop;
+        }
+      }
+      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
+    }
+  }
+
+  /** Generate ParseException. */
+  public ParseException generateParseException() {
+    jj_expentries.clear();
+    boolean[] la1tokens = new boolean[22];
+    if (jj_kind >= 0) {
+      la1tokens[jj_kind] = true;
+      jj_kind = -1;
+    }
+    for (int i = 0; i < 9; i++) {
+      if (jj_la1[i] == jj_gen) {
+        for (int j = 0; j < 32; j++) {
+          if ((jj_la1_0[i] & (1<<j)) != 0) {
+            la1tokens[j] = true;
+          }
+        }
+      }
+    }
+    for (int i = 0; i < 22; i++) {
+      if (la1tokens[i]) {
+        jj_expentry = new int[1];
+        jj_expentry[0] = i;
+        jj_expentries.add(jj_expentry);
+      }
+    }
+    jj_endpos = 0;
+    jj_rescan_token();
+    jj_add_error_token(0, 0);
+    int[][] exptokseq = new int[jj_expentries.size()][];
+    for (int i = 0; i < jj_expentries.size(); i++) {
+      exptokseq[i] = jj_expentries.get(i);
+    }
+    return new ParseException(token, exptokseq, tokenImage);
+  }
+
+  /** Enable tracing. */
+  final public void enable_tracing() {
+  }
+
+  /** Disable tracing. */
+  final public void disable_tracing() {
+  }
+
+  private void jj_rescan_token() {
+    jj_rescan = true;
+    for (int i = 0; i < 1; i++) {
+    try {
+      JJCalls p = jj_2_rtns[i];
+      do {
+        if (p.gen > jj_gen) {
+          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
+          switch (i) {
+            case 0: jj_3_1(); break;
+          }
+        }
+        p = p.next;
+      } while (p != null);
+      } catch(LookaheadSuccess ls) { }
+    }
+    jj_rescan = false;
+  }
+
+  private void jj_save(int index, int xla) {
+    JJCalls p = jj_2_rtns[index];
+    while (p.gen > jj_gen) {
+      if (p.next == null) { p = p.next = new JJCalls(); break; }
+      p = p.next;
+    }
+    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
+  }
+
+  static final class JJCalls {
+    int gen;
+    Token first;
+    int arg;
+    JJCalls next;
+  }
+
+}
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParser.jj b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParser.jj
new file mode 100644 (file)
index 0000000..d4fffe8
--- /dev/null
@@ -0,0 +1,165 @@
+options {\r
+       STATIC = false;\r
+}\r
+\r
+PARSER_BEGIN(XmileExpressionParser)\r
+package org.simantics.sysdyn.xmile.expressionParser;\r
+\r
+import java.io.StringReader;\r
+import java.lang.StringBuilder;\r
+import java.util.ArrayList;\r
+import java.util.Map;\r
+\r
+import org.simantics.sysdyn.xmile.XmileUtil;\r
+\r
+public class XmileExpressionParser {\r
+  private static final boolean DEBUG = true;\r
+\r
+  public static String parse(String expression, Map<String, String> subscripts) {\r
+    XmileExpressionParser parser = new XmileExpressionParser(new StringReader(expression));\r
+    \r
+    try {\r
+      return parser.Expression(subscripts);\r
+    }\r
+    catch (ParseException e) {\r
+      e.printStackTrace();\r
+      return null;\r
+    }\r
+  }\r
+}\r
+PARSER_END(XmileExpressionParser)\r
+\r
+SKIP : { " " }\r
+\r
+TOKEN : \r
+{\r
+  <LOR : "OR">\r
+| <LAND : "AND">\r
+| <LNOT : "NOT">\r
+| <EQ : "=" | "<>">\r
+| <LT : "<">\r
+| <LEQ : "<=">\r
+| <GT : ">">\r
+| <GEQ : ">=">\r
+| <PLUS : "+">\r
+| <MINUS : "-">\r
+| <MULT : "*">\r
+| <DIV : "/">\r
+| <MOD : "MOD">\r
+| <EXP : "^">\r
+| <LPAREN : "("> \r
+| <RPAREN : ")">\r
+| <COMMA : ",">\r
+}\r
+\r
+TOKEN : \r
+{ \r
+  <NUMBER : ((["0"-"9"])+("."(["0"-"9"])*)?|(["0"-"9"])*"."(["0"-"9"])+)(("E"|"e")("+"|"-")?(["0"-"9"])+)?>\r
+| <IDENT : ["A"-"Z","a"-"z"](["A"-"Z","a"-"z","0"-"9","_","$"])*>\r
+| <QIDENT : "\""(~["\\"])+("\\"("\""|"n"|"\\")(~["\\"])+)*"\"">\r
+}\r
+\r
+String Expression(Map<String, String> subscripts) :\r
+{\r
+  String e;\r
+}\r
+{\r
+  e=BinExpr(subscripts) <EOF> { return e; }\r
+}\r
+\r
+String BinOp() :\r
+{}\r
+{\r
+  <LOR>   { return "OR"; }\r
+| <LAND>  { return "AND"; }\r
+| <EQ>    { return "="; }\r
+| <LT>    { return "<"; }\r
+| <LEQ>   { return "<="; }\r
+| <GT>    { return ">"; }\r
+| <GEQ>   { return ">="; }\r
+| <PLUS>  { return "+"; }\r
+| <MINUS> { return "-"; }\r
+| <MULT>  { return "*"; }\r
+| <DIV>   { return "/"; }\r
+| <MOD>   { return "%"; }\r
+}\r
+\r
+String BinExpr(Map<String, String> subscripts) :\r
+{\r
+  String l = null;\r
+  String o = null;\r
+  String r = null;\r
+}\r
+{\r
+  l=UnExpr(subscripts) [ o=BinOp() r=BinExpr(subscripts) ] { return o != null ? l + o + r : l; }\r
+}\r
+\r
+String UnOp() :\r
+{}\r
+{\r
+  <LNOT>  { return "NOT"; }\r
+| <PLUS>  { return "+"; }\r
+| <MINUS> { return "-"; }\r
+}\r
+\r
+String UnExpr(Map<String, String> subscripts) :\r
+{\r
+  String o = null;\r
+  String e = null;\r
+}\r
+{\r
+  [ o=UnOp() ] e=Atom(subscripts) { return o != null ? o + e : e; }\r
+}\r
+\r
+String Atom(Map<String, String> subscripts) : \r
+{\r
+  Token t = null;\r
+  String s = null;\r
+}\r
+{\r
+  t=<NUMBER> { return t.image; }\r
+| LOOKAHEAD(2) s=Function(subscripts) { return s; }\r
+| s=Variable(subscripts) { return s; }\r
+| <LPAREN> s=BinExpr(subscripts) <RPAREN> { return "(" + s + ")"; }\r
+}\r
+\r
+String Function(Map<String, String> subscripts) :\r
+{\r
+  Token t = null;\r
+  String p = null;\r
+  ArrayList<String> params = new ArrayList<String>();\r
+}\r
+{\r
+  t=<IDENT> <LPAREN> \r
+  [ p=BinExpr(subscripts) { params.add(p); } \r
+  ( <COMMA> p=BinExpr(subscripts) { params.add(p); } )* ] \r
+  <RPAREN> \r
+  { \r
+    String name = XmileUtil.getSysdynFunction(t.image);\r
+    StringBuilder f = new StringBuilder();\r
+    f.append(XmileUtil.FUNCTION_PREFIX);\r
+    f.append(name);\r
+    f.append('(');\r
+    for (int i = 0; i < params.size(); i++) {\r
+      if (i > 0) f.append(',');\r
+      f.append(params.get(i));\r
+    }\r
+    if (XmileUtil.needsTime(name)) {\r
+      f.append(XmileUtil.TIME_PARAM);\r
+    }\r
+    if (XmileUtil.needsTimeStep(name)) {\r
+      f.append(XmileUtil.TIME_STEP_PARAM);\r
+    }\r
+    f.append(')');\r
+    return f.toString(); \r
+  }\r
+}\r
+\r
+String Variable(Map<String, String> subscripts) :\r
+{\r
+  Token t = null;\r
+}\r
+{\r
+  t=<IDENT> { return XmileUtil.normalize(t.image); }\r
+| t=<QIDENT> { return t.image; }\r
+}
\ No newline at end of file
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParserConstants.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParserConstants.java
new file mode 100644 (file)
index 0000000..30c26e3
--- /dev/null
@@ -0,0 +1,83 @@
+/* Generated By:JavaCC: Do not edit this line. XmileExpressionParserConstants.java */\r
+package org.simantics.sysdyn.xmile.expressionParser;\r
+\r
+\r
+/**\r
+ * Token literal values and constants.\r
+ * Generated by org.javacc.parser.OtherFilesGen#start()\r
+ */\r
+public interface XmileExpressionParserConstants {\r
+\r
+  /** End of File. */\r
+  int EOF = 0;\r
+  /** RegularExpression Id. */\r
+  int LOR = 2;\r
+  /** RegularExpression Id. */\r
+  int LAND = 3;\r
+  /** RegularExpression Id. */\r
+  int LNOT = 4;\r
+  /** RegularExpression Id. */\r
+  int EQ = 5;\r
+  /** RegularExpression Id. */\r
+  int LT = 6;\r
+  /** RegularExpression Id. */\r
+  int LEQ = 7;\r
+  /** RegularExpression Id. */\r
+  int GT = 8;\r
+  /** RegularExpression Id. */\r
+  int GEQ = 9;\r
+  /** RegularExpression Id. */\r
+  int PLUS = 10;\r
+  /** RegularExpression Id. */\r
+  int MINUS = 11;\r
+  /** RegularExpression Id. */\r
+  int MULT = 12;\r
+  /** RegularExpression Id. */\r
+  int DIV = 13;\r
+  /** RegularExpression Id. */\r
+  int MOD = 14;\r
+  /** RegularExpression Id. */\r
+  int EXP = 15;\r
+  /** RegularExpression Id. */\r
+  int LPAREN = 16;\r
+  /** RegularExpression Id. */\r
+  int RPAREN = 17;\r
+  /** RegularExpression Id. */\r
+  int COMMA = 18;\r
+  /** RegularExpression Id. */\r
+  int NUMBER = 19;\r
+  /** RegularExpression Id. */\r
+  int IDENT = 20;\r
+  /** RegularExpression Id. */\r
+  int QIDENT = 21;\r
+\r
+  /** Lexical state. */\r
+  int DEFAULT = 0;\r
+\r
+  /** Literal token values. */\r
+  String[] tokenImage = {\r
+    "<EOF>",\r
+    "\" \"",\r
+    "\"OR\"",\r
+    "\"AND\"",\r
+    "\"NOT\"",\r
+    "<EQ>",\r
+    "\"<\"",\r
+    "\"<=\"",\r
+    "\">\"",\r
+    "\">=\"",\r
+    "\"+\"",\r
+    "\"-\"",\r
+    "\"*\"",\r
+    "\"/\"",\r
+    "\"MOD\"",\r
+    "\"^\"",\r
+    "\"(\"",\r
+    "\")\"",\r
+    "\",\"",\r
+    "<NUMBER>",\r
+    "<IDENT>",\r
+    "<QIDENT>",\r
+  };\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParserTokenManager.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/expressionParser/XmileExpressionParserTokenManager.java
new file mode 100644 (file)
index 0000000..35ef8a2
--- /dev/null
@@ -0,0 +1,556 @@
+/* XmileExpressionParserTokenManager.java */
+/* Generated By:JavaCC: Do not edit this line. XmileExpressionParserTokenManager.java */
+package org.simantics.sysdyn.xmile.expressionParser;
+import java.io.StringReader;
+import java.lang.StringBuilder;
+import java.util.ArrayList;
+import java.util.Map;
+import org.simantics.sysdyn.xmile.XmileUtil;
+
+/** Token Manager. */
+@SuppressWarnings("unused")public class XmileExpressionParserTokenManager implements XmileExpressionParserConstants {
+
+  /** Debug output. */
+  public  java.io.PrintStream debugStream = System.out;
+  /** Set debug output. */
+  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0){
+   switch (pos)
+   {
+      case 0:
+         if ((active0 & 0xc0L) != 0L)
+            return 1;
+         if ((active0 & 0x401cL) != 0L)
+         {
+            jjmatchedKind = 20;
+            return 9;
+         }
+         return -1;
+      case 1:
+         if ((active0 & 0x4018L) != 0L)
+         {
+            jjmatchedKind = 20;
+            jjmatchedPos = 1;
+            return 9;
+         }
+         if ((active0 & 0x4L) != 0L)
+            return 9;
+         return -1;
+      default :
+         return -1;
+   }
+}
+private final int jjStartNfa_0(int pos, long active0){
+   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private int jjStopAtPos(int pos, int kind)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0(){
+   switch(curChar)
+   {
+      case 40:
+         return jjStopAtPos(0, 16);
+      case 41:
+         return jjStopAtPos(0, 17);
+      case 42:
+         return jjStopAtPos(0, 12);
+      case 43:
+         return jjStopAtPos(0, 10);
+      case 44:
+         return jjStopAtPos(0, 18);
+      case 45:
+         return jjStopAtPos(0, 11);
+      case 47:
+         return jjStopAtPos(0, 13);
+      case 60:
+         jjmatchedKind = 6;
+         return jjMoveStringLiteralDfa1_0(0x80L);
+      case 62:
+         jjmatchedKind = 8;
+         return jjMoveStringLiteralDfa1_0(0x200L);
+      case 65:
+         return jjMoveStringLiteralDfa1_0(0x8L);
+      case 77:
+         return jjMoveStringLiteralDfa1_0(0x4000L);
+      case 78:
+         return jjMoveStringLiteralDfa1_0(0x10L);
+      case 79:
+         return jjMoveStringLiteralDfa1_0(0x4L);
+      case 94:
+         return jjStopAtPos(0, 15);
+      default :
+         return jjMoveNfa_0(0, 0);
+   }
+}
+private int jjMoveStringLiteralDfa1_0(long active0){
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(0, active0);
+      return 1;
+   }
+   switch(curChar)
+   {
+      case 61:
+         if ((active0 & 0x80L) != 0L)
+            return jjStopAtPos(1, 7);
+         else if ((active0 & 0x200L) != 0L)
+            return jjStopAtPos(1, 9);
+         break;
+      case 78:
+         return jjMoveStringLiteralDfa2_0(active0, 0x8L);
+      case 79:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4010L);
+      case 82:
+         if ((active0 & 0x4L) != 0L)
+            return jjStartNfaWithStates_0(1, 2, 9);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_0(0, active0);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0){
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(0, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(1, active0);
+      return 2;
+   }
+   switch(curChar)
+   {
+      case 68:
+         if ((active0 & 0x8L) != 0L)
+            return jjStartNfaWithStates_0(2, 3, 9);
+         else if ((active0 & 0x4000L) != 0L)
+            return jjStartNfaWithStates_0(2, 14, 9);
+         break;
+      case 84:
+         if ((active0 & 0x10L) != 0L)
+            return jjStartNfaWithStates_0(2, 4, 9);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_0(1, active0);
+}
+private int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) { return pos + 1; }
+   return jjMoveNfa_0(state, pos + 1);
+}
+static final long[] jjbitVec0 = {
+   0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+   int startsAt = 0;
+   jjnewStateCnt = 21;
+   int i = 1;
+   jjstateSet[0] = startState;
+   int kind = 0x7fffffff;
+   for (;;)
+   {
+      if (++jjround == 0x7fffffff)
+         ReInitRounds();
+      if (curChar < 64)
+      {
+         long l = 1L << curChar;
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0x3ff000000000000L & l) != 0L)
+                  {
+                     if (kind > 19)
+                        kind = 19;
+                     { jjCheckNAddStates(0, 4); }
+                  }
+                  else if (curChar == 34)
+                     { jjCheckNAdd(11); }
+                  else if (curChar == 46)
+                     { jjCheckNAdd(4); }
+                  else if (curChar == 60)
+                     jjstateSet[jjnewStateCnt++] = 1;
+                  else if (curChar == 61)
+                  {
+                     if (kind > 5)
+                        kind = 5;
+                  }
+                  break;
+               case 1:
+                  if (curChar == 62 && kind > 5)
+                     kind = 5;
+                  break;
+               case 2:
+                  if (curChar == 60)
+                     jjstateSet[jjnewStateCnt++] = 1;
+                  break;
+               case 3:
+                  if (curChar == 46)
+                     { jjCheckNAdd(4); }
+                  break;
+               case 4:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 19)
+                     kind = 19;
+                  { jjCheckNAddTwoStates(4, 5); }
+                  break;
+               case 6:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(7); }
+                  break;
+               case 7:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 19)
+                     kind = 19;
+                  { jjCheckNAdd(7); }
+                  break;
+               case 9:
+                  if ((0x3ff001000000000L & l) == 0L)
+                     break;
+                  if (kind > 20)
+                     kind = 20;
+                  jjstateSet[jjnewStateCnt++] = 9;
+                  break;
+               case 10:
+                  if (curChar == 34)
+                     { jjCheckNAdd(11); }
+                  break;
+               case 11:
+                  { jjCheckNAddStates(5, 7); }
+                  break;
+               case 13:
+                  if (curChar == 34)
+                     { jjCheckNAdd(14); }
+                  break;
+               case 14:
+                  { jjCheckNAddStates(8, 10); }
+                  break;
+               case 15:
+                  if (curChar == 34 && kind > 21)
+                     kind = 21;
+                  break;
+               case 16:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 19)
+                     kind = 19;
+                  { jjCheckNAddStates(0, 4); }
+                  break;
+               case 17:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 19)
+                     kind = 19;
+                  { jjCheckNAddStates(11, 13); }
+                  break;
+               case 18:
+                  if (curChar != 46)
+                     break;
+                  if (kind > 19)
+                     kind = 19;
+                  { jjCheckNAddTwoStates(19, 5); }
+                  break;
+               case 19:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 19)
+                     kind = 19;
+                  { jjCheckNAddTwoStates(19, 5); }
+                  break;
+               case 20:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(20, 3); }
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else if (curChar < 128)
+      {
+         long l = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 20)
+                     kind = 20;
+                  { jjCheckNAdd(9); }
+                  break;
+               case 5:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(14, 15); }
+                  break;
+               case 9:
+                  if ((0x7fffffe87fffffeL & l) == 0L)
+                     break;
+                  if (kind > 20)
+                     kind = 20;
+                  { jjCheckNAdd(9); }
+                  break;
+               case 11:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(5, 7); }
+                  break;
+               case 12:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 13;
+                  break;
+               case 13:
+                  if ((0x400010000000L & l) != 0L)
+                     { jjCheckNAdd(14); }
+                  break;
+               case 14:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(8, 10); }
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else
+      {
+         int i2 = (curChar & 0xff) >> 6;
+         long l2 = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 11:
+                  if ((jjbitVec0[i2] & l2) != 0L)
+                     { jjCheckNAddStates(5, 7); }
+                  break;
+               case 14:
+                  if ((jjbitVec0[i2] & l2) != 0L)
+                     { jjCheckNAddStates(8, 10); }
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 21 - (jjnewStateCnt = startsAt)))
+         return curPos;
+      try { curChar = input_stream.readChar(); }
+      catch(java.io.IOException e) { return curPos; }
+   }
+}
+static final int[] jjnextStates = {
+   17, 18, 20, 3, 5, 11, 12, 15, 12, 14, 15, 17, 18, 5, 6, 7, 
+};
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, "\117\122", "\101\116\104", "\116\117\124", null, "\74", "\74\75", 
+"\76", "\76\75", "\53", "\55", "\52", "\57", "\115\117\104", "\136", "\50", "\51", 
+"\54", null, null, null, };
+protected Token jjFillToken()
+{
+   final Token t;
+   final String curTokenImage;
+   final int beginLine;
+   final int endLine;
+   final int beginColumn;
+   final int endColumn;
+   String im = jjstrLiteralImages[jjmatchedKind];
+   curTokenImage = (im == null) ? input_stream.GetImage() : im;
+   beginLine = input_stream.getBeginLine();
+   beginColumn = input_stream.getBeginColumn();
+   endLine = input_stream.getEndLine();
+   endColumn = input_stream.getEndColumn();
+   t = Token.newToken(jjmatchedKind, curTokenImage);
+
+   t.beginLine = beginLine;
+   t.endLine = endLine;
+   t.beginColumn = beginColumn;
+   t.endColumn = endColumn;
+
+   return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken() 
+{
+  Token matchedToken;
+  int curPos = 0;
+
+  EOFLoop :
+  for (;;)
+  {
+   try
+   {
+      curChar = input_stream.BeginToken();
+   }
+   catch(java.io.IOException e)
+   {
+      jjmatchedKind = 0;
+      jjmatchedPos = -1;
+      matchedToken = jjFillToken();
+      return matchedToken;
+   }
+
+   try { input_stream.backup(0);
+      while (curChar <= 32 && (0x100000000L & (1L << curChar)) != 0L)
+         curChar = input_stream.BeginToken();
+   }
+   catch (java.io.IOException e1) { continue EOFLoop; }
+   jjmatchedKind = 0x7fffffff;
+   jjmatchedPos = 0;
+   curPos = jjMoveStringLiteralDfa0_0();
+   if (jjmatchedKind != 0x7fffffff)
+   {
+      if (jjmatchedPos + 1 < curPos)
+         input_stream.backup(curPos - jjmatchedPos - 1);
+      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+      {
+         matchedToken = jjFillToken();
+         return matchedToken;
+      }
+      else
+      {
+         continue EOFLoop;
+      }
+   }
+   int error_line = input_stream.getEndLine();
+   int error_column = input_stream.getEndColumn();
+   String error_after = null;
+   boolean EOFSeen = false;
+   try { input_stream.readChar(); input_stream.backup(1); }
+   catch (java.io.IOException e1) {
+      EOFSeen = true;
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+      if (curChar == '\n' || curChar == '\r') {
+         error_line++;
+         error_column = 0;
+      }
+      else
+         error_column++;
+   }
+   if (!EOFSeen) {
+      input_stream.backup(1);
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+   }
+   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+  }
+}
+
+private void jjCheckNAdd(int state)
+{
+   if (jjrounds[state] != jjround)
+   {
+      jjstateSet[jjnewStateCnt++] = state;
+      jjrounds[state] = jjround;
+   }
+}
+private void jjAddStates(int start, int end)
+{
+   do {
+      jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+   } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+   jjCheckNAdd(state1);
+   jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+   do {
+      jjCheckNAdd(jjnextStates[start]);
+   } while (start++ != end);
+}
+
+    /** Constructor. */\r
+    public XmileExpressionParserTokenManager(SimpleCharStream stream){\r
+\r
+      if (SimpleCharStream.staticFlag)\r
+            throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");\r
+\r
+    input_stream = stream;\r
+  }\r
+\r
+  /** Constructor. */\r
+  public XmileExpressionParserTokenManager (SimpleCharStream stream, int lexState){\r
+    ReInit(stream);\r
+    SwitchTo(lexState);\r
+  }\r
+\r
+  /** Reinitialise parser. */\r
+  public void ReInit(SimpleCharStream stream)\r
+  {\r
+    jjmatchedPos = jjnewStateCnt = 0;\r
+    curLexState = defaultLexState;\r
+    input_stream = stream;\r
+    ReInitRounds();\r
+  }\r
+\r
+  private void ReInitRounds()\r
+  {\r
+    int i;\r
+    jjround = 0x80000001;\r
+    for (i = 21; i-- > 0;)\r
+      jjrounds[i] = 0x80000000;\r
+  }\r
+\r
+  /** Reinitialise parser. */\r
+  public void ReInit(SimpleCharStream stream, int lexState)\r
+  {\r
+    ReInit(stream);\r
+    SwitchTo(lexState);\r
+  }\r
+\r
+  /** Switch to specified lex state. */\r
+  public void SwitchTo(int lexState)\r
+  {\r
+    if (lexState >= 1 || lexState < 0)\r
+      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);\r
+    else\r
+      curLexState = lexState;\r
+  }\r
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+   "DEFAULT",
+};
+static final long[] jjtoToken = {
+   0x3ffffdL, 
+};
+static final long[] jjtoSkip = {
+   0x2L, 
+};
+    protected SimpleCharStream  input_stream;\r
+\r
+    private final int[] jjrounds = new int[21];\r
+    private final int[] jjstateSet = new int[2 * 21];\r
+\r
+    \r
+    protected char curChar;\r
+}
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/AccessType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/AccessType.java
new file mode 100644 (file)
index 0000000..7834044
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for access_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="access_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="input"/>\r
+ *     &lt;enumeration value="output"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "access_type")\r
+@XmlEnum\r
+public enum AccessType {\r
+\r
+    @XmlEnumValue("input")\r
+    INPUT("input"),\r
+    @XmlEnumValue("output")\r
+    OUTPUT("output");\r
+    private final String value;\r
+\r
+    AccessType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static AccessType fromValue(String v) {\r
+        for (AccessType c: AccessType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/AfterChoices.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/AfterChoices.java
new file mode 100644 (file)
index 0000000..eef8b0b
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for after_choices.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="after_choices">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="one_time"/>\r
+ *     &lt;enumeration value="one_dt"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "after_choices")\r
+@XmlEnum\r
+public enum AfterChoices {\r
+\r
+    @XmlEnumValue("one_time")\r
+    ONE_TIME("one_time"),\r
+    @XmlEnumValue("one_dt")\r
+    ONE_DT("one_dt");\r
+    private final String value;\r
+\r
+    AfterChoices(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static AfterChoices fromValue(String v) {\r
+        for (AfterChoices c: AfterChoices.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Auxiliary.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Auxiliary.java
new file mode 100644 (file)
index 0000000..a25db50
--- /dev/null
@@ -0,0 +1,368 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded">\r
+ *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="units" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="doc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}dimensions" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}scale" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}range" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format" minOccurs="0"/>\r
+ *         &lt;element name="element" maxOccurs="unbounded">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice maxOccurs="unbounded">\r
+ *                   &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attribute name="subscript" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="access" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}access_type" />\r
+ *       &lt;attribute name="autoexport" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="subscript" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="flow_concept" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "eqnOrMathmlOrUnits"\r
+})\r
+@XmlRootElement(name = "aux")\r
+public class Auxiliary {\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "doc", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "format", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Format.class, required = false),\r
+        @XmlElementRef(name = "eqn", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "mathml", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "scale", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Scale.class, required = false),\r
+        @XmlElementRef(name = "range", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Range.class, required = false),\r
+        @XmlElementRef(name = "event_poster", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = EventPoster.class, required = false),\r
+        @XmlElementRef(name = "units", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "element", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gf", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Gf.class, required = false),\r
+        @XmlElementRef(name = "dimensions", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Dimensions.class, required = false)\r
+    })\r
+    protected List<Object> eqnOrMathmlOrUnits;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "access")\r
+    protected AccessType access;\r
+    @XmlAttribute(name = "autoexport")\r
+    protected Boolean autoexport;\r
+    @XmlAttribute(name = "subscript")\r
+    protected String subscript;\r
+    @XmlAttribute(name = "flow_concept")\r
+    protected Boolean flowConcept;\r
+\r
+    /**\r
+     * Gets the value of the eqnOrMathmlOrUnits property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the eqnOrMathmlOrUnits property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEqnOrMathmlOrUnits().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Format }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Scale }\r
+     * {@link Range }\r
+     * {@link EventPoster }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link Auxiliary.Element }{@code >}\r
+     * {@link Gf }\r
+     * {@link Dimensions }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getEqnOrMathmlOrUnits() {\r
+        if (eqnOrMathmlOrUnits == null) {\r
+            eqnOrMathmlOrUnits = new ArrayList<Object>();\r
+        }\r
+        return this.eqnOrMathmlOrUnits;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the access property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link AccessType }\r
+     *     \r
+     */\r
+    public AccessType getAccess() {\r
+        return access;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the access property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link AccessType }\r
+     *     \r
+     */\r
+    public void setAccess(AccessType value) {\r
+        this.access = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the autoexport property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isAutoexport() {\r
+        if (autoexport == null) {\r
+            return false;\r
+        } else {\r
+            return autoexport;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the autoexport property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setAutoexport(Boolean value) {\r
+        this.autoexport = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the subscript property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getSubscript() {\r
+        return subscript;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the subscript property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setSubscript(String value) {\r
+        this.subscript = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the flowConcept property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isFlowConcept() {\r
+        if (flowConcept == null) {\r
+            return false;\r
+        } else {\r
+            return flowConcept;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the flowConcept property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setFlowConcept(Boolean value) {\r
+        this.flowConcept = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice maxOccurs="unbounded">\r
+     *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+     *       &lt;/choice>\r
+     *       &lt;attribute name="subscript" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "eqnOrMathmlOrGf"\r
+    })\r
+    public static class Element {\r
+\r
+        @XmlElementRefs({\r
+            @XmlElementRef(name = "eqn", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "mathml", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "event_poster", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = EventPoster.class, required = false),\r
+            @XmlElementRef(name = "gf", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Gf.class, required = false)\r
+        })\r
+        protected List<Object> eqnOrMathmlOrGf;\r
+        @XmlAttribute(name = "subscript", required = true)\r
+        protected String subscript;\r
+\r
+        /**\r
+         * Gets the value of the eqnOrMathmlOrGf property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the eqnOrMathmlOrGf property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getEqnOrMathmlOrGf().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * {@link EventPoster }\r
+         * {@link Gf }\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * \r
+         * \r
+         */\r
+        public List<Object> getEqnOrMathmlOrGf() {\r
+            if (eqnOrMathmlOrGf == null) {\r
+                eqnOrMathmlOrGf = new ArrayList<Object>();\r
+            }\r
+            return this.eqnOrMathmlOrGf;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the subscript property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getSubscript() {\r
+            return subscript;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the subscript property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setSubscript(String value) {\r
+            this.subscript = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Behavior.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Behavior.java
new file mode 100644 (file)
index 0000000..4c6a847
--- /dev/null
@@ -0,0 +1,254 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+ *         &lt;element name="stock" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+ *                 &lt;/all>\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="flow">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+ *                 &lt;/all>\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/all>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "behavior")\r
+public class Behavior {\r
+\r
+    @XmlElement(name = "non_negative")\r
+    protected BooleanOrEmptyType nonNegative;\r
+    protected Behavior.Stock stock;\r
+    @XmlElement(required = true)\r
+    protected Behavior.Flow flow;\r
+\r
+    /**\r
+     * Gets the value of the nonNegative property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BooleanOrEmptyType }\r
+     *     \r
+     */\r
+    public BooleanOrEmptyType getNonNegative() {\r
+        return nonNegative;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the nonNegative property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BooleanOrEmptyType }\r
+     *     \r
+     */\r
+    public void setNonNegative(BooleanOrEmptyType value) {\r
+        this.nonNegative = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the stock property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Behavior.Stock }\r
+     *     \r
+     */\r
+    public Behavior.Stock getStock() {\r
+        return stock;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the stock property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Behavior.Stock }\r
+     *     \r
+     */\r
+    public void setStock(Behavior.Stock value) {\r
+        this.stock = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the flow property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Behavior.Flow }\r
+     *     \r
+     */\r
+    public Behavior.Flow getFlow() {\r
+        return flow;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the flow property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Behavior.Flow }\r
+     *     \r
+     */\r
+    public void setFlow(Behavior.Flow value) {\r
+        this.flow = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+     *       &lt;/all>\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Flow {\r
+\r
+        @XmlElement(name = "non_negative")\r
+        protected BooleanOrEmptyType nonNegative;\r
+\r
+        /**\r
+         * Gets the value of the nonNegative property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BooleanOrEmptyType }\r
+         *     \r
+         */\r
+        public BooleanOrEmptyType getNonNegative() {\r
+            return nonNegative;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the nonNegative property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BooleanOrEmptyType }\r
+         *     \r
+         */\r
+        public void setNonNegative(BooleanOrEmptyType value) {\r
+            this.nonNegative = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+     *       &lt;/all>\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Stock {\r
+\r
+        @XmlElement(name = "non_negative")\r
+        protected BooleanOrEmptyType nonNegative;\r
+\r
+        /**\r
+         * Gets the value of the nonNegative property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BooleanOrEmptyType }\r
+         *     \r
+         */\r
+        public BooleanOrEmptyType getNonNegative() {\r
+            return nonNegative;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the nonNegative property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BooleanOrEmptyType }\r
+         *     \r
+         */\r
+        public void setNonNegative(BooleanOrEmptyType value) {\r
+            this.nonNegative = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/BooleanOrEmptyType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/BooleanOrEmptyType.java
new file mode 100644 (file)
index 0000000..e20e024
--- /dev/null
@@ -0,0 +1,37 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for boolean_or_empty_type complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="boolean_or_empty_type">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "boolean_or_empty_type")\r
+public class BooleanOrEmptyType {\r
+\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Contact.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Contact.java
new file mode 100644 (file)
index 0000000..f3eb315
--- /dev/null
@@ -0,0 +1,94 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element name="address" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element name="phone" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element name="fax" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element name="website" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/choice>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "addressOrPhoneOrFax"\r
+})\r
+@XmlRootElement(name = "contact")\r
+public class Contact {\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "phone", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "fax", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "address", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "email", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "website", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false)\r
+    })\r
+    protected List<JAXBElement<String>> addressOrPhoneOrFax;\r
+\r
+    /**\r
+     * Gets the value of the addressOrPhoneOrFax property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the addressOrPhoneOrFax property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getAddressOrPhoneOrFax().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * \r
+     * \r
+     */\r
+    public List<JAXBElement<String>> getAddressOrPhoneOrFax() {\r
+        if (addressOrPhoneOrFax == null) {\r
+            addressOrPhoneOrFax = new ArrayList<JAXBElement<String>>();\r
+        }\r
+        return this.addressOrPhoneOrFax;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Conveyor.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Conveyor.java
new file mode 100644 (file)
index 0000000..5cd429f
--- /dev/null
@@ -0,0 +1,300 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="len" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="capacity" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="in_limit" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="sample" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="arrest" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *       &lt;/all>\r
+ *       &lt;attribute name="discrete" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="batch_integrity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="one_at_a_time" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="exponential_leak" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "conveyor")\r
+public class Conveyor {\r
+\r
+    protected String len;\r
+    protected String capacity;\r
+    @XmlElement(name = "in_limit")\r
+    protected String inLimit;\r
+    protected String sample;\r
+    protected String arrest;\r
+    @XmlAttribute(name = "discrete")\r
+    protected Boolean discrete;\r
+    @XmlAttribute(name = "batch_integrity")\r
+    protected Boolean batchIntegrity;\r
+    @XmlAttribute(name = "one_at_a_time")\r
+    protected Boolean oneAtATime;\r
+    @XmlAttribute(name = "exponential_leak")\r
+    protected Boolean exponentialLeak;\r
+\r
+    /**\r
+     * Gets the value of the len property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLen() {\r
+        return len;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the len property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLen(String value) {\r
+        this.len = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the capacity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getCapacity() {\r
+        return capacity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the capacity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setCapacity(String value) {\r
+        this.capacity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the inLimit property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getInLimit() {\r
+        return inLimit;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the inLimit property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setInLimit(String value) {\r
+        this.inLimit = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sample property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getSample() {\r
+        return sample;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sample property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setSample(String value) {\r
+        this.sample = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the arrest property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getArrest() {\r
+        return arrest;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the arrest property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setArrest(String value) {\r
+        this.arrest = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the discrete property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isDiscrete() {\r
+        if (discrete == null) {\r
+            return false;\r
+        } else {\r
+            return discrete;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the discrete property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setDiscrete(Boolean value) {\r
+        this.discrete = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the batchIntegrity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isBatchIntegrity() {\r
+        if (batchIntegrity == null) {\r
+            return false;\r
+        } else {\r
+            return batchIntegrity;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the batchIntegrity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setBatchIntegrity(Boolean value) {\r
+        this.batchIntegrity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the oneAtATime property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isOneAtATime() {\r
+        if (oneAtATime == null) {\r
+            return true;\r
+        } else {\r
+            return oneAtATime;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the oneAtATime property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setOneAtATime(Boolean value) {\r
+        this.oneAtATime = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the exponentialLeak property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isExponentialLeak() {\r
+        if (exponentialLeak == null) {\r
+            return false;\r
+        } else {\r
+            return exponentialLeak;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the exponentialLeak property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setExponentialLeak(Boolean value) {\r
+        this.exponentialLeak = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Data.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Data.java
new file mode 100644 (file)
index 0000000..623397d
--- /dev/null
@@ -0,0 +1,746 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice>\r
+ *         &lt;element name="export" maxOccurs="unbounded" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice>\r
+ *                   &lt;element name="all" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>\r
+ *                   &lt;element name="table" minOccurs="0">\r
+ *                     &lt;complexType>\r
+ *                       &lt;complexContent>\r
+ *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                           &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                           &lt;attribute name="use_settings" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                         &lt;/restriction>\r
+ *                       &lt;/complexContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}data_attributes"/>\r
+ *                 &lt;attribute name="interval" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_interval" default="0" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="import" maxOccurs="unbounded" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}data_attributes"/>\r
+ *                 &lt;attribute name="interval" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_interval" default="0" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "export",\r
+    "_import"\r
+})\r
+@XmlRootElement(name = "data")\r
+public class Data {\r
+\r
+    protected List<Data.Export> export;\r
+    @XmlElement(name = "import")\r
+    protected List<Data.Import> _import;\r
+\r
+    /**\r
+     * Gets the value of the export property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the export property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getExport().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Data.Export }\r
+     * \r
+     * \r
+     */\r
+    public List<Data.Export> getExport() {\r
+        if (export == null) {\r
+            export = new ArrayList<Data.Export>();\r
+        }\r
+        return this.export;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the import property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the import property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getImport().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Data.Import }\r
+     * \r
+     * \r
+     */\r
+    public List<Data.Import> getImport() {\r
+        if (_import == null) {\r
+            _import = new ArrayList<Data.Import>();\r
+        }\r
+        return this._import;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice>\r
+     *         &lt;element name="all" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>\r
+     *         &lt;element name="table" minOccurs="0">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                 &lt;attribute name="use_settings" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *       &lt;/choice>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}data_attributes"/>\r
+     *       &lt;attribute name="interval" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_interval" default="0" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "all",\r
+        "table"\r
+    })\r
+    public static class Export {\r
+\r
+        protected Object all;\r
+        protected Data.Export.Table table;\r
+        @XmlAttribute(name = "interval")\r
+        protected String interval;\r
+        @XmlAttribute(name = "type")\r
+        protected DataType type;\r
+        @XmlAttribute(name = "enable")\r
+        protected Boolean enable;\r
+        @XmlAttribute(name = "frequency")\r
+        protected FrequencyType frequency;\r
+        @XmlAttribute(name = "orientation")\r
+        protected OrientationType orientation;\r
+        @XmlAttribute(name = "resource", required = true)\r
+        protected String resource;\r
+        @XmlAttribute(name = "worksheet")\r
+        protected String worksheet;\r
+\r
+        /**\r
+         * Gets the value of the all property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Object }\r
+         *     \r
+         */\r
+        public Object getAll() {\r
+            return all;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the all property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Object }\r
+         *     \r
+         */\r
+        public void setAll(Object value) {\r
+            this.all = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the table property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Data.Export.Table }\r
+         *     \r
+         */\r
+        public Data.Export.Table getTable() {\r
+            return table;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the table property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Data.Export.Table }\r
+         *     \r
+         */\r
+        public void setTable(Data.Export.Table value) {\r
+            this.table = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the interval property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getInterval() {\r
+            if (interval == null) {\r
+                return "0";\r
+            } else {\r
+                return interval;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the interval property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setInterval(String value) {\r
+            this.interval = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the type property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link DataType }\r
+         *     \r
+         */\r
+        public DataType getType() {\r
+            if (type == null) {\r
+                return DataType.CSV;\r
+            } else {\r
+                return type;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the type property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link DataType }\r
+         *     \r
+         */\r
+        public void setType(DataType value) {\r
+            this.type = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the enable property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isEnable() {\r
+            if (enable == null) {\r
+                return true;\r
+            } else {\r
+                return enable;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the enable property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setEnable(Boolean value) {\r
+            this.enable = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the frequency property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link FrequencyType }\r
+         *     \r
+         */\r
+        public FrequencyType getFrequency() {\r
+            if (frequency == null) {\r
+                return FrequencyType.AUTOMATIC;\r
+            } else {\r
+                return frequency;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the frequency property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link FrequencyType }\r
+         *     \r
+         */\r
+        public void setFrequency(FrequencyType value) {\r
+            this.frequency = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the orientation property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link OrientationType }\r
+         *     \r
+         */\r
+        public OrientationType getOrientation() {\r
+            if (orientation == null) {\r
+                return OrientationType.VERTICAL;\r
+            } else {\r
+                return orientation;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the orientation property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link OrientationType }\r
+         *     \r
+         */\r
+        public void setOrientation(OrientationType value) {\r
+            this.orientation = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the resource property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getResource() {\r
+            return resource;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the resource property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setResource(String value) {\r
+            this.resource = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the worksheet property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getWorksheet() {\r
+            return worksheet;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the worksheet property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setWorksheet(String value) {\r
+            this.worksheet = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *       &lt;attribute name="use_settings" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "")\r
+        public static class Table {\r
+\r
+            @XmlAttribute(name = "uid", required = true)\r
+            protected String uid;\r
+            @XmlAttribute(name = "use_settings")\r
+            protected Boolean useSettings;\r
+\r
+            /**\r
+             * Gets the value of the uid property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getUid() {\r
+                return uid;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the uid property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setUid(String value) {\r
+                this.uid = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the useSettings property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link Boolean }\r
+             *     \r
+             */\r
+            public boolean isUseSettings() {\r
+                if (useSettings == null) {\r
+                    return false;\r
+                } else {\r
+                    return useSettings;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the useSettings property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link Boolean }\r
+             *     \r
+             */\r
+            public void setUseSettings(Boolean value) {\r
+                this.useSettings = value;\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}data_attributes"/>\r
+     *       &lt;attribute name="interval" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_interval" default="0" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Import {\r
+\r
+        @XmlAttribute(name = "interval")\r
+        protected String interval;\r
+        @XmlAttribute(name = "type")\r
+        protected DataType type;\r
+        @XmlAttribute(name = "enable")\r
+        protected Boolean enable;\r
+        @XmlAttribute(name = "frequency")\r
+        protected FrequencyType frequency;\r
+        @XmlAttribute(name = "orientation")\r
+        protected OrientationType orientation;\r
+        @XmlAttribute(name = "resource", required = true)\r
+        protected String resource;\r
+        @XmlAttribute(name = "worksheet")\r
+        protected String worksheet;\r
+\r
+        /**\r
+         * Gets the value of the interval property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getInterval() {\r
+            if (interval == null) {\r
+                return "0";\r
+            } else {\r
+                return interval;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the interval property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setInterval(String value) {\r
+            this.interval = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the type property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link DataType }\r
+         *     \r
+         */\r
+        public DataType getType() {\r
+            if (type == null) {\r
+                return DataType.CSV;\r
+            } else {\r
+                return type;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the type property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link DataType }\r
+         *     \r
+         */\r
+        public void setType(DataType value) {\r
+            this.type = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the enable property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isEnable() {\r
+            if (enable == null) {\r
+                return true;\r
+            } else {\r
+                return enable;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the enable property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setEnable(Boolean value) {\r
+            this.enable = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the frequency property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link FrequencyType }\r
+         *     \r
+         */\r
+        public FrequencyType getFrequency() {\r
+            if (frequency == null) {\r
+                return FrequencyType.AUTOMATIC;\r
+            } else {\r
+                return frequency;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the frequency property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link FrequencyType }\r
+         *     \r
+         */\r
+        public void setFrequency(FrequencyType value) {\r
+            this.frequency = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the orientation property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link OrientationType }\r
+         *     \r
+         */\r
+        public OrientationType getOrientation() {\r
+            if (orientation == null) {\r
+                return OrientationType.VERTICAL;\r
+            } else {\r
+                return orientation;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the orientation property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link OrientationType }\r
+         *     \r
+         */\r
+        public void setOrientation(OrientationType value) {\r
+            this.orientation = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the resource property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getResource() {\r
+            return resource;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the resource property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setResource(String value) {\r
+            this.resource = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the worksheet property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getWorksheet() {\r
+            return worksheet;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the worksheet property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setWorksheet(String value) {\r
+            this.worksheet = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/DataType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/DataType.java
new file mode 100644 (file)
index 0000000..9b5f43f
--- /dev/null
@@ -0,0 +1,47 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for data_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="data_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="CSV"/>\r
+ *     &lt;enumeration value="XLS"/>\r
+ *     &lt;enumeration value="XML"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "data_type")\r
+@XmlEnum\r
+public enum DataType {\r
+\r
+    CSV,\r
+    XLS,\r
+    XML;\r
+\r
+    public String value() {\r
+        return name();\r
+    }\r
+\r
+    public static DataType fromValue(String v) {\r
+        return valueOf(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Dimensions.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Dimensions.java
new file mode 100644 (file)
index 0000000..81a82f4
--- /dev/null
@@ -0,0 +1,136 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="dim" maxOccurs="unbounded" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "dim"\r
+})\r
+@XmlRootElement(name = "dimensions")\r
+public class Dimensions {\r
+\r
+    protected List<Dimensions.Dim> dim;\r
+\r
+    /**\r
+     * Gets the value of the dim property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the dim property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getDim().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Dimensions.Dim }\r
+     * \r
+     * \r
+     */\r
+    public List<Dimensions.Dim> getDim() {\r
+        if (dim == null) {\r
+            dim = new ArrayList<Dimensions.Dim>();\r
+        }\r
+        return this.dim;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Dim {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/EmptyType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/EmptyType.java
new file mode 100644 (file)
index 0000000..904ad61
--- /dev/null
@@ -0,0 +1,37 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for empty_type complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="empty_type">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "empty_type")\r
+public class EmptyType {\r
+\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Entity.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Entity.java
new file mode 100644 (file)
index 0000000..45d357b
--- /dev/null
@@ -0,0 +1,116 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}double"/>\r
+ *       &lt;/all>\r
+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "entity")\r
+public class Entity {\r
+\r
+    protected double value;\r
+    @XmlAttribute(name = "name", required = true)\r
+    protected String name;\r
+    @XmlAttribute(name = "index")\r
+    protected String index;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     */\r
+    public double getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     */\r
+    public void setValue(double value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the index property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getIndex() {\r
+        return index;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the index property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setIndex(String value) {\r
+        this.index = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/EventPoster.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/EventPoster.java
new file mode 100644 (file)
index 0000000..b4174a3
--- /dev/null
@@ -0,0 +1,489 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence maxOccurs="unbounded">\r
+ *         &lt;element name="threshold">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;sequence>\r
+ *                   &lt;element name="event" maxOccurs="unbounded" minOccurs="0">\r
+ *                     &lt;complexType>\r
+ *                       &lt;complexContent>\r
+ *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                           &lt;choice maxOccurs="unbounded">\r
+ *                             &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}text_box"/>\r
+ *                             &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image"/>\r
+ *                             &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}video"/>\r
+ *                             &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sound"/>\r
+ *                             &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}link"/>\r
+ *                           &lt;/choice>\r
+ *                           &lt;attribute name="sim_action" default="pause">\r
+ *                             &lt;simpleType>\r
+ *                               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                                 &lt;enumeration value="pause"/>\r
+ *                                 &lt;enumeration value="stop"/>\r
+ *                                 &lt;enumeration value="message"/>\r
+ *                               &lt;/restriction>\r
+ *                             &lt;/simpleType>\r
+ *                           &lt;/attribute>\r
+ *                         &lt;/restriction>\r
+ *                       &lt;/complexContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                 &lt;/sequence>\r
+ *                 &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="direction" default="increasing">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="increasing"/>\r
+ *                       &lt;enumeration value="decreasing"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *                 &lt;attribute name="repeat" default="each">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="each"/>\r
+ *                       &lt;enumeration value="once"/>\r
+ *                       &lt;enumeration value="once_ever"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *                 &lt;attribute name="interval" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="min" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="max" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "threshold"\r
+})\r
+@XmlRootElement(name = "event_poster")\r
+public class EventPoster {\r
+\r
+    @XmlElement(required = true)\r
+    protected List<EventPoster.Threshold> threshold;\r
+    @XmlAttribute(name = "min", required = true)\r
+    protected double min;\r
+    @XmlAttribute(name = "max", required = true)\r
+    protected double max;\r
+\r
+    /**\r
+     * Gets the value of the threshold property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the threshold property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getThreshold().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link EventPoster.Threshold }\r
+     * \r
+     * \r
+     */\r
+    public List<EventPoster.Threshold> getThreshold() {\r
+        if (threshold == null) {\r
+            threshold = new ArrayList<EventPoster.Threshold>();\r
+        }\r
+        return this.threshold;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the min property.\r
+     * \r
+     */\r
+    public double getMin() {\r
+        return min;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the min property.\r
+     * \r
+     */\r
+    public void setMin(double value) {\r
+        this.min = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the max property.\r
+     * \r
+     */\r
+    public double getMax() {\r
+        return max;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the max property.\r
+     * \r
+     */\r
+    public void setMax(double value) {\r
+        this.max = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;sequence>\r
+     *         &lt;element name="event" maxOccurs="unbounded" minOccurs="0">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;choice maxOccurs="unbounded">\r
+     *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}text_box"/>\r
+     *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image"/>\r
+     *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}video"/>\r
+     *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sound"/>\r
+     *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}link"/>\r
+     *                 &lt;/choice>\r
+     *                 &lt;attribute name="sim_action" default="pause">\r
+     *                   &lt;simpleType>\r
+     *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *                       &lt;enumeration value="pause"/>\r
+     *                       &lt;enumeration value="stop"/>\r
+     *                       &lt;enumeration value="message"/>\r
+     *                     &lt;/restriction>\r
+     *                   &lt;/simpleType>\r
+     *                 &lt;/attribute>\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *       &lt;/sequence>\r
+     *       &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="direction" default="increasing">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="increasing"/>\r
+     *             &lt;enumeration value="decreasing"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *       &lt;attribute name="repeat" default="each">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="each"/>\r
+     *             &lt;enumeration value="once"/>\r
+     *             &lt;enumeration value="once_ever"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *       &lt;attribute name="interval" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "event"\r
+    })\r
+    public static class Threshold {\r
+\r
+        protected List<EventPoster.Threshold.Event> event;\r
+        @XmlAttribute(name = "value", required = true)\r
+        protected double value;\r
+        @XmlAttribute(name = "direction")\r
+        protected String direction;\r
+        @XmlAttribute(name = "repeat")\r
+        protected String repeat;\r
+        @XmlAttribute(name = "interval")\r
+        protected BigInteger interval;\r
+\r
+        /**\r
+         * Gets the value of the event property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the event property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getEvent().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link EventPoster.Threshold.Event }\r
+         * \r
+         * \r
+         */\r
+        public List<EventPoster.Threshold.Event> getEvent() {\r
+            if (event == null) {\r
+                event = new ArrayList<EventPoster.Threshold.Event>();\r
+            }\r
+            return this.event;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the value property.\r
+         * \r
+         */\r
+        public double getValue() {\r
+            return value;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the value property.\r
+         * \r
+         */\r
+        public void setValue(double value) {\r
+            this.value = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the direction property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getDirection() {\r
+            if (direction == null) {\r
+                return "increasing";\r
+            } else {\r
+                return direction;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the direction property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setDirection(String value) {\r
+            this.direction = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the repeat property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getRepeat() {\r
+            if (repeat == null) {\r
+                return "each";\r
+            } else {\r
+                return repeat;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the repeat property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setRepeat(String value) {\r
+            this.repeat = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the interval property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getInterval() {\r
+            return interval;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the interval property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setInterval(BigInteger value) {\r
+            this.interval = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;choice maxOccurs="unbounded">\r
+         *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}text_box"/>\r
+         *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image"/>\r
+         *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}video"/>\r
+         *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sound"/>\r
+         *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}link"/>\r
+         *       &lt;/choice>\r
+         *       &lt;attribute name="sim_action" default="pause">\r
+         *         &lt;simpleType>\r
+         *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+         *             &lt;enumeration value="pause"/>\r
+         *             &lt;enumeration value="stop"/>\r
+         *             &lt;enumeration value="message"/>\r
+         *           &lt;/restriction>\r
+         *         &lt;/simpleType>\r
+         *       &lt;/attribute>\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "", propOrder = {\r
+            "textBoxOrImageOrVideo"\r
+        })\r
+        public static class Event {\r
+\r
+            @XmlElements({\r
+                @XmlElement(name = "text_box", type = TextBox.class),\r
+                @XmlElement(name = "image", type = Image.class),\r
+                @XmlElement(name = "video", type = Video.class),\r
+                @XmlElement(name = "sound", type = Sound.class),\r
+                @XmlElement(name = "link", type = Link.class)\r
+            })\r
+            protected List<Object> textBoxOrImageOrVideo;\r
+            @XmlAttribute(name = "sim_action")\r
+            protected String simAction;\r
+\r
+            /**\r
+             * Gets the value of the textBoxOrImageOrVideo property.\r
+             * \r
+             * <p>\r
+             * This accessor method returns a reference to the live list,\r
+             * not a snapshot. Therefore any modification you make to the\r
+             * returned list will be present inside the JAXB object.\r
+             * This is why there is not a <CODE>set</CODE> method for the textBoxOrImageOrVideo property.\r
+             * \r
+             * <p>\r
+             * For example, to add a new item, do as follows:\r
+             * <pre>\r
+             *    getTextBoxOrImageOrVideo().add(newItem);\r
+             * </pre>\r
+             * \r
+             * \r
+             * <p>\r
+             * Objects of the following type(s) are allowed in the list\r
+             * {@link TextBox }\r
+             * {@link Image }\r
+             * {@link Video }\r
+             * {@link Sound }\r
+             * {@link Link }\r
+             * \r
+             * \r
+             */\r
+            public List<Object> getTextBoxOrImageOrVideo() {\r
+                if (textBoxOrImageOrVideo == null) {\r
+                    textBoxOrImageOrVideo = new ArrayList<Object>();\r
+                }\r
+                return this.textBoxOrImageOrVideo;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the simAction property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getSimAction() {\r
+                if (simAction == null) {\r
+                    return "pause";\r
+                } else {\r
+                    return simAction;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the simAction property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setSimAction(String value) {\r
+                this.simAction = value;\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Flow.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Flow.java
new file mode 100644 (file)
index 0000000..462f3b0
--- /dev/null
@@ -0,0 +1,434 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded">\r
+ *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="units" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="doc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}dimensions" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}scale" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}range" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format" minOccurs="0"/>\r
+ *         &lt;element name="multiplier" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+ *         &lt;element name="overflow" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+ *         &lt;element name="leak" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+ *         &lt;element name="leak_integers" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+ *         &lt;element name="element" maxOccurs="unbounded">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice maxOccurs="unbounded">\r
+ *                   &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+ *                   &lt;element name="multiplier" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+ *                   &lt;element name="overflow" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+ *                   &lt;element name="leak" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+ *                   &lt;element name="leak_integers" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attribute name="subscript" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="access" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}access_type" />\r
+ *       &lt;attribute name="autoexport" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="subscript" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="leak_start" type="{http://www.w3.org/2001/XMLSchema}double" default="0" />\r
+ *       &lt;attribute name="leak_end" type="{http://www.w3.org/2001/XMLSchema}double" default="1" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "eqnOrMathmlOrUnits"\r
+})\r
+@XmlRootElement(name = "flow")\r
+public class Flow {\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "non_negative", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "multiplier", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "element", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "leak_integers", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gf", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Gf.class, required = false),\r
+        @XmlElementRef(name = "units", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "doc", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "overflow", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "format", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Format.class, required = false),\r
+        @XmlElementRef(name = "scale", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Scale.class, required = false),\r
+        @XmlElementRef(name = "eqn", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "range", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Range.class, required = false),\r
+        @XmlElementRef(name = "leak", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "event_poster", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = EventPoster.class, required = false),\r
+        @XmlElementRef(name = "mathml", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "dimensions", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Dimensions.class, required = false)\r
+    })\r
+    protected List<Object> eqnOrMathmlOrUnits;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "access")\r
+    protected AccessType access;\r
+    @XmlAttribute(name = "autoexport")\r
+    protected Boolean autoexport;\r
+    @XmlAttribute(name = "subscript")\r
+    protected String subscript;\r
+    @XmlAttribute(name = "leak_start")\r
+    protected Double leakStart;\r
+    @XmlAttribute(name = "leak_end")\r
+    protected Double leakEnd;\r
+\r
+    /**\r
+     * Gets the value of the eqnOrMathmlOrUnits property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the eqnOrMathmlOrUnits property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEqnOrMathmlOrUnits().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link Flow.Element }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+     * {@link Gf }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+     * {@link Format }\r
+     * {@link Scale }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Range }\r
+     * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+     * {@link EventPoster }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Dimensions }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getEqnOrMathmlOrUnits() {\r
+        if (eqnOrMathmlOrUnits == null) {\r
+            eqnOrMathmlOrUnits = new ArrayList<Object>();\r
+        }\r
+        return this.eqnOrMathmlOrUnits;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the access property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link AccessType }\r
+     *     \r
+     */\r
+    public AccessType getAccess() {\r
+        return access;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the access property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link AccessType }\r
+     *     \r
+     */\r
+    public void setAccess(AccessType value) {\r
+        this.access = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the autoexport property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isAutoexport() {\r
+        if (autoexport == null) {\r
+            return false;\r
+        } else {\r
+            return autoexport;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the autoexport property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setAutoexport(Boolean value) {\r
+        this.autoexport = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the subscript property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getSubscript() {\r
+        return subscript;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the subscript property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setSubscript(String value) {\r
+        this.subscript = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the leakStart property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public double getLeakStart() {\r
+        if (leakStart == null) {\r
+            return  0.0D;\r
+        } else {\r
+            return leakStart;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the leakStart property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLeakStart(Double value) {\r
+        this.leakStart = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the leakEnd property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public double getLeakEnd() {\r
+        if (leakEnd == null) {\r
+            return  1.0D;\r
+        } else {\r
+            return leakEnd;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the leakEnd property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLeakEnd(Double value) {\r
+        this.leakEnd = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice maxOccurs="unbounded">\r
+     *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+     *         &lt;element name="multiplier" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+     *         &lt;element name="overflow" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+     *         &lt;element name="leak" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+     *         &lt;element name="leak_integers" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type"/>\r
+     *       &lt;/choice>\r
+     *       &lt;attribute name="subscript" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "eqnOrMathmlOrGf"\r
+    })\r
+    public static class Element {\r
+\r
+        @XmlElementRefs({\r
+            @XmlElementRef(name = "leak", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "mathml", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "overflow", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "leak_integers", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "event_poster", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = EventPoster.class, required = false),\r
+            @XmlElementRef(name = "multiplier", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "eqn", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "gf", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Gf.class, required = false),\r
+            @XmlElementRef(name = "non_negative", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false)\r
+        })\r
+        protected List<Object> eqnOrMathmlOrGf;\r
+        @XmlAttribute(name = "subscript", required = true)\r
+        protected String subscript;\r
+\r
+        /**\r
+         * Gets the value of the eqnOrMathmlOrGf property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the eqnOrMathmlOrGf property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getEqnOrMathmlOrGf().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+         * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+         * {@link EventPoster }\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * {@link Gf }\r
+         * {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}\r
+         * \r
+         * \r
+         */\r
+        public List<Object> getEqnOrMathmlOrGf() {\r
+            if (eqnOrMathmlOrGf == null) {\r
+                eqnOrMathmlOrGf = new ArrayList<Object>();\r
+            }\r
+            return this.eqnOrMathmlOrGf;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the subscript property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getSubscript() {\r
+            return subscript;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the subscript property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setSubscript(String value) {\r
+            this.subscript = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Format.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Format.java
new file mode 100644 (file)
index 0000000..e726859
--- /dev/null
@@ -0,0 +1,158 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format_attributes"/>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "")\r
+@XmlRootElement(name = "format")\r
+public class Format {\r
+\r
+    @XmlAttribute(name = "precision")\r
+    protected Double precision;\r
+    @XmlAttribute(name = "scale_by")\r
+    protected BigInteger scaleBy;\r
+    @XmlAttribute(name = "delimit_000s")\r
+    protected Boolean delimit000S;\r
+    @XmlAttribute(name = "display_as")\r
+    protected String displayAs;\r
+\r
+    /**\r
+     * Gets the value of the precision property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getPrecision() {\r
+        return precision;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the precision property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setPrecision(Double value) {\r
+        this.precision = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the scaleBy property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getScaleBy() {\r
+        if (scaleBy == null) {\r
+            return new BigInteger("1");\r
+        } else {\r
+            return scaleBy;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the scaleBy property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setScaleBy(BigInteger value) {\r
+        this.scaleBy = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the delimit000S property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isDelimit000S() {\r
+        if (delimit000S == null) {\r
+            return false;\r
+        } else {\r
+            return delimit000S;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the delimit000S property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setDelimit000S(Boolean value) {\r
+        this.delimit000S = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the displayAs property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getDisplayAs() {\r
+        if (displayAs == null) {\r
+            return "number";\r
+        } else {\r
+            return displayAs;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the displayAs property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setDisplayAs(String value) {\r
+        this.displayAs = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/FrequencyType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/FrequencyType.java
new file mode 100644 (file)
index 0000000..d257808
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for frequency_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="frequency_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="automatic"/>\r
+ *     &lt;enumeration value="on_demand"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "frequency_type")\r
+@XmlEnum\r
+public enum FrequencyType {\r
+\r
+    @XmlEnumValue("automatic")\r
+    AUTOMATIC("automatic"),\r
+    @XmlEnumValue("on_demand")\r
+    ON_DEMAND("on_demand");\r
+    private final String value;\r
+\r
+    FrequencyType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static FrequencyType fromValue(String v) {\r
+        for (FrequencyType c: FrequencyType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Gf.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Gf.java
new file mode 100644 (file)
index 0000000..0c556b9
--- /dev/null
@@ -0,0 +1,216 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="xscale" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}min_max_type" minOccurs="0"/>\r
+ *         &lt;element name="yscale" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}min_max_type" minOccurs="0"/>\r
+ *         &lt;element name="xpts" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}points_type" minOccurs="0"/>\r
+ *         &lt;element name="ypts" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}points_type"/>\r
+ *       &lt;/all>\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="type" default="continuous">\r
+ *         &lt;simpleType>\r
+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *             &lt;enumeration value="continuous"/>\r
+ *             &lt;enumeration value="extrapolate"/>\r
+ *             &lt;enumeration value="discrete"/>\r
+ *           &lt;/restriction>\r
+ *         &lt;/simpleType>\r
+ *       &lt;/attribute>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "gf")\r
+public class Gf {\r
+\r
+    protected MinMaxType xscale;\r
+    protected MinMaxType yscale;\r
+    protected PointsType xpts;\r
+    @XmlElement(required = true)\r
+    protected PointsType ypts;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "type")\r
+    protected String type;\r
+\r
+    /**\r
+     * Gets the value of the xscale property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link MinMaxType }\r
+     *     \r
+     */\r
+    public MinMaxType getXscale() {\r
+        return xscale;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the xscale property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link MinMaxType }\r
+     *     \r
+     */\r
+    public void setXscale(MinMaxType value) {\r
+        this.xscale = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the yscale property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link MinMaxType }\r
+     *     \r
+     */\r
+    public MinMaxType getYscale() {\r
+        return yscale;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the yscale property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link MinMaxType }\r
+     *     \r
+     */\r
+    public void setYscale(MinMaxType value) {\r
+        this.yscale = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the xpts property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link PointsType }\r
+     *     \r
+     */\r
+    public PointsType getXpts() {\r
+        return xpts;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the xpts property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link PointsType }\r
+     *     \r
+     */\r
+    public void setXpts(PointsType value) {\r
+        this.xpts = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the ypts property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link PointsType }\r
+     *     \r
+     */\r
+    public PointsType getYpts() {\r
+        return ypts;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the ypts property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link PointsType }\r
+     *     \r
+     */\r
+    public void setYpts(PointsType value) {\r
+        this.ypts = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the type property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getType() {\r
+        if (type == null) {\r
+            return "continuous";\r
+        } else {\r
+            return type;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the type property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setType(String value) {\r
+        this.type = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphType.java
new file mode 100644 (file)
index 0000000..8b8203f
--- /dev/null
@@ -0,0 +1,61 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for graph_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="graph_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="time_series"/>\r
+ *     &lt;enumeration value="scatter"/>\r
+ *     &lt;enumeration value="bar"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "graph_type")\r
+@XmlEnum\r
+public enum GraphType {\r
+\r
+    @XmlEnumValue("time_series")\r
+    TIME_SERIES("time_series"),\r
+    @XmlEnumValue("scatter")\r
+    SCATTER("scatter"),\r
+    @XmlEnumValue("bar")\r
+    BAR("bar");\r
+    private final String value;\r
+\r
+    GraphType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static GraphType fromValue(String v) {\r
+        for (GraphType c: GraphType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphicalInput.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphicalInput.java
new file mode 100644 (file)
index 0000000..ab984cf
--- /dev/null
@@ -0,0 +1,842 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="entity">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+ *       &lt;/all>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "graphical_input")\r
+public class GraphicalInput {\r
+\r
+    @XmlElement(required = true)\r
+    protected GraphicalInput.Entity entity;\r
+    protected Gf gf;\r
+    @XmlAttribute(name = "show_name")\r
+    protected Boolean showName;\r
+    @XmlAttribute(name = "uid")\r
+    protected Integer uid;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the entity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link GraphicalInput.Entity }\r
+     *     \r
+     */\r
+    public GraphicalInput.Entity getEntity() {\r
+        return entity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the entity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link GraphicalInput.Entity }\r
+     *     \r
+     */\r
+    public void setEntity(GraphicalInput.Entity value) {\r
+        this.entity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the gf property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Gf }\r
+     *     \r
+     */\r
+    public Gf getGf() {\r
+        return gf;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the gf property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Gf }\r
+     *     \r
+     */\r
+    public void setGf(Gf value) {\r
+        this.gf = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showName property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowName() {\r
+        if (showName == null) {\r
+            return false;\r
+        } else {\r
+            return showName;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showName property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowName(Boolean value) {\r
+        this.showName = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uid property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getUid() {\r
+        return uid;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uid property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setUid(Integer value) {\r
+        this.uid = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Entity {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+        @XmlAttribute(name = "index")\r
+        protected String index;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the index property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getIndex() {\r
+            return index;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the index property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setIndex(String value) {\r
+            this.index = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphicsFrame.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/GraphicsFrame.java
new file mode 100644 (file)
index 0000000..06a08bd
--- /dev/null
@@ -0,0 +1,715 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}video"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image"/>\r
+ *       &lt;/choice>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "video",\r
+    "image"\r
+})\r
+@XmlRootElement(name = "graphics_frame")\r
+public class GraphicsFrame {\r
+\r
+    protected Video video;\r
+    protected Image image;\r
+    @XmlAttribute(name = "uid", required = true)\r
+    protected int uid;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the video property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Video }\r
+     *     \r
+     */\r
+    public Video getVideo() {\r
+        return video;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the video property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Video }\r
+     *     \r
+     */\r
+    public void setVideo(Video value) {\r
+        this.video = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the image property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Image }\r
+     *     \r
+     */\r
+    public Image getImage() {\r
+        return image;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the image property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Image }\r
+     *     \r
+     */\r
+    public void setImage(Image value) {\r
+        this.image = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uid property.\r
+     * \r
+     */\r
+    public int getUid() {\r
+        return uid;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uid property.\r
+     * \r
+     */\r
+    public void setUid(int value) {\r
+        this.uid = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Group.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Group.java
new file mode 100644 (file)
index 0000000..3cd188d
--- /dev/null
@@ -0,0 +1,171 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element name="doc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="entity" maxOccurs="unbounded" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "docOrEntity"\r
+})\r
+@XmlRootElement(name = "group")\r
+public class Group {\r
+\r
+    @XmlElements({\r
+        @XmlElement(name = "doc", type = String.class),\r
+        @XmlElement(name = "entity", type = Group.Entity.class)\r
+    })\r
+    protected List<Object> docOrEntity;\r
+    @XmlAttribute(name = "name", required = true)\r
+    protected String name;\r
+\r
+    /**\r
+     * Gets the value of the docOrEntity property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the docOrEntity property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getDocOrEntity().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link String }\r
+     * {@link Group.Entity }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getDocOrEntity() {\r
+        if (docOrEntity == null) {\r
+            docOrEntity = new ArrayList<Object>();\r
+        }\r
+        return this.docOrEntity;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Entity {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Header.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Header.java
new file mode 100644 (file)
index 0000000..6f88044
--- /dev/null
@@ -0,0 +1,469 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlSchemaType;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.datatype.XMLGregorianCalendar;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="vendor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="caption" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="author" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="affiliation" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="client" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="copyright" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="created" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>\r
+ *         &lt;element name="modified" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>\r
+ *         &lt;element name="uuid" minOccurs="0">\r
+ *           &lt;simpleType>\r
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *               &lt;pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>\r
+ *             &lt;/restriction>\r
+ *           &lt;/simpleType>\r
+ *         &lt;/element>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}options" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}product" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}contact" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}includes" minOccurs="0"/>\r
+ *       &lt;/all>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "header")\r
+public class Header {\r
+\r
+    protected String vendor;\r
+    protected String name;\r
+    protected String version;\r
+    protected String caption;\r
+    protected String author;\r
+    protected String affiliation;\r
+    protected String client;\r
+    protected String copyright;\r
+    @XmlSchemaType(name = "date")\r
+    protected XMLGregorianCalendar created;\r
+    @XmlSchemaType(name = "date")\r
+    protected XMLGregorianCalendar modified;\r
+    protected String uuid;\r
+    protected Image image;\r
+    protected Options options;\r
+    protected Product product;\r
+    protected Contact contact;\r
+    protected Includes includes;\r
+\r
+    /**\r
+     * Gets the value of the vendor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getVendor() {\r
+        return vendor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the vendor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setVendor(String value) {\r
+        this.vendor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the version property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getVersion() {\r
+        return version;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the version property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setVersion(String value) {\r
+        this.version = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the caption property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getCaption() {\r
+        return caption;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the caption property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setCaption(String value) {\r
+        this.caption = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the author property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getAuthor() {\r
+        return author;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the author property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setAuthor(String value) {\r
+        this.author = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the affiliation property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getAffiliation() {\r
+        return affiliation;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the affiliation property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setAffiliation(String value) {\r
+        this.affiliation = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the client property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getClient() {\r
+        return client;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the client property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setClient(String value) {\r
+        this.client = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the copyright property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getCopyright() {\r
+        return copyright;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the copyright property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setCopyright(String value) {\r
+        this.copyright = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the created property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link XMLGregorianCalendar }\r
+     *     \r
+     */\r
+    public XMLGregorianCalendar getCreated() {\r
+        return created;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the created property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link XMLGregorianCalendar }\r
+     *     \r
+     */\r
+    public void setCreated(XMLGregorianCalendar value) {\r
+        this.created = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the modified property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link XMLGregorianCalendar }\r
+     *     \r
+     */\r
+    public XMLGregorianCalendar getModified() {\r
+        return modified;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the modified property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link XMLGregorianCalendar }\r
+     *     \r
+     */\r
+    public void setModified(XMLGregorianCalendar value) {\r
+        this.modified = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uuid property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getUuid() {\r
+        return uuid;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uuid property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setUuid(String value) {\r
+        this.uuid = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the image property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Image }\r
+     *     \r
+     */\r
+    public Image getImage() {\r
+        return image;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the image property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Image }\r
+     *     \r
+     */\r
+    public void setImage(Image value) {\r
+        this.image = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the options property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options }\r
+     *     \r
+     */\r
+    public Options getOptions() {\r
+        return options;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the options property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options }\r
+     *     \r
+     */\r
+    public void setOptions(Options value) {\r
+        this.options = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the product property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Product }\r
+     *     \r
+     */\r
+    public Product getProduct() {\r
+        return product;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the product property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Product }\r
+     *     \r
+     */\r
+    public void setProduct(Product value) {\r
+        this.product = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the contact property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Contact }\r
+     *     \r
+     */\r
+    public Contact getContact() {\r
+        return contact;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the contact property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Contact }\r
+     *     \r
+     */\r
+    public void setContact(Contact value) {\r
+        this.contact = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the includes property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Includes }\r
+     *     \r
+     */\r
+    public Includes getIncludes() {\r
+        return includes;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the includes property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Includes }\r
+     *     \r
+     */\r
+    public void setIncludes(Includes value) {\r
+        this.includes = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Image.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Image.java
new file mode 100644 (file)
index 0000000..e3a677c
--- /dev/null
@@ -0,0 +1,181 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">\r
+ *       &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="size_to_parent" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="width" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *       &lt;attribute name="height" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "value"\r
+})\r
+@XmlRootElement(name = "image")\r
+public class Image {\r
+\r
+    @XmlValue\r
+    protected String value;\r
+    @XmlAttribute(name = "resource")\r
+    protected String resource;\r
+    @XmlAttribute(name = "size_to_parent")\r
+    protected Boolean sizeToParent;\r
+    @XmlAttribute(name = "width")\r
+    protected Integer width;\r
+    @XmlAttribute(name = "height")\r
+    protected Integer height;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setValue(String value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the resource property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getResource() {\r
+        return resource;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the resource property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setResource(String value) {\r
+        this.resource = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sizeToParent property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isSizeToParent() {\r
+        if (sizeToParent == null) {\r
+            return false;\r
+        } else {\r
+            return sizeToParent;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sizeToParent property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setSizeToParent(Boolean value) {\r
+        this.sizeToParent = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setWidth(Integer value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setHeight(Integer value) {\r
+        this.height = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Includes.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Includes.java
new file mode 100644 (file)
index 0000000..75cd8de
--- /dev/null
@@ -0,0 +1,138 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="include" maxOccurs="unbounded">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="resource" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "include"\r
+})\r
+@XmlRootElement(name = "includes")\r
+public class Includes {\r
+\r
+    @XmlElement(required = true)\r
+    protected List<Includes.Include> include;\r
+\r
+    /**\r
+     * Gets the value of the include property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the include property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getInclude().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Includes.Include }\r
+     * \r
+     * \r
+     */\r
+    public List<Includes.Include> getInclude() {\r
+        if (include == null) {\r
+            include = new ArrayList<Includes.Include>();\r
+        }\r
+        return this.include;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="resource" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Include {\r
+\r
+        @XmlAttribute(name = "resource", required = true)\r
+        protected String resource;\r
+\r
+        /**\r
+         * Gets the value of the resource property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getResource() {\r
+            return resource;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the resource property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setResource(String value) {\r
+            this.resource = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Knob.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Knob.java
new file mode 100644 (file)
index 0000000..3014894
--- /dev/null
@@ -0,0 +1,959 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="entity">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/all>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="show_number" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="show_min_max" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="precision" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "knob")\r
+public class Knob {\r
+\r
+    @XmlElement(required = true)\r
+    protected Knob.Entity entity;\r
+    @XmlAttribute(name = "show_name")\r
+    protected Boolean showName;\r
+    @XmlAttribute(name = "show_number")\r
+    protected Boolean showNumber;\r
+    @XmlAttribute(name = "show_min_max")\r
+    protected Boolean showMinMax;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "min")\r
+    protected Double min;\r
+    @XmlAttribute(name = "max")\r
+    protected Double max;\r
+    @XmlAttribute(name = "precision")\r
+    protected Double precision;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+\r
+    /**\r
+     * Gets the value of the entity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Knob.Entity }\r
+     *     \r
+     */\r
+    public Knob.Entity getEntity() {\r
+        return entity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the entity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Knob.Entity }\r
+     *     \r
+     */\r
+    public void setEntity(Knob.Entity value) {\r
+        this.entity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showName property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowName() {\r
+        if (showName == null) {\r
+            return true;\r
+        } else {\r
+            return showName;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showName property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowName(Boolean value) {\r
+        this.showName = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showNumber property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowNumber() {\r
+        if (showNumber == null) {\r
+            return true;\r
+        } else {\r
+            return showNumber;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showNumber property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowNumber(Boolean value) {\r
+        this.showNumber = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showMinMax property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowMinMax() {\r
+        if (showMinMax == null) {\r
+            return true;\r
+        } else {\r
+            return showMinMax;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showMinMax property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowMinMax(Boolean value) {\r
+        this.showMinMax = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the min property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMin() {\r
+        return min;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the min property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMin(Double value) {\r
+        this.min = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the max property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMax() {\r
+        return max;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the max property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMax(Double value) {\r
+        this.max = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the precision property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getPrecision() {\r
+        return precision;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the precision property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setPrecision(Double value) {\r
+        this.precision = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Entity {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+        @XmlAttribute(name = "index")\r
+        protected String index;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the index property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getIndex() {\r
+            return index;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the index property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setIndex(String value) {\r
+            this.index = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Link.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Link.java
new file mode 100644 (file)
index 0000000..0ec84ac
--- /dev/null
@@ -0,0 +1,278 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">\r
+ *       &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" default="0" />\r
+ *       &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" default="0" />\r
+ *       &lt;attribute name="zoom" type="{http://www.w3.org/2001/XMLSchema}double" default="100" />\r
+ *       &lt;attribute name="effect" default="none">\r
+ *         &lt;simpleType>\r
+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *             &lt;enumeration value="none"/>\r
+ *             &lt;enumeration value="dissolve"/>\r
+ *             &lt;enumeration value="checkerboard"/>\r
+ *             &lt;enumeration value="bars"/>\r
+ *             &lt;enumeration value="wipe_left"/>\r
+ *             &lt;enumeration value="wipe_right"/>\r
+ *             &lt;enumeration value="wipe_top"/>\r
+ *             &lt;enumeration value="wipe_bottom"/>\r
+ *             &lt;enumeration value="wipe_clockwise"/>\r
+ *             &lt;enumeration value="wipe_counterclockwise"/>\r
+ *             &lt;enumeration value="iris_in"/>\r
+ *             &lt;enumeration value="iris_out"/>\r
+ *             &lt;enumeration value="doors_close"/>\r
+ *             &lt;enumeration value="doors_open"/>\r
+ *             &lt;enumeration value="venetian_left"/>\r
+ *             &lt;enumeration value="venetian_right"/>\r
+ *             &lt;enumeration value="venetian_top"/>\r
+ *             &lt;enumeration value="venetian_bottom"/>\r
+ *             &lt;enumeration value="push_bottom"/>\r
+ *             &lt;enumeration value="push_top"/>\r
+ *             &lt;enumeration value="push_left"/>\r
+ *             &lt;enumeration value="push_right"/>\r
+ *           &lt;/restriction>\r
+ *         &lt;/simpleType>\r
+ *       &lt;/attribute>\r
+ *       &lt;attribute name="to_black" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="target" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "value"\r
+})\r
+@XmlRootElement(name = "link")\r
+public class Link {\r
+\r
+    @XmlValue\r
+    protected String value;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "zoom")\r
+    protected Double zoom;\r
+    @XmlAttribute(name = "effect")\r
+    protected String effect;\r
+    @XmlAttribute(name = "to_black")\r
+    protected Boolean toBlack;\r
+    @XmlAttribute(name = "target", required = true)\r
+    protected String target;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setValue(String value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public double getX() {\r
+        if (x == null) {\r
+            return  0.0D;\r
+        } else {\r
+            return x;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public double getY() {\r
+        if (y == null) {\r
+            return  0.0D;\r
+        } else {\r
+            return y;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zoom property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public double getZoom() {\r
+        if (zoom == null) {\r
+            return  100.0D;\r
+        } else {\r
+            return zoom;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zoom property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setZoom(Double value) {\r
+        this.zoom = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the effect property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getEffect() {\r
+        if (effect == null) {\r
+            return "none";\r
+        } else {\r
+            return effect;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the effect property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setEffect(String value) {\r
+        this.effect = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the toBlack property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isToBlack() {\r
+        if (toBlack == null) {\r
+            return false;\r
+        } else {\r
+            return toBlack;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the toBlack property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setToBlack(Boolean value) {\r
+        this.toBlack = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the target property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTarget() {\r
+        return target;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the target property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTarget(String value) {\r
+        this.target = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ListInput.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ListInput.java
new file mode 100644 (file)
index 0000000..aa9284b
--- /dev/null
@@ -0,0 +1,995 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice>\r
+ *         &lt;element name="numeric_input" maxOccurs="unbounded">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element name="entity" minOccurs="0">\r
+ *                     &lt;complexType>\r
+ *                       &lt;complexContent>\r
+ *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                           &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                           &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                         &lt;/restriction>\r
+ *                       &lt;/complexContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                 &lt;/all>\r
+ *                 &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="precision" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="column_width" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "numericInput"\r
+})\r
+@XmlRootElement(name = "list_input")\r
+public class ListInput {\r
+\r
+    @XmlElement(name = "numeric_input")\r
+    protected List<ListInput.NumericInput> numericInput;\r
+    @XmlAttribute(name = "name", required = true)\r
+    protected String name;\r
+    @XmlAttribute(name = "column_width", required = true)\r
+    protected int columnWidth;\r
+    @XmlAttribute(name = "index")\r
+    protected Integer index;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the numericInput property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the numericInput property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getNumericInput().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link ListInput.NumericInput }\r
+     * \r
+     * \r
+     */\r
+    public List<ListInput.NumericInput> getNumericInput() {\r
+        if (numericInput == null) {\r
+            numericInput = new ArrayList<ListInput.NumericInput>();\r
+        }\r
+        return this.numericInput;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the columnWidth property.\r
+     * \r
+     */\r
+    public int getColumnWidth() {\r
+        return columnWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the columnWidth property.\r
+     * \r
+     */\r
+    public void setColumnWidth(int value) {\r
+        this.columnWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the index property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getIndex() {\r
+        return index;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the index property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setIndex(Integer value) {\r
+        this.index = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element name="entity" minOccurs="0">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *       &lt;/all>\r
+     *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="precision" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class NumericInput {\r
+\r
+        protected ListInput.NumericInput.Entity entity;\r
+        @XmlAttribute(name = "min")\r
+        protected Double min;\r
+        @XmlAttribute(name = "max")\r
+        protected Double max;\r
+        @XmlAttribute(name = "precision")\r
+        protected Double precision;\r
+\r
+        /**\r
+         * Gets the value of the entity property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link ListInput.NumericInput.Entity }\r
+         *     \r
+         */\r
+        public ListInput.NumericInput.Entity getEntity() {\r
+            return entity;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the entity property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link ListInput.NumericInput.Entity }\r
+         *     \r
+         */\r
+        public void setEntity(ListInput.NumericInput.Entity value) {\r
+            this.entity = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the min property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getMin() {\r
+            return min;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the min property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setMin(Double value) {\r
+            this.min = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the max property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getMax() {\r
+            return max;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the max property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setMax(Double value) {\r
+            this.max = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the precision property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getPrecision() {\r
+            return precision;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the precision property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setPrecision(Double value) {\r
+            this.precision = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "")\r
+        public static class Entity {\r
+\r
+            @XmlAttribute(name = "name", required = true)\r
+            protected String name;\r
+            @XmlAttribute(name = "index")\r
+            protected String index;\r
+\r
+            /**\r
+             * Gets the value of the name property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getName() {\r
+                return name;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the name property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setName(String value) {\r
+                this.name = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the index property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getIndex() {\r
+                return index;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the index property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setIndex(String value) {\r
+                this.index = value;\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Macro.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Macro.java
new file mode 100644 (file)
index 0000000..a2e80cc
--- /dev/null
@@ -0,0 +1,225 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded">\r
+ *         &lt;element name="parm" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string"/>\r
+ *         &lt;element name="format" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="doc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sim_specs" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}variables" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}views" minOccurs="0"/>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="namespace" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="filter">\r
+ *         &lt;simpleType>\r
+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *             &lt;enumeration value="stock"/>\r
+ *             &lt;enumeration value="flow"/>\r
+ *           &lt;/restriction>\r
+ *         &lt;/simpleType>\r
+ *       &lt;/attribute>\r
+ *       &lt;attribute name="applyto">\r
+ *         &lt;simpleType>\r
+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *             &lt;enumeration value="inflows"/>\r
+ *             &lt;enumeration value="outflows"/>\r
+ *             &lt;enumeration value="upstream"/>\r
+ *             &lt;enumeration value="downstream"/>\r
+ *           &lt;/restriction>\r
+ *         &lt;/simpleType>\r
+ *       &lt;/attribute>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "parmOrEqnOrFormat"\r
+})\r
+@XmlRootElement(name = "macro")\r
+public class Macro {\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "eqn", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "doc", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "variables", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Variables.class, required = false),\r
+        @XmlElementRef(name = "format", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "sim_specs", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = SimSpecs.class, required = false),\r
+        @XmlElementRef(name = "parm", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "views", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Views.class, required = false)\r
+    })\r
+    protected List<Object> parmOrEqnOrFormat;\r
+    @XmlAttribute(name = "name", required = true)\r
+    protected String name;\r
+    @XmlAttribute(name = "namespace")\r
+    protected String namespace;\r
+    @XmlAttribute(name = "filter")\r
+    protected String filter;\r
+    @XmlAttribute(name = "applyto")\r
+    protected String applyto;\r
+\r
+    /**\r
+     * Gets the value of the parmOrEqnOrFormat property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the parmOrEqnOrFormat property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getParmOrEqnOrFormat().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Variables }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link SimSpecs }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Views }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getParmOrEqnOrFormat() {\r
+        if (parmOrEqnOrFormat == null) {\r
+            parmOrEqnOrFormat = new ArrayList<Object>();\r
+        }\r
+        return this.parmOrEqnOrFormat;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the namespace property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getNamespace() {\r
+        return namespace;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the namespace property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setNamespace(String value) {\r
+        this.namespace = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the filter property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFilter() {\r
+        return filter;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the filter property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFilter(String value) {\r
+        this.filter = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the applyto property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getApplyto() {\r
+        return applyto;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the applyto property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setApplyto(String value) {\r
+        this.applyto = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/MenuActionChoices.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/MenuActionChoices.java
new file mode 100644 (file)
index 0000000..cb58553
--- /dev/null
@@ -0,0 +1,142 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for menu_action_choices.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="menu_action_choices">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="open"/>\r
+ *     &lt;enumeration value="close"/>\r
+ *     &lt;enumeration value="save"/>\r
+ *     &lt;enumeration value="save_as"/>\r
+ *     &lt;enumeration value="save_as_image"/>\r
+ *     &lt;enumeration value="revert"/>\r
+ *     &lt;enumeration value="print_setup"/>\r
+ *     &lt;enumeration value="print"/>\r
+ *     &lt;enumeration value="print_screen"/>\r
+ *     &lt;enumeration value="run"/>\r
+ *     &lt;enumeration value="pause"/>\r
+ *     &lt;enumeration value="resume"/>\r
+ *     &lt;enumeration value="stop"/>\r
+ *     &lt;enumeration value="run_restore"/>\r
+ *     &lt;enumeration value="restore_all"/>\r
+ *     &lt;enumeration value="restore_sliders"/>\r
+ *     &lt;enumeration value="restore_knobs"/>\r
+ *     &lt;enumeration value="restore_list_inputs"/>\r
+ *     &lt;enumeration value="restore_graphical_inputs"/>\r
+ *     &lt;enumeration value="restore_switches"/>\r
+ *     &lt;enumeration value="restore_numeric_displays"/>\r
+ *     &lt;enumeration value="restore_graphs_tables"/>\r
+ *     &lt;enumeration value="restore_lamps_gauges"/>\r
+ *     &lt;enumeration value="data_manager"/>\r
+ *     &lt;enumeration value="save_data_now"/>\r
+ *     &lt;enumeration value="import_now"/>\r
+ *     &lt;enumeration value="export_now"/>\r
+ *     &lt;enumeration value="exit"/>\r
+ *     &lt;enumeration value="find"/>\r
+ *     &lt;enumeration value="run_specs"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "menu_action_choices")\r
+@XmlEnum\r
+public enum MenuActionChoices {\r
+\r
+    @XmlEnumValue("open")\r
+    OPEN("open"),\r
+    @XmlEnumValue("close")\r
+    CLOSE("close"),\r
+    @XmlEnumValue("save")\r
+    SAVE("save"),\r
+    @XmlEnumValue("save_as")\r
+    SAVE_AS("save_as"),\r
+    @XmlEnumValue("save_as_image")\r
+    SAVE_AS_IMAGE("save_as_image"),\r
+    @XmlEnumValue("revert")\r
+    REVERT("revert"),\r
+    @XmlEnumValue("print_setup")\r
+    PRINT_SETUP("print_setup"),\r
+    @XmlEnumValue("print")\r
+    PRINT("print"),\r
+    @XmlEnumValue("print_screen")\r
+    PRINT_SCREEN("print_screen"),\r
+    @XmlEnumValue("run")\r
+    RUN("run"),\r
+    @XmlEnumValue("pause")\r
+    PAUSE("pause"),\r
+    @XmlEnumValue("resume")\r
+    RESUME("resume"),\r
+    @XmlEnumValue("stop")\r
+    STOP("stop"),\r
+    @XmlEnumValue("run_restore")\r
+    RUN_RESTORE("run_restore"),\r
+    @XmlEnumValue("restore_all")\r
+    RESTORE_ALL("restore_all"),\r
+    @XmlEnumValue("restore_sliders")\r
+    RESTORE_SLIDERS("restore_sliders"),\r
+    @XmlEnumValue("restore_knobs")\r
+    RESTORE_KNOBS("restore_knobs"),\r
+    @XmlEnumValue("restore_list_inputs")\r
+    RESTORE_LIST_INPUTS("restore_list_inputs"),\r
+    @XmlEnumValue("restore_graphical_inputs")\r
+    RESTORE_GRAPHICAL_INPUTS("restore_graphical_inputs"),\r
+    @XmlEnumValue("restore_switches")\r
+    RESTORE_SWITCHES("restore_switches"),\r
+    @XmlEnumValue("restore_numeric_displays")\r
+    RESTORE_NUMERIC_DISPLAYS("restore_numeric_displays"),\r
+    @XmlEnumValue("restore_graphs_tables")\r
+    RESTORE_GRAPHS_TABLES("restore_graphs_tables"),\r
+    @XmlEnumValue("restore_lamps_gauges")\r
+    RESTORE_LAMPS_GAUGES("restore_lamps_gauges"),\r
+    @XmlEnumValue("data_manager")\r
+    DATA_MANAGER("data_manager"),\r
+    @XmlEnumValue("save_data_now")\r
+    SAVE_DATA_NOW("save_data_now"),\r
+    @XmlEnumValue("import_now")\r
+    IMPORT_NOW("import_now"),\r
+    @XmlEnumValue("export_now")\r
+    EXPORT_NOW("export_now"),\r
+    @XmlEnumValue("exit")\r
+    EXIT("exit"),\r
+    @XmlEnumValue("find")\r
+    FIND("find"),\r
+    @XmlEnumValue("run_specs")\r
+    RUN_SPECS("run_specs");\r
+    private final String value;\r
+\r
+    MenuActionChoices(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static MenuActionChoices fromValue(String v) {\r
+        for (MenuActionChoices c: MenuActionChoices.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/MinMaxType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/MinMaxType.java
new file mode 100644 (file)
index 0000000..471afc5
--- /dev/null
@@ -0,0 +1,92 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for min_max_type complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="min_max_type">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "min_max_type")\r
+public class MinMaxType {\r
+\r
+    @XmlAttribute(name = "min")\r
+    protected Double min;\r
+    @XmlAttribute(name = "max")\r
+    protected Double max;\r
+\r
+    /**\r
+     * Gets the value of the min property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMin() {\r
+        return min;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the min property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMin(Double value) {\r
+        this.min = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the max property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMax() {\r
+        return max;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the max property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMax(Double value) {\r
+        this.max = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Model.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Model.java
new file mode 100644 (file)
index 0000000..d5f7d0a
--- /dev/null
@@ -0,0 +1,266 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sim_specs" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}behavior" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}variables"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}views" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="run" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="password" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "simSpecs",\r
+    "behavior",\r
+    "variables",\r
+    "views"\r
+})\r
+@XmlRootElement(name = "model")\r
+public class Model {\r
+\r
+    @XmlElement(name = "sim_specs")\r
+    protected SimSpecs simSpecs;\r
+    protected Behavior behavior;\r
+    @XmlElement(required = true)\r
+    protected Variables variables;\r
+    protected Views views;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "resource")\r
+    protected String resource;\r
+    @XmlAttribute(name = "run")\r
+    protected Boolean run;\r
+    @XmlAttribute(name = "password")\r
+    protected String password;\r
+\r
+    /**\r
+     * Gets the value of the simSpecs property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link SimSpecs }\r
+     *     \r
+     */\r
+    public SimSpecs getSimSpecs() {\r
+        return simSpecs;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the simSpecs property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link SimSpecs }\r
+     *     \r
+     */\r
+    public void setSimSpecs(SimSpecs value) {\r
+        this.simSpecs = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the behavior property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Behavior }\r
+     *     \r
+     */\r
+    public Behavior getBehavior() {\r
+        return behavior;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the behavior property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Behavior }\r
+     *     \r
+     */\r
+    public void setBehavior(Behavior value) {\r
+        this.behavior = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the variables property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Variables }\r
+     *     \r
+     */\r
+    public Variables getVariables() {\r
+        return variables;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the variables property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Variables }\r
+     *     \r
+     */\r
+    public void setVariables(Variables value) {\r
+        this.variables = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the views property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Views }\r
+     *     \r
+     */\r
+    public Views getViews() {\r
+        return views;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the views property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Views }\r
+     *     \r
+     */\r
+    public void setViews(Views value) {\r
+        this.views = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the resource property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getResource() {\r
+        return resource;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the resource property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setResource(String value) {\r
+        this.resource = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the run property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isRun() {\r
+        if (run == null) {\r
+            return false;\r
+        } else {\r
+            return run;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the run property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setRun(Boolean value) {\r
+        this.run = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the password property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPassword() {\r
+        return password;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the password property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPassword(String value) {\r
+        this.password = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ModelUnits.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ModelUnits.java
new file mode 100644 (file)
index 0000000..f61c1ac
--- /dev/null
@@ -0,0 +1,202 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="unit" maxOccurs="unbounded" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice>\r
+ *                   &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element name="alias" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "unit"\r
+})\r
+@XmlRootElement(name = "model_units")\r
+public class ModelUnits {\r
+\r
+    protected List<ModelUnits.Unit> unit;\r
+\r
+    /**\r
+     * Gets the value of the unit property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the unit property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getUnit().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link ModelUnits.Unit }\r
+     * \r
+     * \r
+     */\r
+    public List<ModelUnits.Unit> getUnit() {\r
+        if (unit == null) {\r
+            unit = new ArrayList<ModelUnits.Unit>();\r
+        }\r
+        return this.unit;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice>\r
+     *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element name="alias" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+     *       &lt;/choice>\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "eqn",\r
+        "alias"\r
+    })\r
+    public static class Unit {\r
+\r
+        protected String eqn;\r
+        protected List<String> alias;\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+\r
+        /**\r
+         * Gets the value of the eqn property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getEqn() {\r
+            return eqn;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the eqn property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setEqn(String value) {\r
+            this.eqn = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the alias property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the alias property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getAlias().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link String }\r
+         * \r
+         * \r
+         */\r
+        public List<String> getAlias() {\r
+            if (alias == null) {\r
+                alias = new ArrayList<String>();\r
+            }\r
+            return this.alias;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Module.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Module.java
new file mode 100644 (file)
index 0000000..0e66754
--- /dev/null
@@ -0,0 +1,218 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element name="connect" maxOccurs="unbounded" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="to" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="from" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "connect"\r
+})\r
+@XmlRootElement(name = "module")\r
+public class Module {\r
+\r
+    protected List<Module.Connect> connect;\r
+    @XmlAttribute(name = "name", required = true)\r
+    protected String name;\r
+    @XmlAttribute(name = "resource")\r
+    protected String resource;\r
+\r
+    /**\r
+     * Gets the value of the connect property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the connect property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getConnect().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Module.Connect }\r
+     * \r
+     * \r
+     */\r
+    public List<Module.Connect> getConnect() {\r
+        if (connect == null) {\r
+            connect = new ArrayList<Module.Connect>();\r
+        }\r
+        return this.connect;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the resource property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getResource() {\r
+        return resource;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the resource property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setResource(String value) {\r
+        this.resource = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="to" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="from" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Connect {\r
+\r
+        @XmlAttribute(name = "to", required = true)\r
+        protected String to;\r
+        @XmlAttribute(name = "from", required = true)\r
+        protected String from;\r
+\r
+        /**\r
+         * Gets the value of the to property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTo() {\r
+            return to;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the to property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTo(String value) {\r
+            this.to = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the from property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFrom() {\r
+            return from;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the from property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFrom(String value) {\r
+            this.from = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/NumericDisplay.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/NumericDisplay.java
new file mode 100644 (file)
index 0000000..9b9d37d
--- /dev/null
@@ -0,0 +1,956 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="entity">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/all>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="retain_ending_value" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "numeric_display")\r
+public class NumericDisplay {\r
+\r
+    @XmlElement(required = true)\r
+    protected NumericDisplay.Entity entity;\r
+    @XmlAttribute(name = "show_name")\r
+    protected Boolean showName;\r
+    @XmlAttribute(name = "retain_ending_value")\r
+    protected Boolean retainEndingValue;\r
+    @XmlAttribute(name = "uid", required = true)\r
+    protected int uid;\r
+    @XmlAttribute(name = "precision")\r
+    protected Double precision;\r
+    @XmlAttribute(name = "scale_by")\r
+    protected BigInteger scaleBy;\r
+    @XmlAttribute(name = "delimit_000s")\r
+    protected Boolean delimit000S;\r
+    @XmlAttribute(name = "display_as")\r
+    protected String displayAs;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+\r
+    /**\r
+     * Gets the value of the entity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link NumericDisplay.Entity }\r
+     *     \r
+     */\r
+    public NumericDisplay.Entity getEntity() {\r
+        return entity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the entity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link NumericDisplay.Entity }\r
+     *     \r
+     */\r
+    public void setEntity(NumericDisplay.Entity value) {\r
+        this.entity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showName property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowName() {\r
+        if (showName == null) {\r
+            return false;\r
+        } else {\r
+            return showName;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showName property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowName(Boolean value) {\r
+        this.showName = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the retainEndingValue property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isRetainEndingValue() {\r
+        if (retainEndingValue == null) {\r
+            return false;\r
+        } else {\r
+            return retainEndingValue;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the retainEndingValue property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setRetainEndingValue(Boolean value) {\r
+        this.retainEndingValue = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uid property.\r
+     * \r
+     */\r
+    public int getUid() {\r
+        return uid;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uid property.\r
+     * \r
+     */\r
+    public void setUid(int value) {\r
+        this.uid = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the precision property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getPrecision() {\r
+        return precision;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the precision property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setPrecision(Double value) {\r
+        this.precision = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the scaleBy property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getScaleBy() {\r
+        if (scaleBy == null) {\r
+            return new BigInteger("1");\r
+        } else {\r
+            return scaleBy;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the scaleBy property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setScaleBy(BigInteger value) {\r
+        this.scaleBy = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the delimit000S property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isDelimit000S() {\r
+        if (delimit000S == null) {\r
+            return false;\r
+        } else {\r
+            return delimit000S;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the delimit000S property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setDelimit000S(Boolean value) {\r
+        this.delimit000S = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the displayAs property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getDisplayAs() {\r
+        if (displayAs == null) {\r
+            return "number";\r
+        } else {\r
+            return displayAs;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the displayAs property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setDisplayAs(String value) {\r
+        this.displayAs = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Entity {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+        @XmlAttribute(name = "index")\r
+        protected String index;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the index property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getIndex() {\r
+            return index;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the index property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setIndex(String value) {\r
+            this.index = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ObjectFactory.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ObjectFactory.java
new file mode 100644 (file)
index 0000000..b17dece
--- /dev/null
@@ -0,0 +1,1368 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlElementDecl;\r
+import javax.xml.bind.annotation.XmlRegistry;\r
+import javax.xml.namespace.QName;\r
+\r
+\r
+/**\r
+ * This object contains factory methods for each \r
+ * Java content interface and Java element interface \r
+ * generated in the org.simantics.sysdyn.xmile.schema1 package. \r
+ * <p>An ObjectFactory allows you to programatically \r
+ * construct new instances of the Java representation \r
+ * for XML content. The Java representation of XML \r
+ * content can consist of schema derived interfaces \r
+ * and classes representing the binding of schema \r
+ * type definitions, element declarations and model \r
+ * groups.  Factory methods for each of these are \r
+ * provided in this class.\r
+ * \r
+ */\r
+@XmlRegistry\r
+public class ObjectFactory {\r
+\r
+    private final static QName _ViewContentTypeConnectorFromAlias_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "alias");\r
+    private final static QName _StockElementQueue_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "queue");\r
+    private final static QName _StockElementNonNegative_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "non_negative");\r
+    private final static QName _StockElementInflow_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "inflow");\r
+    private final static QName _StockElementMathml_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "mathml");\r
+    private final static QName _StockElementOutflow_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "outflow");\r
+    private final static QName _StockElementEqn_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "eqn");\r
+    private final static QName _FlowElement_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "element");\r
+    private final static QName _FlowDoc_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "doc");\r
+    private final static QName _FlowUnits_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "units");\r
+    private final static QName _FlowMultiplier_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "multiplier");\r
+    private final static QName _FlowLeakIntegers_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "leak_integers");\r
+    private final static QName _FlowLeak_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "leak");\r
+    private final static QName _FlowOverflow_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "overflow");\r
+    private final static QName _ContactFax_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "fax");\r
+    private final static QName _ContactEmail_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "email");\r
+    private final static QName _ContactPhone_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "phone");\r
+    private final static QName _ContactWebsite_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "website");\r
+    private final static QName _ContactAddress_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "address");\r
+    private final static QName _MacroParm_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "parm");\r
+    private final static QName _MacroFormat_QNAME = new QName("http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", "format");\r
+\r
+    /**\r
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.simantics.sysdyn.xmile.schema1\r
+     * \r
+     */\r
+    public ObjectFactory() {\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Slider }\r
+     * \r
+     */\r
+    public Slider createSlider() {\r
+        return new Slider();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options createOptions() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Includes }\r
+     * \r
+     */\r
+    public Includes createIncludes() {\r
+        return new Includes();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link SimSpecs }\r
+     * \r
+     */\r
+    public SimSpecs createSimSpecs() {\r
+        return new SimSpecs();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ModelUnits }\r
+     * \r
+     */\r
+    public ModelUnits createModelUnits() {\r
+        return new ModelUnits();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Behavior }\r
+     * \r
+     */\r
+    public Behavior createBehavior() {\r
+        return new Behavior();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Data }\r
+     * \r
+     */\r
+    public Data createData() {\r
+        return new Data();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Dimensions }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Dimensions createDimensions() {\r
+        return new org.simantics.sysdyn.xmile.schema.Dimensions();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link EventPoster }\r
+     * \r
+     */\r
+    public EventPoster createEventPoster() {\r
+        return new EventPoster();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Stock }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Stock createStock() {\r
+        return new org.simantics.sysdyn.xmile.schema.Stock();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Flow }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Flow createFlow() {\r
+        return new org.simantics.sysdyn.xmile.schema.Flow();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Auxiliary }\r
+     * \r
+     */\r
+    public Auxiliary createAuxiliary() {\r
+        return new Auxiliary();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Group }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Group createGroup() {\r
+        return new org.simantics.sysdyn.xmile.schema.Group();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Module }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Module createModule() {\r
+        return new org.simantics.sysdyn.xmile.schema.Module();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Views }\r
+     * \r
+     */\r
+    public Views createViews() {\r
+        return new Views();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Xmile }\r
+     * \r
+     */\r
+    public Xmile createXmile() {\r
+        return new Xmile();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Knob }\r
+     * \r
+     */\r
+    public Knob createKnob() {\r
+        return new Knob();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Switch }\r
+     * \r
+     */\r
+    public Switch createSwitch() {\r
+        return new Switch();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Plot }\r
+     * \r
+     */\r
+    public Plot createPlot() {\r
+        return new Plot();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType }\r
+     * \r
+     */\r
+    public ViewContentType createViewContentType() {\r
+        return new ViewContentType();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ListInput }\r
+     * \r
+     */\r
+    public ListInput createListInput() {\r
+        return new ListInput();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link NumericDisplay }\r
+     * \r
+     */\r
+    public NumericDisplay createNumericDisplay() {\r
+        return new NumericDisplay();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link GraphicalInput }\r
+     * \r
+     */\r
+    public GraphicalInput createGraphicalInput() {\r
+        return new GraphicalInput();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link SwitchAction }\r
+     * \r
+     */\r
+    public SwitchAction createSwitchAction() {\r
+        return new SwitchAction();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ListInput.NumericInput }\r
+     * \r
+     */\r
+    public ListInput.NumericInput createListInputNumericInput() {\r
+        return new ListInput.NumericInput();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Button }\r
+     * \r
+     */\r
+    public ViewContentType.Button createViewContentTypeButton() {\r
+        return new ViewContentType.Button();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Table }\r
+     * \r
+     */\r
+    public ViewContentType.Table createViewContentTypeTable() {\r
+        return new ViewContentType.Table();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Table.Item }\r
+     * \r
+     */\r
+    public ViewContentType.Table.Item createViewContentTypeTableItem() {\r
+        return new ViewContentType.Table.Item();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Connector }\r
+     * \r
+     */\r
+    public ViewContentType.Connector createViewContentTypeConnector() {\r
+        return new ViewContentType.Connector();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Connector.From }\r
+     * \r
+     */\r
+    public ViewContentType.Connector.From createViewContentTypeConnectorFrom() {\r
+        return new ViewContentType.Connector.From();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Group }\r
+     * \r
+     */\r
+    public ViewContentType.Group createViewContentTypeGroup() {\r
+        return new ViewContentType.Group();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Flow }\r
+     * \r
+     */\r
+    public ViewContentType.Flow createViewContentTypeFlow() {\r
+        return new ViewContentType.Flow();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Flow.Pts }\r
+     * \r
+     */\r
+    public ViewContentType.Flow.Pts createViewContentTypeFlowPts() {\r
+        return new ViewContentType.Flow.Pts();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Xmile.Dimensions }\r
+     * \r
+     */\r
+    public Xmile.Dimensions createXmileDimensions() {\r
+        return new Xmile.Dimensions();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Xmile.Dimensions.Dim }\r
+     * \r
+     */\r
+    public Xmile.Dimensions.Dim createXmileDimensionsDim() {\r
+        return new Xmile.Dimensions.Dim();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link EventPoster.Threshold }\r
+     * \r
+     */\r
+    public EventPoster.Threshold createEventPosterThreshold() {\r
+        return new EventPoster.Threshold();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Data.Export }\r
+     * \r
+     */\r
+    public Data.Export createDataExport() {\r
+        return new Data.Export();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Conveyor }\r
+     * \r
+     */\r
+    public Conveyor createConveyor() {\r
+        return new Conveyor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Slider.Entity }\r
+     * \r
+     */\r
+    public Slider.Entity createSliderEntity() {\r
+        return new Slider.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ResetTo }\r
+     * \r
+     */\r
+    public ResetTo createResetTo() {\r
+        return new ResetTo();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Header }\r
+     * \r
+     */\r
+    public Header createHeader() {\r
+        return new Header();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Image }\r
+     * \r
+     */\r
+    public Image createImage() {\r
+        return new Image();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options.UsesConveyor }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options.UsesConveyor createOptionsUsesConveyor() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options.UsesConveyor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options.UsesQueue }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options.UsesQueue createOptionsUsesQueue() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options.UsesQueue();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link EmptyType }\r
+     * \r
+     */\r
+    public EmptyType createEmptyType() {\r
+        return new EmptyType();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options.UsesMacros }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options.UsesMacros createOptionsUsesMacros() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options.UsesMacros();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options.UsesEventPosters }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options.UsesEventPosters createOptionsUsesEventPosters() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options.UsesEventPosters();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options.UsesOutputs }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options.UsesOutputs createOptionsUsesOutputs() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options.UsesOutputs();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options.UsesInputs }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options.UsesInputs createOptionsUsesInputs() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options.UsesInputs();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Options.UsesArrays }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Options.UsesArrays createOptionsUsesArrays() {\r
+        return new org.simantics.sysdyn.xmile.schema.Options.UsesArrays();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Product }\r
+     * \r
+     */\r
+    public Product createProduct() {\r
+        return new Product();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Contact }\r
+     * \r
+     */\r
+    public Contact createContact() {\r
+        return new Contact();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Includes.Include }\r
+     * \r
+     */\r
+    public Includes.Include createIncludesInclude() {\r
+        return new Includes.Include();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link SimSpecs.Dt }\r
+     * \r
+     */\r
+    public SimSpecs.Dt createSimSpecsDt() {\r
+        return new SimSpecs.Dt();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link SimSpecs.Run }\r
+     * \r
+     */\r
+    public SimSpecs.Run createSimSpecsRun() {\r
+        return new SimSpecs.Run();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ModelUnits.Unit }\r
+     * \r
+     */\r
+    public ModelUnits.Unit createModelUnitsUnit() {\r
+        return new ModelUnits.Unit();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link BooleanOrEmptyType }\r
+     * \r
+     */\r
+    public BooleanOrEmptyType createBooleanOrEmptyType() {\r
+        return new BooleanOrEmptyType();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Behavior.Stock }\r
+     * \r
+     */\r
+    public Behavior.Stock createBehaviorStock() {\r
+        return new Behavior.Stock();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Behavior.Flow }\r
+     * \r
+     */\r
+    public Behavior.Flow createBehaviorFlow() {\r
+        return new Behavior.Flow();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Data.Import }\r
+     * \r
+     */\r
+    public Data.Import createDataImport() {\r
+        return new Data.Import();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Style }\r
+     * \r
+     */\r
+    public Style createStyle() {\r
+        return new Style();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link StyleType }\r
+     * \r
+     */\r
+    public StyleType createStyleType() {\r
+        return new StyleType();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Macro }\r
+     * \r
+     */\r
+    public Macro createMacro() {\r
+        return new Macro();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Variables }\r
+     * \r
+     */\r
+    public Variables createVariables() {\r
+        return new Variables();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Gf }\r
+     * \r
+     */\r
+    public Gf createGf() {\r
+        return new Gf();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link MinMaxType }\r
+     * \r
+     */\r
+    public MinMaxType createMinMaxType() {\r
+        return new MinMaxType();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link PointsType }\r
+     * \r
+     */\r
+    public PointsType createPointsType() {\r
+        return new PointsType();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Dimensions.Dim }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Dimensions.Dim createDimensionsDim() {\r
+        return new org.simantics.sysdyn.xmile.schema.Dimensions.Dim();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Scale }\r
+     * \r
+     */\r
+    public Scale createScale() {\r
+        return new Scale();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Range }\r
+     * \r
+     */\r
+    public Range createRange() {\r
+        return new Range();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Format }\r
+     * \r
+     */\r
+    public Format createFormat() {\r
+        return new Format();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Stock.Element }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Stock.Element createStockElement() {\r
+        return new org.simantics.sysdyn.xmile.schema.Stock.Element();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Flow.Element }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Flow.Element createFlowElement() {\r
+        return new org.simantics.sysdyn.xmile.schema.Flow.Element();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Auxiliary.Element }\r
+     * \r
+     */\r
+    public Auxiliary.Element createAuxiliaryElement() {\r
+        return new Auxiliary.Element();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Group.Entity }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Group.Entity createGroupEntity() {\r
+        return new org.simantics.sysdyn.xmile.schema.Group.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Module.Connect }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Module.Connect createModuleConnect() {\r
+        return new org.simantics.sysdyn.xmile.schema.Module.Connect();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Views.View }\r
+     * \r
+     */\r
+    public Views.View createViewsView() {\r
+        return new Views.View();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Model }\r
+     * \r
+     */\r
+    public Model createModel() {\r
+        return new Model();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Knob.Entity }\r
+     * \r
+     */\r
+    public Knob.Entity createKnobEntity() {\r
+        return new Knob.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Sound }\r
+     * \r
+     */\r
+    public Sound createSound() {\r
+        return new Sound();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Link }\r
+     * \r
+     */\r
+    public Link createLink() {\r
+        return new Link();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link TextBox }\r
+     * \r
+     */\r
+    public TextBox createTextBox() {\r
+        return new TextBox();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Video }\r
+     * \r
+     */\r
+    public Video createVideo() {\r
+        return new Video();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Switch.Entity }\r
+     * \r
+     */\r
+    public Switch.Entity createSwitchEntity() {\r
+        return new Switch.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Plot.Entity }\r
+     * \r
+     */\r
+    public Plot.Entity createPlotEntity() {\r
+        return new Plot.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Shape }\r
+     * \r
+     */\r
+    public Shape createShape() {\r
+        return new Shape();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link StackedContainer }\r
+     * \r
+     */\r
+    public StackedContainer createStackedContainer() {\r
+        return new StackedContainer();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Stock }\r
+     * \r
+     */\r
+    public ViewContentType.Stock createViewContentTypeStock() {\r
+        return new ViewContentType.Stock();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Aux }\r
+     * \r
+     */\r
+    public ViewContentType.Aux createViewContentTypeAux() {\r
+        return new ViewContentType.Aux();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Module }\r
+     * \r
+     */\r
+    public ViewContentType.Module createViewContentTypeModule() {\r
+        return new ViewContentType.Module();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Alias }\r
+     * \r
+     */\r
+    public ViewContentType.Alias createViewContentTypeAlias() {\r
+        return new ViewContentType.Alias();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link GraphicsFrame }\r
+     * \r
+     */\r
+    public GraphicsFrame createGraphicsFrame() {\r
+        return new GraphicsFrame();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Graph }\r
+     * \r
+     */\r
+    public ViewContentType.Graph createViewContentTypeGraph() {\r
+        return new ViewContentType.Graph();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link NumericDisplay.Entity }\r
+     * \r
+     */\r
+    public NumericDisplay.Entity createNumericDisplayEntity() {\r
+        return new NumericDisplay.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link GraphicalInput.Entity }\r
+     * \r
+     */\r
+    public GraphicalInput.Entity createGraphicalInputEntity() {\r
+        return new GraphicalInput.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Options }\r
+     * \r
+     */\r
+    public ViewContentType.Options createViewContentTypeOptions() {\r
+        return new ViewContentType.Options();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Popup }\r
+     * \r
+     */\r
+    public Popup createPopup() {\r
+        return new Popup();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link org.simantics.sysdyn.xmile.schema.Entity }\r
+     * \r
+     */\r
+    public org.simantics.sysdyn.xmile.schema.Entity createEntity() {\r
+        return new org.simantics.sysdyn.xmile.schema.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link SwitchAction.Group }\r
+     * \r
+     */\r
+    public SwitchAction.Group createSwitchActionGroup() {\r
+        return new SwitchAction.Group();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ListInput.NumericInput.Entity }\r
+     * \r
+     */\r
+    public ListInput.NumericInput.Entity createListInputNumericInputEntity() {\r
+        return new ListInput.NumericInput.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Button.MenuAction }\r
+     * \r
+     */\r
+    public ViewContentType.Button.MenuAction createViewContentTypeButtonMenuAction() {\r
+        return new ViewContentType.Button.MenuAction();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Table.Item.Entity }\r
+     * \r
+     */\r
+    public ViewContentType.Table.Item.Entity createViewContentTypeTableItemEntity() {\r
+        return new ViewContentType.Table.Item.Entity();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Connector.From.Alias }\r
+     * \r
+     */\r
+    public ViewContentType.Connector.From.Alias createViewContentTypeConnectorFromAlias() {\r
+        return new ViewContentType.Connector.From.Alias();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Group.Item }\r
+     * \r
+     */\r
+    public ViewContentType.Group.Item createViewContentTypeGroupItem() {\r
+        return new ViewContentType.Group.Item();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link ViewContentType.Flow.Pts.Pt }\r
+     * \r
+     */\r
+    public ViewContentType.Flow.Pts.Pt createViewContentTypeFlowPtsPt() {\r
+        return new ViewContentType.Flow.Pts.Pt();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Xmile.Dimensions.Dim.Elem }\r
+     * \r
+     */\r
+    public Xmile.Dimensions.Dim.Elem createXmileDimensionsDimElem() {\r
+        return new Xmile.Dimensions.Dim.Elem();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link EventPoster.Threshold.Event }\r
+     * \r
+     */\r
+    public EventPoster.Threshold.Event createEventPosterThresholdEvent() {\r
+        return new EventPoster.Threshold.Event();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link Data.Export.Table }\r
+     * \r
+     */\r
+    public Data.Export.Table createDataExportTable() {\r
+        return new Data.Export.Table();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link ViewContentType.Connector.From.Alias }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "alias", scope = ViewContentType.Connector.From.class)\r
+    public JAXBElement<ViewContentType.Connector.From.Alias> createViewContentTypeConnectorFromAlias(ViewContentType.Connector.From.Alias value) {\r
+        return new JAXBElement<ViewContentType.Connector.From.Alias>(_ViewContentTypeConnectorFromAlias_QNAME, ViewContentType.Connector.From.Alias.class, ViewContentType.Connector.From.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "queue", scope = org.simantics.sysdyn.xmile.schema.Stock.Element.class)\r
+    public JAXBElement<EmptyType> createStockElementQueue(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_StockElementQueue_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Stock.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "non_negative", scope = org.simantics.sysdyn.xmile.schema.Stock.Element.class)\r
+    public JAXBElement<BooleanOrEmptyType> createStockElementNonNegative(BooleanOrEmptyType value) {\r
+        return new JAXBElement<BooleanOrEmptyType>(_StockElementNonNegative_QNAME, BooleanOrEmptyType.class, org.simantics.sysdyn.xmile.schema.Stock.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "inflow", scope = org.simantics.sysdyn.xmile.schema.Stock.Element.class)\r
+    public JAXBElement<String> createStockElementInflow(String value) {\r
+        return new JAXBElement<String>(_StockElementInflow_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "mathml", scope = org.simantics.sysdyn.xmile.schema.Stock.Element.class)\r
+    public JAXBElement<String> createStockElementMathml(String value) {\r
+        return new JAXBElement<String>(_StockElementMathml_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "outflow", scope = org.simantics.sysdyn.xmile.schema.Stock.Element.class)\r
+    public JAXBElement<String> createStockElementOutflow(String value) {\r
+        return new JAXBElement<String>(_StockElementOutflow_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "eqn", scope = org.simantics.sysdyn.xmile.schema.Stock.Element.class)\r
+    public JAXBElement<String> createStockElementEqn(String value) {\r
+        return new JAXBElement<String>(_StockElementEqn_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "non_negative", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<BooleanOrEmptyType> createFlowNonNegative(BooleanOrEmptyType value) {\r
+        return new JAXBElement<BooleanOrEmptyType>(_StockElementNonNegative_QNAME, BooleanOrEmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link org.simantics.sysdyn.xmile.schema.Flow.Element }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "element", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<org.simantics.sysdyn.xmile.schema.Flow.Element> createFlowElement(org.simantics.sysdyn.xmile.schema.Flow.Element value) {\r
+        return new JAXBElement<org.simantics.sysdyn.xmile.schema.Flow.Element>(_FlowElement_QNAME, org.simantics.sysdyn.xmile.schema.Flow.Element.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "doc", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<String> createFlowDoc(String value) {\r
+        return new JAXBElement<String>(_FlowDoc_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "mathml", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<String> createFlowMathml(String value) {\r
+        return new JAXBElement<String>(_StockElementMathml_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "units", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<String> createFlowUnits(String value) {\r
+        return new JAXBElement<String>(_FlowUnits_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "multiplier", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<String> createFlowMultiplier(String value) {\r
+        return new JAXBElement<String>(_FlowMultiplier_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "leak_integers", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<EmptyType> createFlowLeakIntegers(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_FlowLeakIntegers_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "leak", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<EmptyType> createFlowLeak(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_FlowLeak_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "eqn", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<String> createFlowEqn(String value) {\r
+        return new JAXBElement<String>(_StockElementEqn_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "overflow", scope = org.simantics.sysdyn.xmile.schema.Flow.class)\r
+    public JAXBElement<EmptyType> createFlowOverflow(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_FlowOverflow_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "queue", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<EmptyType> createStockQueue(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_StockElementQueue_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "non_negative", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<BooleanOrEmptyType> createStockNonNegative(BooleanOrEmptyType value) {\r
+        return new JAXBElement<BooleanOrEmptyType>(_StockElementNonNegative_QNAME, BooleanOrEmptyType.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link org.simantics.sysdyn.xmile.schema.Stock.Element }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "element", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<org.simantics.sysdyn.xmile.schema.Stock.Element> createStockElement(org.simantics.sysdyn.xmile.schema.Stock.Element value) {\r
+        return new JAXBElement<org.simantics.sysdyn.xmile.schema.Stock.Element>(_FlowElement_QNAME, org.simantics.sysdyn.xmile.schema.Stock.Element.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "doc", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<String> createStockDoc(String value) {\r
+        return new JAXBElement<String>(_FlowDoc_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "inflow", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<String> createStockInflow(String value) {\r
+        return new JAXBElement<String>(_StockElementInflow_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "mathml", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<String> createStockMathml(String value) {\r
+        return new JAXBElement<String>(_StockElementMathml_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "units", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<String> createStockUnits(String value) {\r
+        return new JAXBElement<String>(_FlowUnits_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "outflow", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<String> createStockOutflow(String value) {\r
+        return new JAXBElement<String>(_StockElementOutflow_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "eqn", scope = org.simantics.sysdyn.xmile.schema.Stock.class)\r
+    public JAXBElement<String> createStockEqn(String value) {\r
+        return new JAXBElement<String>(_StockElementEqn_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Stock.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "fax", scope = Contact.class)\r
+    public JAXBElement<String> createContactFax(String value) {\r
+        return new JAXBElement<String>(_ContactFax_QNAME, String.class, Contact.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "email", scope = Contact.class)\r
+    public JAXBElement<String> createContactEmail(String value) {\r
+        return new JAXBElement<String>(_ContactEmail_QNAME, String.class, Contact.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "phone", scope = Contact.class)\r
+    public JAXBElement<String> createContactPhone(String value) {\r
+        return new JAXBElement<String>(_ContactPhone_QNAME, String.class, Contact.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "website", scope = Contact.class)\r
+    public JAXBElement<String> createContactWebsite(String value) {\r
+        return new JAXBElement<String>(_ContactWebsite_QNAME, String.class, Contact.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "address", scope = Contact.class)\r
+    public JAXBElement<String> createContactAddress(String value) {\r
+        return new JAXBElement<String>(_ContactAddress_QNAME, String.class, Contact.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "mathml", scope = Auxiliary.Element.class)\r
+    public JAXBElement<String> createAuxiliaryElementMathml(String value) {\r
+        return new JAXBElement<String>(_StockElementMathml_QNAME, String.class, Auxiliary.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "eqn", scope = Auxiliary.Element.class)\r
+    public JAXBElement<String> createAuxiliaryElementEqn(String value) {\r
+        return new JAXBElement<String>(_StockElementEqn_QNAME, String.class, Auxiliary.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "parm", scope = Macro.class)\r
+    public JAXBElement<String> createMacroParm(String value) {\r
+        return new JAXBElement<String>(_MacroParm_QNAME, String.class, Macro.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "format", scope = Macro.class)\r
+    public JAXBElement<String> createMacroFormat(String value) {\r
+        return new JAXBElement<String>(_MacroFormat_QNAME, String.class, Macro.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "doc", scope = Macro.class)\r
+    public JAXBElement<String> createMacroDoc(String value) {\r
+        return new JAXBElement<String>(_FlowDoc_QNAME, String.class, Macro.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "eqn", scope = Macro.class)\r
+    public JAXBElement<String> createMacroEqn(String value) {\r
+        return new JAXBElement<String>(_StockElementEqn_QNAME, String.class, Macro.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "non_negative", scope = org.simantics.sysdyn.xmile.schema.Flow.Element.class)\r
+    public JAXBElement<BooleanOrEmptyType> createFlowElementNonNegative(BooleanOrEmptyType value) {\r
+        return new JAXBElement<BooleanOrEmptyType>(_StockElementNonNegative_QNAME, BooleanOrEmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "mathml", scope = org.simantics.sysdyn.xmile.schema.Flow.Element.class)\r
+    public JAXBElement<String> createFlowElementMathml(String value) {\r
+        return new JAXBElement<String>(_StockElementMathml_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "multiplier", scope = org.simantics.sysdyn.xmile.schema.Flow.Element.class)\r
+    public JAXBElement<String> createFlowElementMultiplier(String value) {\r
+        return new JAXBElement<String>(_FlowMultiplier_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "leak_integers", scope = org.simantics.sysdyn.xmile.schema.Flow.Element.class)\r
+    public JAXBElement<EmptyType> createFlowElementLeakIntegers(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_FlowLeakIntegers_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "leak", scope = org.simantics.sysdyn.xmile.schema.Flow.Element.class)\r
+    public JAXBElement<EmptyType> createFlowElementLeak(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_FlowLeak_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "eqn", scope = org.simantics.sysdyn.xmile.schema.Flow.Element.class)\r
+    public JAXBElement<String> createFlowElementEqn(String value) {\r
+        return new JAXBElement<String>(_StockElementEqn_QNAME, String.class, org.simantics.sysdyn.xmile.schema.Flow.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link EmptyType }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "overflow", scope = org.simantics.sysdyn.xmile.schema.Flow.Element.class)\r
+    public JAXBElement<EmptyType> createFlowElementOverflow(EmptyType value) {\r
+        return new JAXBElement<EmptyType>(_FlowOverflow_QNAME, EmptyType.class, org.simantics.sysdyn.xmile.schema.Flow.Element.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link Auxiliary.Element }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "element", scope = Auxiliary.class)\r
+    public JAXBElement<Auxiliary.Element> createAuxiliaryElement(Auxiliary.Element value) {\r
+        return new JAXBElement<Auxiliary.Element>(_FlowElement_QNAME, Auxiliary.Element.class, Auxiliary.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "doc", scope = Auxiliary.class)\r
+    public JAXBElement<String> createAuxiliaryDoc(String value) {\r
+        return new JAXBElement<String>(_FlowDoc_QNAME, String.class, Auxiliary.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "mathml", scope = Auxiliary.class)\r
+    public JAXBElement<String> createAuxiliaryMathml(String value) {\r
+        return new JAXBElement<String>(_StockElementMathml_QNAME, String.class, Auxiliary.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "units", scope = Auxiliary.class)\r
+    public JAXBElement<String> createAuxiliaryUnits(String value) {\r
+        return new JAXBElement<String>(_FlowUnits_QNAME, String.class, Auxiliary.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", name = "eqn", scope = Auxiliary.class)\r
+    public JAXBElement<String> createAuxiliaryEqn(String value) {\r
+        return new JAXBElement<String>(_StockElementEqn_QNAME, String.class, Auxiliary.class, value);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Options.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Options.java
new file mode 100644 (file)
index 0000000..1b91008
--- /dev/null
@@ -0,0 +1,954 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="uses_conveyor" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="arrest" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="leak" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="uses_queue" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="overflow" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="uses_submodels" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type" minOccurs="0"/>\r
+ *         &lt;element name="uses_macros" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="references_macros" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="option_filters" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="uses_event_posters" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="messages" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="has_model_view" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type" minOccurs="0"/>\r
+ *         &lt;element name="uses_outputs" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="numeric_display" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="lamp" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="gauge" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="uses_inputs" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="numeric_input" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="list" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="graphical_input" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="uses_annotation" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type" minOccurs="0"/>\r
+ *         &lt;element name="uses_arrays" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="max_dimensions" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+ *                 &lt;attribute name="invalid_index_value" default="0">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}double">\r
+ *                       &lt;enumeration value="0"/>\r
+ *                       &lt;enumeration value="NaN"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/all>\r
+ *       &lt;attribute name="namespace" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "options")\r
+public class Options {\r
+\r
+    @XmlElement(name = "uses_conveyor")\r
+    protected Options.UsesConveyor usesConveyor;\r
+    @XmlElement(name = "uses_queue")\r
+    protected Options.UsesQueue usesQueue;\r
+    @XmlElement(name = "uses_submodels")\r
+    protected EmptyType usesSubmodels;\r
+    @XmlElement(name = "uses_macros")\r
+    protected Options.UsesMacros usesMacros;\r
+    @XmlElement(name = "uses_event_posters")\r
+    protected Options.UsesEventPosters usesEventPosters;\r
+    @XmlElement(name = "has_model_view")\r
+    protected EmptyType hasModelView;\r
+    @XmlElement(name = "uses_outputs")\r
+    protected Options.UsesOutputs usesOutputs;\r
+    @XmlElement(name = "uses_inputs")\r
+    protected Options.UsesInputs usesInputs;\r
+    @XmlElement(name = "uses_annotation")\r
+    protected EmptyType usesAnnotation;\r
+    @XmlElement(name = "uses_arrays")\r
+    protected Options.UsesArrays usesArrays;\r
+    @XmlAttribute(name = "namespace")\r
+    protected String namespace;\r
+\r
+    /**\r
+     * Gets the value of the usesConveyor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options.UsesConveyor }\r
+     *     \r
+     */\r
+    public Options.UsesConveyor getUsesConveyor() {\r
+        return usesConveyor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesConveyor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options.UsesConveyor }\r
+     *     \r
+     */\r
+    public void setUsesConveyor(Options.UsesConveyor value) {\r
+        this.usesConveyor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesQueue property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options.UsesQueue }\r
+     *     \r
+     */\r
+    public Options.UsesQueue getUsesQueue() {\r
+        return usesQueue;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesQueue property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options.UsesQueue }\r
+     *     \r
+     */\r
+    public void setUsesQueue(Options.UsesQueue value) {\r
+        this.usesQueue = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesSubmodels property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link EmptyType }\r
+     *     \r
+     */\r
+    public EmptyType getUsesSubmodels() {\r
+        return usesSubmodels;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesSubmodels property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link EmptyType }\r
+     *     \r
+     */\r
+    public void setUsesSubmodels(EmptyType value) {\r
+        this.usesSubmodels = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesMacros property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options.UsesMacros }\r
+     *     \r
+     */\r
+    public Options.UsesMacros getUsesMacros() {\r
+        return usesMacros;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesMacros property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options.UsesMacros }\r
+     *     \r
+     */\r
+    public void setUsesMacros(Options.UsesMacros value) {\r
+        this.usesMacros = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesEventPosters property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options.UsesEventPosters }\r
+     *     \r
+     */\r
+    public Options.UsesEventPosters getUsesEventPosters() {\r
+        return usesEventPosters;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesEventPosters property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options.UsesEventPosters }\r
+     *     \r
+     */\r
+    public void setUsesEventPosters(Options.UsesEventPosters value) {\r
+        this.usesEventPosters = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the hasModelView property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link EmptyType }\r
+     *     \r
+     */\r
+    public EmptyType getHasModelView() {\r
+        return hasModelView;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the hasModelView property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link EmptyType }\r
+     *     \r
+     */\r
+    public void setHasModelView(EmptyType value) {\r
+        this.hasModelView = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesOutputs property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options.UsesOutputs }\r
+     *     \r
+     */\r
+    public Options.UsesOutputs getUsesOutputs() {\r
+        return usesOutputs;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesOutputs property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options.UsesOutputs }\r
+     *     \r
+     */\r
+    public void setUsesOutputs(Options.UsesOutputs value) {\r
+        this.usesOutputs = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesInputs property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options.UsesInputs }\r
+     *     \r
+     */\r
+    public Options.UsesInputs getUsesInputs() {\r
+        return usesInputs;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesInputs property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options.UsesInputs }\r
+     *     \r
+     */\r
+    public void setUsesInputs(Options.UsesInputs value) {\r
+        this.usesInputs = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesAnnotation property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link EmptyType }\r
+     *     \r
+     */\r
+    public EmptyType getUsesAnnotation() {\r
+        return usesAnnotation;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesAnnotation property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link EmptyType }\r
+     *     \r
+     */\r
+    public void setUsesAnnotation(EmptyType value) {\r
+        this.usesAnnotation = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the usesArrays property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Options.UsesArrays }\r
+     *     \r
+     */\r
+    public Options.UsesArrays getUsesArrays() {\r
+        return usesArrays;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the usesArrays property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Options.UsesArrays }\r
+     *     \r
+     */\r
+    public void setUsesArrays(Options.UsesArrays value) {\r
+        this.usesArrays = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the namespace property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getNamespace() {\r
+        return namespace;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the namespace property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setNamespace(String value) {\r
+        this.namespace = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="max_dimensions" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+     *       &lt;attribute name="invalid_index_value" default="0">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}double">\r
+     *             &lt;enumeration value="0"/>\r
+     *             &lt;enumeration value="NaN"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class UsesArrays {\r
+\r
+        @XmlAttribute(name = "max_dimensions", required = true)\r
+        protected BigInteger maxDimensions;\r
+        @XmlAttribute(name = "invalid_index_value")\r
+        protected Double invalidIndexValue;\r
+\r
+        /**\r
+         * Gets the value of the maxDimensions property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getMaxDimensions() {\r
+            return maxDimensions;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the maxDimensions property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setMaxDimensions(BigInteger value) {\r
+            this.maxDimensions = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the invalidIndexValue property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public double getInvalidIndexValue() {\r
+            if (invalidIndexValue == null) {\r
+                return  0.0D;\r
+            } else {\r
+                return invalidIndexValue;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the invalidIndexValue property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setInvalidIndexValue(Double value) {\r
+            this.invalidIndexValue = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="arrest" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="leak" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class UsesConveyor {\r
+\r
+        @XmlAttribute(name = "arrest")\r
+        protected Boolean arrest;\r
+        @XmlAttribute(name = "leak")\r
+        protected Boolean leak;\r
+\r
+        /**\r
+         * Gets the value of the arrest property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isArrest() {\r
+            return arrest;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the arrest property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setArrest(Boolean value) {\r
+            this.arrest = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the leak property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isLeak() {\r
+            return leak;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the leak property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setLeak(Boolean value) {\r
+            this.leak = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="messages" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class UsesEventPosters {\r
+\r
+        @XmlAttribute(name = "messages")\r
+        protected Boolean messages;\r
+\r
+        /**\r
+         * Gets the value of the messages property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isMessages() {\r
+            return messages;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the messages property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setMessages(Boolean value) {\r
+            this.messages = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="numeric_input" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="list" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="graphical_input" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class UsesInputs {\r
+\r
+        @XmlAttribute(name = "numeric_input")\r
+        protected Boolean numericInput;\r
+        @XmlAttribute(name = "list")\r
+        protected Boolean list;\r
+        @XmlAttribute(name = "graphical_input")\r
+        protected Boolean graphicalInput;\r
+\r
+        /**\r
+         * Gets the value of the numericInput property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isNumericInput() {\r
+            return numericInput;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the numericInput property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setNumericInput(Boolean value) {\r
+            this.numericInput = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the list property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isList() {\r
+            return list;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the list property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setList(Boolean value) {\r
+            this.list = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the graphicalInput property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isGraphicalInput() {\r
+            return graphicalInput;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the graphicalInput property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setGraphicalInput(Boolean value) {\r
+            this.graphicalInput = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="references_macros" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="option_filters" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class UsesMacros {\r
+\r
+        @XmlAttribute(name = "references_macros", required = true)\r
+        protected boolean referencesMacros;\r
+        @XmlAttribute(name = "option_filters", required = true)\r
+        protected boolean optionFilters;\r
+\r
+        /**\r
+         * Gets the value of the referencesMacros property.\r
+         * \r
+         */\r
+        public boolean isReferencesMacros() {\r
+            return referencesMacros;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the referencesMacros property.\r
+         * \r
+         */\r
+        public void setReferencesMacros(boolean value) {\r
+            this.referencesMacros = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the optionFilters property.\r
+         * \r
+         */\r
+        public boolean isOptionFilters() {\r
+            return optionFilters;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the optionFilters property.\r
+         * \r
+         */\r
+        public void setOptionFilters(boolean value) {\r
+            this.optionFilters = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="numeric_display" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="lamp" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="gauge" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class UsesOutputs {\r
+\r
+        @XmlAttribute(name = "numeric_display")\r
+        protected Boolean numericDisplay;\r
+        @XmlAttribute(name = "lamp")\r
+        protected Boolean lamp;\r
+        @XmlAttribute(name = "gauge")\r
+        protected Boolean gauge;\r
+\r
+        /**\r
+         * Gets the value of the numericDisplay property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isNumericDisplay() {\r
+            return numericDisplay;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the numericDisplay property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setNumericDisplay(Boolean value) {\r
+            this.numericDisplay = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the lamp property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isLamp() {\r
+            return lamp;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the lamp property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setLamp(Boolean value) {\r
+            this.lamp = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the gauge property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isGauge() {\r
+            return gauge;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the gauge property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setGauge(Boolean value) {\r
+            this.gauge = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="overflow" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class UsesQueue {\r
+\r
+        @XmlAttribute(name = "overflow")\r
+        protected Boolean overflow;\r
+\r
+        /**\r
+         * Gets the value of the overflow property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isOverflow() {\r
+            return overflow;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the overflow property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setOverflow(Boolean value) {\r
+            this.overflow = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Orientation.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Orientation.java
new file mode 100644 (file)
index 0000000..8577b3c
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for orientation.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="orientation">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="horizontal"/>\r
+ *     &lt;enumeration value="vertical"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "orientation")\r
+@XmlEnum\r
+public enum Orientation {\r
+\r
+    @XmlEnumValue("horizontal")\r
+    HORIZONTAL("horizontal"),\r
+    @XmlEnumValue("vertical")\r
+    VERTICAL("vertical");\r
+    private final String value;\r
+\r
+    Orientation(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static Orientation fromValue(String v) {\r
+        for (Orientation c: Orientation.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/OrientationType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/OrientationType.java
new file mode 100644 (file)
index 0000000..0298236
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for orientation_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="orientation_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="vertical"/>\r
+ *     &lt;enumeration value="horizontal"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "orientation_type")\r
+@XmlEnum\r
+public enum OrientationType {\r
+\r
+    @XmlEnumValue("vertical")\r
+    VERTICAL("vertical"),\r
+    @XmlEnumValue("horizontal")\r
+    HORIZONTAL("horizontal");\r
+    private final String value;\r
+\r
+    OrientationType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static OrientationType fromValue(String v) {\r
+        for (OrientationType c: OrientationType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Penstyle.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Penstyle.java
new file mode 100644 (file)
index 0000000..34bbf55
--- /dev/null
@@ -0,0 +1,64 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for penstyle.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="penstyle">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="solid"/>\r
+ *     &lt;enumeration value="dotted"/>\r
+ *     &lt;enumeration value="dashed"/>\r
+ *     &lt;enumeration value="dot_dashed"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "penstyle")\r
+@XmlEnum\r
+public enum Penstyle {\r
+\r
+    @XmlEnumValue("solid")\r
+    SOLID("solid"),\r
+    @XmlEnumValue("dotted")\r
+    DOTTED("dotted"),\r
+    @XmlEnumValue("dashed")\r
+    DASHED("dashed"),\r
+    @XmlEnumValue("dot_dashed")\r
+    DOT_DASHED("dot_dashed");\r
+    private final String value;\r
+\r
+    Penstyle(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static Penstyle fromValue(String v) {\r
+        for (Penstyle c: Penstyle.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Plot.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Plot.java
new file mode 100644 (file)
index 0000000..b863655
--- /dev/null
@@ -0,0 +1,363 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="entity">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}scale" minOccurs="0"/>\r
+ *       &lt;/all>\r
+ *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *       &lt;attribute name="pen_width" type="{http://www.w3.org/2001/XMLSchema}int" default="1" />\r
+ *       &lt;attribute name="pen_style" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}penstyle" default="solid" />\r
+ *       &lt;attribute name="show_y_axis" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="title" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="right_axis" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "plot")\r
+public class Plot {\r
+\r
+    @XmlElement(required = true)\r
+    protected Plot.Entity entity;\r
+    protected Scale scale;\r
+    @XmlAttribute(name = "index")\r
+    protected Integer index;\r
+    @XmlAttribute(name = "pen_width")\r
+    protected Integer penWidth;\r
+    @XmlAttribute(name = "pen_style")\r
+    protected Penstyle penStyle;\r
+    @XmlAttribute(name = "show_y_axis")\r
+    protected Boolean showYAxis;\r
+    @XmlAttribute(name = "title", required = true)\r
+    protected String title;\r
+    @XmlAttribute(name = "right_axis")\r
+    protected Boolean rightAxis;\r
+\r
+    /**\r
+     * Gets the value of the entity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Plot.Entity }\r
+     *     \r
+     */\r
+    public Plot.Entity getEntity() {\r
+        return entity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the entity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Plot.Entity }\r
+     *     \r
+     */\r
+    public void setEntity(Plot.Entity value) {\r
+        this.entity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the scale property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Scale }\r
+     *     \r
+     */\r
+    public Scale getScale() {\r
+        return scale;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the scale property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Scale }\r
+     *     \r
+     */\r
+    public void setScale(Scale value) {\r
+        this.scale = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the index property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getIndex() {\r
+        return index;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the index property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setIndex(Integer value) {\r
+        this.index = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the penWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public int getPenWidth() {\r
+        if (penWidth == null) {\r
+            return  1;\r
+        } else {\r
+            return penWidth;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the penWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setPenWidth(Integer value) {\r
+        this.penWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the penStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Penstyle }\r
+     *     \r
+     */\r
+    public Penstyle getPenStyle() {\r
+        if (penStyle == null) {\r
+            return Penstyle.SOLID;\r
+        } else {\r
+            return penStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the penStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Penstyle }\r
+     *     \r
+     */\r
+    public void setPenStyle(Penstyle value) {\r
+        this.penStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showYAxis property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowYAxis() {\r
+        if (showYAxis == null) {\r
+            return true;\r
+        } else {\r
+            return showYAxis;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showYAxis property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowYAxis(Boolean value) {\r
+        this.showYAxis = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the title property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTitle() {\r
+        return title;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the title property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTitle(String value) {\r
+        this.title = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the rightAxis property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isRightAxis() {\r
+        if (rightAxis == null) {\r
+            return false;\r
+        } else {\r
+            return rightAxis;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the rightAxis property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setRightAxis(Boolean value) {\r
+        this.rightAxis = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Entity {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+        @XmlAttribute(name = "index")\r
+        protected String index;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the index property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getIndex() {\r
+            return index;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the index property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setIndex(String value) {\r
+            this.index = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/PointsType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/PointsType.java
new file mode 100644 (file)
index 0000000..72f3b87
--- /dev/null
@@ -0,0 +1,98 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for points_type complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="points_type">\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">\r
+ *       &lt;attribute name="sep" type="{http://www.w3.org/2001/XMLSchema}string" default="," />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "points_type", propOrder = {\r
+    "value"\r
+})\r
+public class PointsType {\r
+\r
+    @XmlValue\r
+    protected String value;\r
+    @XmlAttribute(name = "sep")\r
+    protected String sep;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setValue(String value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sep property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getSep() {\r
+        if (sep == null) {\r
+            return ",";\r
+        } else {\r
+            return sep;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sep property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setSep(String value) {\r
+        this.sep = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Popup.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Popup.java
new file mode 100644 (file)
index 0000000..7372307
--- /dev/null
@@ -0,0 +1,779 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}text_box"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}video"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sound"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}link"/>\r
+ *       &lt;/choice>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "textBox",\r
+    "image",\r
+    "video",\r
+    "sound",\r
+    "link"\r
+})\r
+@XmlRootElement(name = "popup")\r
+public class Popup {\r
+\r
+    @XmlElement(name = "text_box")\r
+    protected TextBox textBox;\r
+    protected Image image;\r
+    protected Video video;\r
+    protected Sound sound;\r
+    protected Link link;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the textBox property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextBox }\r
+     *     \r
+     */\r
+    public TextBox getTextBox() {\r
+        return textBox;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBox property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextBox }\r
+     *     \r
+     */\r
+    public void setTextBox(TextBox value) {\r
+        this.textBox = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the image property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Image }\r
+     *     \r
+     */\r
+    public Image getImage() {\r
+        return image;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the image property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Image }\r
+     *     \r
+     */\r
+    public void setImage(Image value) {\r
+        this.image = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the video property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Video }\r
+     *     \r
+     */\r
+    public Video getVideo() {\r
+        return video;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the video property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Video }\r
+     *     \r
+     */\r
+    public void setVideo(Video value) {\r
+        this.video = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sound property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Sound }\r
+     *     \r
+     */\r
+    public Sound getSound() {\r
+        return sound;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sound property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Sound }\r
+     *     \r
+     */\r
+    public void setSound(Sound value) {\r
+        this.sound = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the link property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Link }\r
+     *     \r
+     */\r
+    public Link getLink() {\r
+        return link;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the link property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Link }\r
+     *     \r
+     */\r
+    public void setLink(Link value) {\r
+        this.link = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Product.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Product.java
new file mode 100644 (file)
index 0000000..a988d61
--- /dev/null
@@ -0,0 +1,123 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">\r
+ *       &lt;attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="lang" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "value"\r
+})\r
+@XmlRootElement(name = "product")\r
+public class Product {\r
+\r
+    @XmlValue\r
+    protected String value;\r
+    @XmlAttribute(name = "version", required = true)\r
+    protected String version;\r
+    @XmlAttribute(name = "lang")\r
+    protected String lang;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setValue(String value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the version property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getVersion() {\r
+        return version;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the version property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setVersion(String value) {\r
+        this.version = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the lang property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLang() {\r
+        return lang;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the lang property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLang(String value) {\r
+        this.lang = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Range.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Range.java
new file mode 100644 (file)
index 0000000..a837b82
--- /dev/null
@@ -0,0 +1,94 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "")\r
+@XmlRootElement(name = "range")\r
+public class Range {\r
+\r
+    @XmlAttribute(name = "min")\r
+    protected Double min;\r
+    @XmlAttribute(name = "max")\r
+    protected Double max;\r
+\r
+    /**\r
+     * Gets the value of the min property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMin() {\r
+        return min;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the min property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMin(Double value) {\r
+        this.min = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the max property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMax() {\r
+        return max;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the max property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMax(Double value) {\r
+        this.max = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ReportBalances.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ReportBalances.java
new file mode 100644 (file)
index 0000000..8af9690
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for report_balances.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="report_balances">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="beginning"/>\r
+ *     &lt;enumeration value="ending"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "report_balances")\r
+@XmlEnum\r
+public enum ReportBalances {\r
+\r
+    @XmlEnumValue("beginning")\r
+    BEGINNING("beginning"),\r
+    @XmlEnumValue("ending")\r
+    ENDING("ending");\r
+    private final String value;\r
+\r
+    ReportBalances(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static ReportBalances fromValue(String v) {\r
+        for (ReportBalances c: ReportBalances.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ReportFlows.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ReportFlows.java
new file mode 100644 (file)
index 0000000..ee6112e
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for report_flows.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="report_flows">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="instantaneous"/>\r
+ *     &lt;enumeration value="summed"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "report_flows")\r
+@XmlEnum\r
+public enum ReportFlows {\r
+\r
+    @XmlEnumValue("instantaneous")\r
+    INSTANTANEOUS("instantaneous"),\r
+    @XmlEnumValue("summed")\r
+    SUMMED("summed");\r
+    private final String value;\r
+\r
+    ReportFlows(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static ReportFlows fromValue(String v) {\r
+        for (ReportFlows c: ReportFlows.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ResetTo.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ResetTo.java
new file mode 100644 (file)
index 0000000..6cfd3f9
--- /dev/null
@@ -0,0 +1,88 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>double">\r
+ *       &lt;attribute name="after" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}after_choices" />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "value"\r
+})\r
+@XmlRootElement(name = "reset_to")\r
+public class ResetTo {\r
+\r
+    @XmlValue\r
+    protected double value;\r
+    @XmlAttribute(name = "after")\r
+    protected AfterChoices after;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     */\r
+    public double getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     */\r
+    public void setValue(double value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the after property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link AfterChoices }\r
+     *     \r
+     */\r
+    public AfterChoices getAfter() {\r
+        return after;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the after property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link AfterChoices }\r
+     *     \r
+     */\r
+    public void setAfter(AfterChoices value) {\r
+        this.after = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Scale.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Scale.java
new file mode 100644 (file)
index 0000000..70635c3
--- /dev/null
@@ -0,0 +1,149 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="auto" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *       &lt;attribute name="group" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "")\r
+@XmlRootElement(name = "scale")\r
+public class Scale {\r
+\r
+    @XmlAttribute(name = "min")\r
+    protected Double min;\r
+    @XmlAttribute(name = "max")\r
+    protected Double max;\r
+    @XmlAttribute(name = "auto")\r
+    protected Boolean auto;\r
+    @XmlAttribute(name = "group")\r
+    protected BigInteger group;\r
+\r
+    /**\r
+     * Gets the value of the min property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMin() {\r
+        return min;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the min property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMin(Double value) {\r
+        this.min = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the max property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMax() {\r
+        return max;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the max property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMax(Double value) {\r
+        this.max = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the auto property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public Boolean isAuto() {\r
+        return auto;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the auto property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setAuto(Boolean value) {\r
+        this.auto = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the group property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getGroup() {\r
+        return group;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the group property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setGroup(BigInteger value) {\r
+        this.group = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Shape.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Shape.java
new file mode 100644 (file)
index 0000000..424700b
--- /dev/null
@@ -0,0 +1,160 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlSchemaType;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="type" use="required">\r
+ *         &lt;simpleType>\r
+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *             &lt;enumeration value="rectangle"/>\r
+ *             &lt;enumeration value="circle"/>\r
+ *             &lt;enumeration value="name_only"/>\r
+ *           &lt;/restriction>\r
+ *         &lt;/simpleType>\r
+ *       &lt;/attribute>\r
+ *       &lt;attribute name="width" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />\r
+ *       &lt;attribute name="height" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />\r
+ *       &lt;attribute name="radius" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "")\r
+@XmlRootElement(name = "shape")\r
+public class Shape {\r
+\r
+    @XmlAttribute(name = "type", required = true)\r
+    protected String type;\r
+    @XmlAttribute(name = "width")\r
+    @XmlSchemaType(name = "anySimpleType")\r
+    protected String width;\r
+    @XmlAttribute(name = "height")\r
+    @XmlSchemaType(name = "anySimpleType")\r
+    protected String height;\r
+    @XmlAttribute(name = "radius")\r
+    @XmlSchemaType(name = "anySimpleType")\r
+    protected String radius;\r
+\r
+    /**\r
+     * Gets the value of the type property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getType() {\r
+        return type;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the type property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setType(String value) {\r
+        this.type = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setWidth(String value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setHeight(String value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the radius property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getRadius() {\r
+        return radius;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the radius property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setRadius(String value) {\r
+        this.radius = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/SimSpecs.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/SimSpecs.java
new file mode 100644 (file)
index 0000000..ffce4f3
--- /dev/null
@@ -0,0 +1,386 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="stop" type="{http://www.w3.org/2001/XMLSchema}double"/>\r
+ *         &lt;element name="start" type="{http://www.w3.org/2001/XMLSchema}double"/>\r
+ *         &lt;element name="dt" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;simpleContent>\r
+ *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>double">\r
+ *                 &lt;attribute name="reciprocal" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *               &lt;/extension>\r
+ *             &lt;/simpleContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="run" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="by" use="required">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="all"/>\r
+ *                       &lt;enumeration value="group"/>\r
+ *                       &lt;enumeration value="module"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/all>\r
+ *       &lt;attribute name="time_units" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}time_unit_type" default="" />\r
+ *       &lt;attribute name="method" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}method_type" default="euler" />\r
+ *       &lt;attribute name="pause" type="{http://www.w3.org/2001/XMLSchema}double" default="INF" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "sim_specs")\r
+public class SimSpecs {\r
+\r
+    protected double stop;\r
+    protected double start;\r
+    @XmlElement(defaultValue = "1")\r
+    protected SimSpecs.Dt dt;\r
+    protected SimSpecs.Run run;\r
+    @XmlAttribute(name = "time_units")\r
+    protected String timeUnits;\r
+    @XmlAttribute(name = "method")\r
+    protected String method;\r
+    @XmlAttribute(name = "pause")\r
+    protected Double pause;\r
+\r
+    /**\r
+     * Gets the value of the stop property.\r
+     * \r
+     */\r
+    public double getStop() {\r
+        return stop;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the stop property.\r
+     * \r
+     */\r
+    public void setStop(double value) {\r
+        this.stop = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the start property.\r
+     * \r
+     */\r
+    public double getStart() {\r
+        return start;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the start property.\r
+     * \r
+     */\r
+    public void setStart(double value) {\r
+        this.start = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the dt property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link SimSpecs.Dt }\r
+     *     \r
+     */\r
+    public SimSpecs.Dt getDt() {\r
+        return dt;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the dt property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link SimSpecs.Dt }\r
+     *     \r
+     */\r
+    public void setDt(SimSpecs.Dt value) {\r
+        this.dt = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the run property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link SimSpecs.Run }\r
+     *     \r
+     */\r
+    public SimSpecs.Run getRun() {\r
+        return run;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the run property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link SimSpecs.Run }\r
+     *     \r
+     */\r
+    public void setRun(SimSpecs.Run value) {\r
+        this.run = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the timeUnits property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTimeUnits() {\r
+        if (timeUnits == null) {\r
+            return "";\r
+        } else {\r
+            return timeUnits;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the timeUnits property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTimeUnits(String value) {\r
+        this.timeUnits = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the method property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMethod() {\r
+        if (method == null) {\r
+            return "euler";\r
+        } else {\r
+            return method;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the method property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMethod(String value) {\r
+        this.method = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the pause property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public double getPause() {\r
+        if (pause == null) {\r
+            return java.lang.Double.POSITIVE_INFINITY;\r
+        } else {\r
+            return pause;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the pause property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setPause(Double value) {\r
+        this.pause = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;simpleContent>\r
+     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>double">\r
+     *       &lt;attribute name="reciprocal" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *     &lt;/extension>\r
+     *   &lt;/simpleContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "value"\r
+    })\r
+    public static class Dt {\r
+\r
+        @XmlValue\r
+        protected double value;\r
+        @XmlAttribute(name = "reciprocal")\r
+        protected Boolean reciprocal;\r
+\r
+        /**\r
+         * Gets the value of the value property.\r
+         * \r
+         */\r
+        public double getValue() {\r
+            return value;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the value property.\r
+         * \r
+         */\r
+        public void setValue(double value) {\r
+            this.value = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the reciprocal property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isReciprocal() {\r
+            if (reciprocal == null) {\r
+                return false;\r
+            } else {\r
+                return reciprocal;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the reciprocal property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setReciprocal(Boolean value) {\r
+            this.reciprocal = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="by" use="required">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="all"/>\r
+     *             &lt;enumeration value="group"/>\r
+     *             &lt;enumeration value="module"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Run {\r
+\r
+        @XmlAttribute(name = "by", required = true)\r
+        protected String by;\r
+\r
+        /**\r
+         * Gets the value of the by property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBy() {\r
+            return by;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the by property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBy(String value) {\r
+            this.by = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Slider.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Slider.java
new file mode 100644 (file)
index 0000000..a5c2643
--- /dev/null
@@ -0,0 +1,986 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="entity">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}reset_to" minOccurs="0"/>\r
+ *       &lt;/all>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="show_number" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="show_min_max" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="precision" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "slider")\r
+public class Slider {\r
+\r
+    @XmlElement(required = true)\r
+    protected Slider.Entity entity;\r
+    @XmlElement(name = "reset_to")\r
+    protected ResetTo resetTo;\r
+    @XmlAttribute(name = "show_name")\r
+    protected Boolean showName;\r
+    @XmlAttribute(name = "show_number")\r
+    protected Boolean showNumber;\r
+    @XmlAttribute(name = "show_min_max")\r
+    protected Boolean showMinMax;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "min")\r
+    protected Double min;\r
+    @XmlAttribute(name = "max")\r
+    protected Double max;\r
+    @XmlAttribute(name = "precision")\r
+    protected Double precision;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the entity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Slider.Entity }\r
+     *     \r
+     */\r
+    public Slider.Entity getEntity() {\r
+        return entity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the entity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Slider.Entity }\r
+     *     \r
+     */\r
+    public void setEntity(Slider.Entity value) {\r
+        this.entity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the resetTo property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link ResetTo }\r
+     *     \r
+     */\r
+    public ResetTo getResetTo() {\r
+        return resetTo;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the resetTo property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link ResetTo }\r
+     *     \r
+     */\r
+    public void setResetTo(ResetTo value) {\r
+        this.resetTo = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showName property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowName() {\r
+        if (showName == null) {\r
+            return true;\r
+        } else {\r
+            return showName;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showName property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowName(Boolean value) {\r
+        this.showName = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showNumber property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowNumber() {\r
+        if (showNumber == null) {\r
+            return true;\r
+        } else {\r
+            return showNumber;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showNumber property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowNumber(Boolean value) {\r
+        this.showNumber = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showMinMax property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowMinMax() {\r
+        if (showMinMax == null) {\r
+            return true;\r
+        } else {\r
+            return showMinMax;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showMinMax property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowMinMax(Boolean value) {\r
+        this.showMinMax = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the min property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMin() {\r
+        return min;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the min property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMin(Double value) {\r
+        this.min = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the max property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getMax() {\r
+        return max;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the max property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setMax(Double value) {\r
+        this.max = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the precision property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getPrecision() {\r
+        return precision;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the precision property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setPrecision(Double value) {\r
+        this.precision = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Entity {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+        @XmlAttribute(name = "index")\r
+        protected String index;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the index property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getIndex() {\r
+            return index;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the index property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setIndex(String value) {\r
+            this.index = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Sound.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Sound.java
new file mode 100644 (file)
index 0000000..ec3a502
--- /dev/null
@@ -0,0 +1,96 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">\r
+ *       &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "value"\r
+})\r
+@XmlRootElement(name = "sound")\r
+public class Sound {\r
+\r
+    @XmlValue\r
+    protected String value;\r
+    @XmlAttribute(name = "resource")\r
+    protected String resource;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setValue(String value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the resource property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getResource() {\r
+        return resource;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the resource property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setResource(String value) {\r
+        this.resource = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StackedContainer.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StackedContainer.java
new file mode 100644 (file)
index 0000000..29dc91a
--- /dev/null
@@ -0,0 +1,151 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;extension base="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}view_content_type">\r
+ *       &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *       &lt;attribute name="visible_index" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+ *     &lt;/extension>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "")\r
+@XmlRootElement(name = "stacked_container")\r
+public class StackedContainer\r
+    extends ViewContentType\r
+{\r
+\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "uid")\r
+    protected Integer uid;\r
+    @XmlAttribute(name = "visible_index")\r
+    protected BigInteger visibleIndex;\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uid property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getUid() {\r
+        return uid;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uid property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setUid(Integer value) {\r
+        this.uid = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the visibleIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getVisibleIndex() {\r
+        return visibleIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the visibleIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setVisibleIndex(BigInteger value) {\r
+        this.visibleIndex = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardBorderWidthType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardBorderWidthType.java
new file mode 100644 (file)
index 0000000..625b91f
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for standard_border_width_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="standard_border_width_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="thin"/>\r
+ *     &lt;enumeration value="thick"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "standard_border_width_type")\r
+@XmlEnum\r
+public enum StandardBorderWidthType {\r
+\r
+    @XmlEnumValue("thin")\r
+    THIN("thin"),\r
+    @XmlEnumValue("thick")\r
+    THICK("thick");\r
+    private final String value;\r
+\r
+    StandardBorderWidthType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static StandardBorderWidthType fromValue(String v) {\r
+        for (StandardBorderWidthType c: StandardBorderWidthType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardColorType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardColorType.java
new file mode 100644 (file)
index 0000000..de02795
--- /dev/null
@@ -0,0 +1,100 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for standard_color_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="standard_color_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="aqua"/>\r
+ *     &lt;enumeration value="black"/>\r
+ *     &lt;enumeration value="blue"/>\r
+ *     &lt;enumeration value="fuchsia"/>\r
+ *     &lt;enumeration value="gray"/>\r
+ *     &lt;enumeration value="green"/>\r
+ *     &lt;enumeration value="lime"/>\r
+ *     &lt;enumeration value="maroon"/>\r
+ *     &lt;enumeration value="navy"/>\r
+ *     &lt;enumeration value="olive"/>\r
+ *     &lt;enumeration value="purple"/>\r
+ *     &lt;enumeration value="red"/>\r
+ *     &lt;enumeration value="silver"/>\r
+ *     &lt;enumeration value="teal"/>\r
+ *     &lt;enumeration value="white"/>\r
+ *     &lt;enumeration value="yellow"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "standard_color_type")\r
+@XmlEnum\r
+public enum StandardColorType {\r
+\r
+    @XmlEnumValue("aqua")\r
+    AQUA("aqua"),\r
+    @XmlEnumValue("black")\r
+    BLACK("black"),\r
+    @XmlEnumValue("blue")\r
+    BLUE("blue"),\r
+    @XmlEnumValue("fuchsia")\r
+    FUCHSIA("fuchsia"),\r
+    @XmlEnumValue("gray")\r
+    GRAY("gray"),\r
+    @XmlEnumValue("green")\r
+    GREEN("green"),\r
+    @XmlEnumValue("lime")\r
+    LIME("lime"),\r
+    @XmlEnumValue("maroon")\r
+    MAROON("maroon"),\r
+    @XmlEnumValue("navy")\r
+    NAVY("navy"),\r
+    @XmlEnumValue("olive")\r
+    OLIVE("olive"),\r
+    @XmlEnumValue("purple")\r
+    PURPLE("purple"),\r
+    @XmlEnumValue("red")\r
+    RED("red"),\r
+    @XmlEnumValue("silver")\r
+    SILVER("silver"),\r
+    @XmlEnumValue("teal")\r
+    TEAL("teal"),\r
+    @XmlEnumValue("white")\r
+    WHITE("white"),\r
+    @XmlEnumValue("yellow")\r
+    YELLOW("yellow");\r
+    private final String value;\r
+\r
+    StandardColorType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static StandardColorType fromValue(String v) {\r
+        for (StandardColorType c: StandardColorType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardMethodType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardMethodType.java
new file mode 100644 (file)
index 0000000..77a140e
--- /dev/null
@@ -0,0 +1,67 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for standard_method_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="standard_method_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="euler"/>\r
+ *     &lt;enumeration value="rk2"/>\r
+ *     &lt;enumeration value="rk2_auto"/>\r
+ *     &lt;enumeration value="rk4"/>\r
+ *     &lt;enumeration value="rk4_auto"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "standard_method_type")\r
+@XmlEnum\r
+public enum StandardMethodType {\r
+\r
+    @XmlEnumValue("euler")\r
+    EULER("euler"),\r
+    @XmlEnumValue("rk2")\r
+    RK_2("rk2"),\r
+    @XmlEnumValue("rk2_auto")\r
+    RK_2_AUTO("rk2_auto"),\r
+    @XmlEnumValue("rk4")\r
+    RK_4("rk4"),\r
+    @XmlEnumValue("rk4_auto")\r
+    RK_4_AUTO("rk4_auto");\r
+    private final String value;\r
+\r
+    StandardMethodType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static StandardMethodType fromValue(String v) {\r
+        for (StandardMethodType c: StandardMethodType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardTimeUnitType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StandardTimeUnitType.java
new file mode 100644 (file)
index 0000000..594a0a5
--- /dev/null
@@ -0,0 +1,85 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for standard_time_unit_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="standard_time_unit_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="day"/>\r
+ *     &lt;enumeration value="hour"/>\r
+ *     &lt;enumeration value="microsecond"/>\r
+ *     &lt;enumeration value="millisecond"/>\r
+ *     &lt;enumeration value="minute"/>\r
+ *     &lt;enumeration value="month"/>\r
+ *     &lt;enumeration value="nanosecond"/>\r
+ *     &lt;enumeration value="quarter"/>\r
+ *     &lt;enumeration value="second"/>\r
+ *     &lt;enumeration value="week"/>\r
+ *     &lt;enumeration value="year"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "standard_time_unit_type")\r
+@XmlEnum\r
+public enum StandardTimeUnitType {\r
+\r
+    @XmlEnumValue("day")\r
+    DAY("day"),\r
+    @XmlEnumValue("hour")\r
+    HOUR("hour"),\r
+    @XmlEnumValue("microsecond")\r
+    MICROSECOND("microsecond"),\r
+    @XmlEnumValue("millisecond")\r
+    MILLISECOND("millisecond"),\r
+    @XmlEnumValue("minute")\r
+    MINUTE("minute"),\r
+    @XmlEnumValue("month")\r
+    MONTH("month"),\r
+    @XmlEnumValue("nanosecond")\r
+    NANOSECOND("nanosecond"),\r
+    @XmlEnumValue("quarter")\r
+    QUARTER("quarter"),\r
+    @XmlEnumValue("second")\r
+    SECOND("second"),\r
+    @XmlEnumValue("week")\r
+    WEEK("week"),\r
+    @XmlEnumValue("year")\r
+    YEAR("year");\r
+    private final String value;\r
+\r
+    StandardTimeUnitType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static StandardTimeUnitType fromValue(String v) {\r
+        for (StandardTimeUnitType c: StandardTimeUnitType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Stock.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Stock.java
new file mode 100644 (file)
index 0000000..e25216b
--- /dev/null
@@ -0,0 +1,372 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded">\r
+ *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="units" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element name="doc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}dimensions" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}scale" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}range" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format" minOccurs="0"/>\r
+ *         &lt;element name="inflow" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element name="outflow" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element name="queue" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type" minOccurs="0"/>\r
+ *         &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}conveyor" minOccurs="0"/>\r
+ *         &lt;element name="element" maxOccurs="unbounded">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice maxOccurs="unbounded">\r
+ *                   &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+ *                   &lt;element name="inflow" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *                   &lt;element name="outflow" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+ *                   &lt;element name="queue" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type" minOccurs="0"/>\r
+ *                   &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}conveyor" minOccurs="0"/>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attribute name="subscript" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="access" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}access_type" />\r
+ *       &lt;attribute name="autoexport" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="subscript" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "eqnOrMathmlOrUnits"\r
+})\r
+@XmlRootElement(name = "stock")\r
+public class Stock {\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "non_negative", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "queue", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "eqn", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "mathml", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "units", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gf", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Gf.class, required = false),\r
+        @XmlElementRef(name = "outflow", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "format", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Format.class, required = false),\r
+        @XmlElementRef(name = "scale", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Scale.class, required = false),\r
+        @XmlElementRef(name = "range", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Range.class, required = false),\r
+        @XmlElementRef(name = "event_poster", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = EventPoster.class, required = false),\r
+        @XmlElementRef(name = "doc", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "inflow", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "conveyor", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Conveyor.class, required = false),\r
+        @XmlElementRef(name = "element", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "dimensions", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Dimensions.class, required = false)\r
+    })\r
+    protected List<Object> eqnOrMathmlOrUnits;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "access")\r
+    protected AccessType access;\r
+    @XmlAttribute(name = "autoexport")\r
+    protected Boolean autoexport;\r
+    @XmlAttribute(name = "subscript")\r
+    protected String subscript;\r
+\r
+    /**\r
+     * Gets the value of the eqnOrMathmlOrUnits property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the eqnOrMathmlOrUnits property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEqnOrMathmlOrUnits().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Gf }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Format }\r
+     * {@link Scale }\r
+     * {@link Range }\r
+     * {@link EventPoster }\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+     * {@link Conveyor }\r
+     * {@link JAXBElement }{@code <}{@link Stock.Element }{@code >}\r
+     * {@link Dimensions }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getEqnOrMathmlOrUnits() {\r
+        if (eqnOrMathmlOrUnits == null) {\r
+            eqnOrMathmlOrUnits = new ArrayList<Object>();\r
+        }\r
+        return this.eqnOrMathmlOrUnits;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the access property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link AccessType }\r
+     *     \r
+     */\r
+    public AccessType getAccess() {\r
+        return access;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the access property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link AccessType }\r
+     *     \r
+     */\r
+    public void setAccess(AccessType value) {\r
+        this.access = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the autoexport property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isAutoexport() {\r
+        if (autoexport == null) {\r
+            return false;\r
+        } else {\r
+            return autoexport;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the autoexport property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setAutoexport(Boolean value) {\r
+        this.autoexport = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the subscript property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getSubscript() {\r
+        return subscript;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the subscript property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setSubscript(String value) {\r
+        this.subscript = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice maxOccurs="unbounded">\r
+     *         &lt;element name="eqn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element name="mathml" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}event_poster" minOccurs="0"/>\r
+     *         &lt;element name="inflow" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+     *         &lt;element name="outflow" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>\r
+     *         &lt;element name="queue" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}empty_type" minOccurs="0"/>\r
+     *         &lt;element name="non_negative" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}boolean_or_empty_type" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}conveyor" minOccurs="0"/>\r
+     *       &lt;/choice>\r
+     *       &lt;attribute name="subscript" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "eqnOrMathmlOrGf"\r
+    })\r
+    public static class Element {\r
+\r
+        @XmlElementRefs({\r
+            @XmlElementRef(name = "non_negative", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "mathml", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "event_poster", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = EventPoster.class, required = false),\r
+            @XmlElementRef(name = "queue", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "eqn", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "inflow", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false),\r
+            @XmlElementRef(name = "conveyor", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Conveyor.class, required = false),\r
+            @XmlElementRef(name = "gf", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = Gf.class, required = false),\r
+            @XmlElementRef(name = "outflow", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false)\r
+        })\r
+        protected List<Object> eqnOrMathmlOrGf;\r
+        @XmlAttribute(name = "subscript", required = true)\r
+        protected String subscript;\r
+\r
+        /**\r
+         * Gets the value of the eqnOrMathmlOrGf property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the eqnOrMathmlOrGf property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getEqnOrMathmlOrGf().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link JAXBElement }{@code <}{@link BooleanOrEmptyType }{@code >}\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * {@link EventPoster }\r
+         * {@link JAXBElement }{@code <}{@link EmptyType }{@code >}\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * {@link Conveyor }\r
+         * {@link Gf }\r
+         * {@link JAXBElement }{@code <}{@link String }{@code >}\r
+         * \r
+         * \r
+         */\r
+        public List<Object> getEqnOrMathmlOrGf() {\r
+            if (eqnOrMathmlOrGf == null) {\r
+                eqnOrMathmlOrGf = new ArrayList<Object>();\r
+            }\r
+            return this.eqnOrMathmlOrGf;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the subscript property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getSubscript() {\r
+            return subscript;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the subscript property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setSubscript(String value) {\r
+            this.subscript = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Style.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Style.java
new file mode 100644 (file)
index 0000000..3b875a0
--- /dev/null
@@ -0,0 +1,642 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="stock" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_type" minOccurs="0"/>\r
+ *         &lt;element name="flow" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_type" minOccurs="0"/>\r
+ *         &lt;element name="aux" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_type" minOccurs="0"/>\r
+ *         &lt;element name="connector" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_type" minOccurs="0"/>\r
+ *         &lt;element name="module" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_type" minOccurs="0"/>\r
+ *         &lt;element name="group" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_type" minOccurs="0"/>\r
+ *       &lt;/all>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "style")\r
+public class Style {\r
+\r
+    protected StyleType stock;\r
+    protected StyleType flow;\r
+    protected StyleType aux;\r
+    protected StyleType connector;\r
+    protected StyleType module;\r
+    protected StyleType group;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the stock property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public StyleType getStock() {\r
+        return stock;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the stock property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public void setStock(StyleType value) {\r
+        this.stock = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the flow property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public StyleType getFlow() {\r
+        return flow;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the flow property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public void setFlow(StyleType value) {\r
+        this.flow = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the aux property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public StyleType getAux() {\r
+        return aux;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the aux property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public void setAux(StyleType value) {\r
+        this.aux = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the connector property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public StyleType getConnector() {\r
+        return connector;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the connector property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public void setConnector(StyleType value) {\r
+        this.connector = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the module property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public StyleType getModule() {\r
+        return module;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the module property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public void setModule(StyleType value) {\r
+        this.module = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the group property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public StyleType getGroup() {\r
+        return group;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the group property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link StyleType }\r
+     *     \r
+     */\r
+    public void setGroup(StyleType value) {\r
+        this.group = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StyleType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/StyleType.java
new file mode 100644 (file)
index 0000000..fbe3fcb
--- /dev/null
@@ -0,0 +1,585 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for style_type complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="style_type">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "style_type")\r
+public class StyleType {\r
+\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Switch.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Switch.java
new file mode 100644 (file)
index 0000000..8e888de
--- /dev/null
@@ -0,0 +1,932 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;all>\r
+ *         &lt;element name="entity">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}reset_to" minOccurs="0"/>\r
+ *       &lt;/all>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="clicking_sound" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="switch_style" default="toggle">\r
+ *         &lt;simpleType>\r
+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *             &lt;enumeration value="toggle"/>\r
+ *             &lt;enumeration value="push_button"/>\r
+ *           &lt;/restriction>\r
+ *         &lt;/simpleType>\r
+ *       &lt;/attribute>\r
+ *       &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+\r
+})\r
+@XmlRootElement(name = "switch")\r
+public class Switch {\r
+\r
+    @XmlElement(required = true)\r
+    protected Switch.Entity entity;\r
+    @XmlElement(name = "reset_to")\r
+    protected ResetTo resetTo;\r
+    @XmlAttribute(name = "show_name")\r
+    protected Boolean showName;\r
+    @XmlAttribute(name = "clicking_sound")\r
+    protected Boolean clickingSound;\r
+    @XmlAttribute(name = "switch_style")\r
+    protected String switchStyle;\r
+    @XmlAttribute(name = "uid", required = true)\r
+    protected int uid;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the entity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Switch.Entity }\r
+     *     \r
+     */\r
+    public Switch.Entity getEntity() {\r
+        return entity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the entity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Switch.Entity }\r
+     *     \r
+     */\r
+    public void setEntity(Switch.Entity value) {\r
+        this.entity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the resetTo property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link ResetTo }\r
+     *     \r
+     */\r
+    public ResetTo getResetTo() {\r
+        return resetTo;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the resetTo property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link ResetTo }\r
+     *     \r
+     */\r
+    public void setResetTo(ResetTo value) {\r
+        this.resetTo = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the showName property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isShowName() {\r
+        if (showName == null) {\r
+            return false;\r
+        } else {\r
+            return showName;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the showName property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setShowName(Boolean value) {\r
+        this.showName = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the clickingSound property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isClickingSound() {\r
+        if (clickingSound == null) {\r
+            return false;\r
+        } else {\r
+            return clickingSound;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the clickingSound property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setClickingSound(Boolean value) {\r
+        this.clickingSound = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the switchStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getSwitchStyle() {\r
+        if (switchStyle == null) {\r
+            return "toggle";\r
+        } else {\r
+            return switchStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the switchStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setSwitchStyle(String value) {\r
+        this.switchStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uid property.\r
+     * \r
+     */\r
+    public int getUid() {\r
+        return uid;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uid property.\r
+     * \r
+     */\r
+    public void setUid(int value) {\r
+        this.uid = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class Entity {\r
+\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+        @XmlAttribute(name = "index")\r
+        protected String index;\r
+        @XmlAttribute(name = "value")\r
+        protected Double value;\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the index property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getIndex() {\r
+            return index;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the index property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setIndex(String value) {\r
+            this.index = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the value property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getValue() {\r
+            return value;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the value property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setValue(Double value) {\r
+            this.value = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/SwitchAction.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/SwitchAction.java
new file mode 100644 (file)
index 0000000..be6762b
--- /dev/null
@@ -0,0 +1,181 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}entity"/>\r
+ *         &lt;element name="group">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}double"/>\r
+ *                 &lt;/all>\r
+ *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "entity",\r
+    "group"\r
+})\r
+@XmlRootElement(name = "switch_action")\r
+public class SwitchAction {\r
+\r
+    protected Entity entity;\r
+    protected SwitchAction.Group group;\r
+\r
+    /**\r
+     * Gets the value of the entity property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Entity }\r
+     *     \r
+     */\r
+    public Entity getEntity() {\r
+        return entity;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the entity property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Entity }\r
+     *     \r
+     */\r
+    public void setEntity(Entity value) {\r
+        this.entity = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the group property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link SwitchAction.Group }\r
+     *     \r
+     */\r
+    public SwitchAction.Group getGroup() {\r
+        return group;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the group property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link SwitchAction.Group }\r
+     *     \r
+     */\r
+    public void setGroup(SwitchAction.Group value) {\r
+        this.group = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}double"/>\r
+     *       &lt;/all>\r
+     *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Group {\r
+\r
+        protected double value;\r
+        @XmlAttribute(name = "name", required = true)\r
+        protected String name;\r
+\r
+        /**\r
+         * Gets the value of the value property.\r
+         * \r
+         */\r
+        public double getValue() {\r
+            return value;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the value property.\r
+         * \r
+         */\r
+        public void setValue(double value) {\r
+            this.value = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TableItemType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TableItemType.java
new file mode 100644 (file)
index 0000000..e03bb6b
--- /dev/null
@@ -0,0 +1,61 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for table_item_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="table_item_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="variable"/>\r
+ *     &lt;enumeration value="space"/>\r
+ *     &lt;enumeration value="time"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "table_item_type")\r
+@XmlEnum\r
+public enum TableItemType {\r
+\r
+    @XmlEnumValue("variable")\r
+    VARIABLE("variable"),\r
+    @XmlEnumValue("space")\r
+    SPACE("space"),\r
+    @XmlEnumValue("time")\r
+    TIME("time");\r
+    private final String value;\r
+\r
+    TableItemType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static TableItemType fromValue(String v) {\r
+        for (TableItemType c: TableItemType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TextAlign.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TextAlign.java
new file mode 100644 (file)
index 0000000..9c74e8a
--- /dev/null
@@ -0,0 +1,61 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for text_align.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="text_align">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="left"/>\r
+ *     &lt;enumeration value="right"/>\r
+ *     &lt;enumeration value="center"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "text_align")\r
+@XmlEnum\r
+public enum TextAlign {\r
+\r
+    @XmlEnumValue("left")\r
+    LEFT("left"),\r
+    @XmlEnumValue("right")\r
+    RIGHT("right"),\r
+    @XmlEnumValue("center")\r
+    CENTER("center");\r
+    private final String value;\r
+\r
+    TextAlign(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static TextAlign fromValue(String v) {\r
+        for (TextAlign c: TextAlign.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TextBox.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TextBox.java
new file mode 100644 (file)
index 0000000..a0ee4f9
--- /dev/null
@@ -0,0 +1,722 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *       &lt;attribute name="appearance" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}transparency_type" />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "value"\r
+})\r
+@XmlRootElement(name = "text_box")\r
+public class TextBox {\r
+\r
+    @XmlValue\r
+    protected String value;\r
+    @XmlAttribute(name = "uid")\r
+    protected Integer uid;\r
+    @XmlAttribute(name = "appearance")\r
+    protected TransparencyType appearance;\r
+    @XmlAttribute(name = "x")\r
+    protected Double x;\r
+    @XmlAttribute(name = "y")\r
+    protected Double y;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "label_side")\r
+    protected String labelSide;\r
+    @XmlAttribute(name = "label_angle")\r
+    protected Double labelAngle;\r
+    @XmlAttribute(name = "border_width")\r
+    protected String borderWidth;\r
+    @XmlAttribute(name = "border_color")\r
+    protected String borderColor;\r
+    @XmlAttribute(name = "border_style")\r
+    protected String borderStyle;\r
+    @XmlAttribute(name = "font_family")\r
+    protected String fontFamily;\r
+    @XmlAttribute(name = "font_style")\r
+    protected String fontStyle;\r
+    @XmlAttribute(name = "font_weight")\r
+    protected String fontWeight;\r
+    @XmlAttribute(name = "text_decoration")\r
+    protected String textDecoration;\r
+    @XmlAttribute(name = "text_align")\r
+    protected TextAlign textAlign;\r
+    @XmlAttribute(name = "vertical_text_align")\r
+    protected VerticalTextAlign verticalTextAlign;\r
+    @XmlAttribute(name = "font_color")\r
+    protected String fontColor;\r
+    @XmlAttribute(name = "text_background")\r
+    protected String textBackground;\r
+    @XmlAttribute(name = "font_size")\r
+    protected String fontSize;\r
+    @XmlAttribute(name = "padding")\r
+    protected String padding;\r
+    @XmlAttribute(name = "color")\r
+    protected String color;\r
+    @XmlAttribute(name = "background")\r
+    protected String background;\r
+    @XmlAttribute(name = "z_index")\r
+    protected BigInteger zIndex;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setValue(String value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uid property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getUid() {\r
+        return uid;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uid property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setUid(Integer value) {\r
+        this.uid = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the appearance property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TransparencyType }\r
+     *     \r
+     */\r
+    public TransparencyType getAppearance() {\r
+        return appearance;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the appearance property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TransparencyType }\r
+     *     \r
+     */\r
+    public void setAppearance(TransparencyType value) {\r
+        this.appearance = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setX(Double value) {\r
+        this.x = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setY(Double value) {\r
+        this.y = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelSide property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getLabelSide() {\r
+        return labelSide;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelSide property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLabelSide(String value) {\r
+        this.labelSide = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the labelAngle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getLabelAngle() {\r
+        return labelAngle;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the labelAngle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setLabelAngle(Double value) {\r
+        this.labelAngle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderWidth property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderWidth() {\r
+        return borderWidth;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderWidth property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderWidth(String value) {\r
+        this.borderWidth = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderColor() {\r
+        return borderColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderColor(String value) {\r
+        this.borderColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the borderStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBorderStyle() {\r
+        if (borderStyle == null) {\r
+            return "none";\r
+        } else {\r
+            return borderStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the borderStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBorderStyle(String value) {\r
+        this.borderStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontFamily property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontFamily() {\r
+        return fontFamily;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontFamily property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontFamily(String value) {\r
+        this.fontFamily = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontStyle property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontStyle() {\r
+        if (fontStyle == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontStyle;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontStyle property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontStyle(String value) {\r
+        this.fontStyle = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontWeight property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontWeight() {\r
+        if (fontWeight == null) {\r
+            return "normal";\r
+        } else {\r
+            return fontWeight;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontWeight property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontWeight(String value) {\r
+        this.fontWeight = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textDecoration property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextDecoration() {\r
+        if (textDecoration == null) {\r
+            return "normal";\r
+        } else {\r
+            return textDecoration;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textDecoration property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextDecoration(String value) {\r
+        this.textDecoration = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public TextAlign getTextAlign() {\r
+        if (textAlign == null) {\r
+            return TextAlign.LEFT;\r
+        } else {\r
+            return textAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link TextAlign }\r
+     *     \r
+     */\r
+    public void setTextAlign(TextAlign value) {\r
+        this.textAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the verticalTextAlign property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public VerticalTextAlign getVerticalTextAlign() {\r
+        if (verticalTextAlign == null) {\r
+            return VerticalTextAlign.CENTER;\r
+        } else {\r
+            return verticalTextAlign;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the verticalTextAlign property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link VerticalTextAlign }\r
+     *     \r
+     */\r
+    public void setVerticalTextAlign(VerticalTextAlign value) {\r
+        this.verticalTextAlign = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontColor property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontColor() {\r
+        return fontColor;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontColor property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontColor(String value) {\r
+        this.fontColor = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the textBackground property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTextBackground() {\r
+        return textBackground;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the textBackground property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTextBackground(String value) {\r
+        this.textBackground = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fontSize property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFontSize() {\r
+        return fontSize;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fontSize property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFontSize(String value) {\r
+        this.fontSize = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the padding property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getPadding() {\r
+        return padding;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the padding property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setPadding(String value) {\r
+        this.padding = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the color property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getColor() {\r
+        return color;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the color property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setColor(String value) {\r
+        this.color = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the background property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getBackground() {\r
+        return background;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the background property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setBackground(String value) {\r
+        this.background = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the zIndex property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public BigInteger getZIndex() {\r
+        return zIndex;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the zIndex property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigInteger }\r
+     *     \r
+     */\r
+    public void setZIndex(BigInteger value) {\r
+        this.zIndex = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TransparencyType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/TransparencyType.java
new file mode 100644 (file)
index 0000000..bc4319b
--- /dev/null
@@ -0,0 +1,58 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for transparency_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="transparency_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="opaque"/>\r
+ *     &lt;enumeration value="transparent"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "transparency_type")\r
+@XmlEnum\r
+public enum TransparencyType {\r
+\r
+    @XmlEnumValue("opaque")\r
+    OPAQUE("opaque"),\r
+    @XmlEnumValue("transparent")\r
+    TRANSPARENT("transparent");\r
+    private final String value;\r
+\r
+    TransparencyType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static TransparencyType fromValue(String v) {\r
+        for (TransparencyType c: TransparencyType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Variables.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Variables.java
new file mode 100644 (file)
index 0000000..0e6cd2e
--- /dev/null
@@ -0,0 +1,96 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}stock" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}flow" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}auxiliary" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}gf" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}group" maxOccurs="unbounded" minOccurs="0"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}module" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/choice>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "stockOrFlowOrAuxiliary"\r
+})\r
+@XmlRootElement(name = "variables")\r
+public class Variables {\r
+\r
+    @XmlElements({\r
+        @XmlElement(name = "stock", type = Stock.class),\r
+        @XmlElement(name = "flow", type = Flow.class),\r
+        @XmlElement(name = "aux", type = Auxiliary.class),\r
+        @XmlElement(name = "gf", type = Gf.class),\r
+        @XmlElement(name = "group", type = Group.class),\r
+        @XmlElement(name = "module", type = Module.class)\r
+    })\r
+    protected List<Object> stockOrFlowOrAuxiliary;\r
+\r
+    /**\r
+     * Gets the value of the stockOrFlowOrAuxiliary property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the stockOrFlowOrAuxiliary property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getStockOrFlowOrAuxiliary().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Stock }\r
+     * {@link Flow }\r
+     * {@link Auxiliary }\r
+     * {@link Gf }\r
+     * {@link Group }\r
+     * {@link Module }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getStockOrFlowOrAuxiliary() {\r
+        if (stockOrFlowOrAuxiliary == null) {\r
+            stockOrFlowOrAuxiliary = new ArrayList<Object>();\r
+        }\r
+        return this.stockOrFlowOrAuxiliary;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/VerticalTextAlign.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/VerticalTextAlign.java
new file mode 100644 (file)
index 0000000..998219c
--- /dev/null
@@ -0,0 +1,61 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for vertical_text_align.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="vertical_text_align">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="top"/>\r
+ *     &lt;enumeration value="bottom"/>\r
+ *     &lt;enumeration value="center"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "vertical_text_align")\r
+@XmlEnum\r
+public enum VerticalTextAlign {\r
+\r
+    @XmlEnumValue("top")\r
+    TOP("top"),\r
+    @XmlEnumValue("bottom")\r
+    BOTTOM("bottom"),\r
+    @XmlEnumValue("center")\r
+    CENTER("center");\r
+    private final String value;\r
+\r
+    VerticalTextAlign(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static VerticalTextAlign fromValue(String v) {\r
+        for (VerticalTextAlign c: VerticalTextAlign.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Video.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Video.java
new file mode 100644 (file)
index 0000000..460dc47
--- /dev/null
@@ -0,0 +1,181 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;simpleContent>\r
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">\r
+ *       &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *       &lt;attribute name="size_to_parent" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="width" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *       &lt;attribute name="height" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *     &lt;/extension>\r
+ *   &lt;/simpleContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "value"\r
+})\r
+@XmlRootElement(name = "video")\r
+public class Video {\r
+\r
+    @XmlValue\r
+    protected String value;\r
+    @XmlAttribute(name = "resource")\r
+    protected String resource;\r
+    @XmlAttribute(name = "size_to_parent")\r
+    protected Boolean sizeToParent;\r
+    @XmlAttribute(name = "width")\r
+    protected Integer width;\r
+    @XmlAttribute(name = "height")\r
+    protected Integer height;\r
+\r
+    /**\r
+     * Gets the value of the value property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getValue() {\r
+        return value;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the value property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setValue(String value) {\r
+        this.value = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the resource property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getResource() {\r
+        return resource;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the resource property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setResource(String value) {\r
+        this.resource = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sizeToParent property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isSizeToParent() {\r
+        if (sizeToParent == null) {\r
+            return false;\r
+        } else {\r
+            return sizeToParent;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sizeToParent property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setSizeToParent(Boolean value) {\r
+        this.sizeToParent = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setWidth(Integer value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public Integer getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setHeight(Integer value) {\r
+        this.height = value;\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ViewContentType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ViewContentType.java
new file mode 100644 (file)
index 0000000..84d99ae
--- /dev/null
@@ -0,0 +1,10922 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.io.Serializable;\r
+import java.math.BigInteger;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlMixed;\r
+import javax.xml.bind.annotation.XmlSeeAlso;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.XmlValue;\r
+\r
+\r
+/**\r
+ * \r
+ *         Content of a view or container\r
+ *       \r
+ * \r
+ * <p>Java class for view_content_type complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="view_content_type">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style" minOccurs="0"/>\r
+ *         &lt;element name="stock">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+ *                 &lt;/all>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="flow">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+ *                   &lt;element name="pts">\r
+ *                     &lt;complexType>\r
+ *                       &lt;complexContent>\r
+ *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                           &lt;sequence maxOccurs="unbounded">\r
+ *                             &lt;element name="pt">\r
+ *                               &lt;complexType>\r
+ *                                 &lt;complexContent>\r
+ *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                                     &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                                     &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                                   &lt;/restriction>\r
+ *                                 &lt;/complexContent>\r
+ *                               &lt;/complexType>\r
+ *                             &lt;/element>\r
+ *                           &lt;/sequence>\r
+ *                         &lt;/restriction>\r
+ *                       &lt;/complexContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                 &lt;/all>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="aux">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+ *                 &lt;/all>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="module">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+ *                 &lt;/all>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="group">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;sequence maxOccurs="unbounded" minOccurs="0">\r
+ *                   &lt;element name="item">\r
+ *                     &lt;complexType>\r
+ *                       &lt;complexContent>\r
+ *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                           &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                         &lt;/restriction>\r
+ *                       &lt;/complexContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                 &lt;/sequence>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="locked" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="connector">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element name="from">\r
+ *                     &lt;complexType>\r
+ *                       &lt;complexContent>\r
+ *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                           &lt;all minOccurs="0">\r
+ *                             &lt;element name="alias" minOccurs="0">\r
+ *                               &lt;complexType>\r
+ *                                 &lt;complexContent>\r
+ *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                                     &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                                     &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                                     &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                                   &lt;/restriction>\r
+ *                                 &lt;/complexContent>\r
+ *                               &lt;/complexType>\r
+ *                             &lt;/element>\r
+ *                           &lt;/all>\r
+ *                         &lt;/restriction>\r
+ *                       &lt;/complexContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                   &lt;element name="to" type="{http://www.w3.org/2001/XMLSchema}string"/>\r
+ *                 &lt;/all>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                 &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="angle" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="delay_mark" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                 &lt;attribute name="line_style" default="solid">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="solid"/>\r
+ *                       &lt;enumeration value="dashed"/>\r
+ *                       &lt;enumeration value="vendor specific"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="alias">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+ *                   &lt;element name="of" type="{http://www.w3.org/2001/XMLSchema}string"/>\r
+ *                 &lt;/all>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}text_box"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}graphics_frame"/>\r
+ *         &lt;element name="graph">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}plot" maxOccurs="unbounded"/>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attribute name="type" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}graph_type" default="time_series" />\r
+ *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="doc" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="show_grid" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="num_x_grid_lines" type="{http://www.w3.org/2001/XMLSchema}int" default="0" />\r
+ *                 &lt;attribute name="num_y_grid_lines" type="{http://www.w3.org/2001/XMLSchema}int" default="0" />\r
+ *                 &lt;attribute name="num_y_labels" type="{http://www.w3.org/2001/XMLSchema}int" default="0" />\r
+ *                 &lt;attribute name="x_axis_title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="right_axis_title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="right_axis_auto_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="right_axis_multi_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="left_axis_title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="left_axis_auto_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="left_axis_multi_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="plot_numbers" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                 &lt;attribute name="comparative" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                 &lt;attribute name="from" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="to" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="table">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice>\r
+ *                   &lt;element name="item" maxOccurs="unbounded">\r
+ *                     &lt;complexType>\r
+ *                       &lt;complexContent>\r
+ *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                           &lt;all>\r
+ *                             &lt;element name="entity" minOccurs="0">\r
+ *                               &lt;complexType>\r
+ *                                 &lt;complexContent>\r
+ *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                                     &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                                     &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                                   &lt;/restriction>\r
+ *                                 &lt;/complexContent>\r
+ *                               &lt;/complexType>\r
+ *                             &lt;/element>\r
+ *                           &lt;/all>\r
+ *                           &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                           &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format_attributes"/>\r
+ *                           &lt;attribute name="type" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}table_item_type" default="variable" />\r
+ *                           &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                         &lt;/restriction>\r
+ *                       &lt;/complexContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}header_style_attributes"/>\r
+ *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="doc" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="orientation" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}orientation" default="vertical" />\r
+ *                 &lt;attribute name="column_width" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                 &lt;attribute name="blank_column_width" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                 &lt;attribute name="report_interval" use="required" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_interval" />\r
+ *                 &lt;attribute name="report_balances" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_balances" default="beginning" />\r
+ *                 &lt;attribute name="report_flows" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_flows" default="instantaneous" />\r
+ *                 &lt;attribute name="comparative" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                 &lt;attribute name="wrap_text" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element name="button">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;all>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}video" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sound" minOccurs="0"/>\r
+ *                   &lt;element name="menu_action" minOccurs="0">\r
+ *                     &lt;complexType>\r
+ *                       &lt;simpleContent>\r
+ *                         &lt;extension base="&lt;http://docs.oasis-open.org/xmile/ns/XMILE/v1.0>menu_action_choices">\r
+ *                           &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                           &lt;attribute name="worksheet" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                           &lt;attribute name="all" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                           &lt;attribute name="run_name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                         &lt;/extension>\r
+ *                       &lt;/simpleContent>\r
+ *                     &lt;/complexType>\r
+ *                   &lt;/element>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}switch_action" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}popup" minOccurs="0"/>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}link" minOccurs="0"/>\r
+ *                 &lt;/all>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attribute name="transparency" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}transparency_type" default="opaque" />\r
+ *                 &lt;attribute name="style" default="square">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="square"/>\r
+ *                       &lt;enumeration value="rounded"/>\r
+ *                       &lt;enumeration value="capsule"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *                 &lt;attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="clicking_sound" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="show_number" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="show_min_max" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *                 &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}slider"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}knob"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}list_input"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}numeric_display"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}switch"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}graphical_input"/>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}stacked_container"/>\r
+ *         &lt;element name="options">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                 &lt;choice>\r
+ *                   &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}entity" maxOccurs="unbounded"/>\r
+ *                 &lt;/choice>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+ *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+ *                 &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                 &lt;attribute name="clicking_sound" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *                 &lt;attribute name="layout" default="vertical">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="vertical"/>\r
+ *                       &lt;enumeration value="horizontal"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *                 &lt;attribute name="vertical_spacing" type="{http://www.w3.org/2001/XMLSchema}int" default="2" />\r
+ *                 &lt;attribute name="horizontal_spacing" type="{http://www.w3.org/2001/XMLSchema}int" default="2" />\r
+ *                 &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *               &lt;/restriction>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="width" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *       &lt;attribute name="height" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "view_content_type", propOrder = {\r
+    "styleOrStockOrFlow"\r
+})\r
+@XmlSeeAlso({\r
+    org.simantics.sysdyn.xmile.schema.Views.View.class,\r
+    StackedContainer.class\r
+})\r
+public class ViewContentType {\r
+\r
+    @XmlElements({\r
+        @XmlElement(name = "style", type = Style.class),\r
+        @XmlElement(name = "stock", type = ViewContentType.Stock.class),\r
+        @XmlElement(name = "flow", type = ViewContentType.Flow.class),\r
+        @XmlElement(name = "aux", type = ViewContentType.Aux.class),\r
+        @XmlElement(name = "module", type = ViewContentType.Module.class),\r
+        @XmlElement(name = "group", type = ViewContentType.Group.class),\r
+        @XmlElement(name = "connector", type = ViewContentType.Connector.class),\r
+        @XmlElement(name = "alias", type = ViewContentType.Alias.class),\r
+        @XmlElement(name = "text_box", type = TextBox.class),\r
+        @XmlElement(name = "graphics_frame", type = GraphicsFrame.class),\r
+        @XmlElement(name = "graph", type = ViewContentType.Graph.class),\r
+        @XmlElement(name = "table", type = ViewContentType.Table.class),\r
+        @XmlElement(name = "button", type = ViewContentType.Button.class),\r
+        @XmlElement(name = "slider", type = Slider.class),\r
+        @XmlElement(name = "knob", type = Knob.class),\r
+        @XmlElement(name = "list_input", type = ListInput.class),\r
+        @XmlElement(name = "numeric_display", type = NumericDisplay.class),\r
+        @XmlElement(name = "switch", type = Switch.class),\r
+        @XmlElement(name = "graphical_input", type = GraphicalInput.class),\r
+        @XmlElement(name = "stacked_container", type = StackedContainer.class),\r
+        @XmlElement(name = "options", type = ViewContentType.Options.class)\r
+    })\r
+    protected List<Object> styleOrStockOrFlow;\r
+    @XmlAttribute(name = "width")\r
+    protected Double width;\r
+    @XmlAttribute(name = "height")\r
+    protected Double height;\r
+\r
+    /**\r
+     * Gets the value of the styleOrStockOrFlow property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the styleOrStockOrFlow property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getStyleOrStockOrFlow().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Style }\r
+     * {@link ViewContentType.Stock }\r
+     * {@link ViewContentType.Flow }\r
+     * {@link ViewContentType.Aux }\r
+     * {@link ViewContentType.Module }\r
+     * {@link ViewContentType.Group }\r
+     * {@link ViewContentType.Connector }\r
+     * {@link ViewContentType.Alias }\r
+     * {@link TextBox }\r
+     * {@link GraphicsFrame }\r
+     * {@link ViewContentType.Graph }\r
+     * {@link ViewContentType.Table }\r
+     * {@link ViewContentType.Button }\r
+     * {@link Slider }\r
+     * {@link Knob }\r
+     * {@link ListInput }\r
+     * {@link NumericDisplay }\r
+     * {@link Switch }\r
+     * {@link GraphicalInput }\r
+     * {@link StackedContainer }\r
+     * {@link ViewContentType.Options }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getStyleOrStockOrFlow() {\r
+        if (styleOrStockOrFlow == null) {\r
+            styleOrStockOrFlow = new ArrayList<Object>();\r
+        }\r
+        return this.styleOrStockOrFlow;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the width property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getWidth() {\r
+        return width;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the width property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setWidth(Double value) {\r
+        this.width = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the height property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public Double getHeight() {\r
+        return height;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the height property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Double }\r
+     *     \r
+     */\r
+    public void setHeight(Double value) {\r
+        this.height = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+     *         &lt;element name="of" type="{http://www.w3.org/2001/XMLSchema}string"/>\r
+     *       &lt;/all>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Alias {\r
+\r
+        protected Shape shape;\r
+        @XmlElement(required = true)\r
+        protected String of;\r
+        @XmlAttribute(name = "uid")\r
+        protected Integer uid;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+\r
+        /**\r
+         * Gets the value of the shape property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public Shape getShape() {\r
+            return shape;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the shape property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public void setShape(Shape value) {\r
+            this.shape = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the of property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getOf() {\r
+            return of;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the of property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setOf(String value) {\r
+            this.of = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the uid property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public Integer getUid() {\r
+            return uid;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the uid property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setUid(Integer value) {\r
+            this.uid = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+     *       &lt;/all>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Aux {\r
+\r
+        protected Shape shape;\r
+        @XmlAttribute(name = "name")\r
+        protected String name;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+\r
+        /**\r
+         * Gets the value of the shape property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public Shape getShape() {\r
+            return shape;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the shape property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public void setShape(Shape value) {\r
+            this.shape = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}image" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}video" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sound" minOccurs="0"/>\r
+     *         &lt;element name="menu_action" minOccurs="0">\r
+     *           &lt;complexType>\r
+     *             &lt;simpleContent>\r
+     *               &lt;extension base="&lt;http://docs.oasis-open.org/xmile/ns/XMILE/v1.0>menu_action_choices">\r
+     *                 &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                 &lt;attribute name="worksheet" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                 &lt;attribute name="all" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *                 &lt;attribute name="run_name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *               &lt;/extension>\r
+     *             &lt;/simpleContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}switch_action" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}popup" minOccurs="0"/>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}link" minOccurs="0"/>\r
+     *       &lt;/all>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attribute name="transparency" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}transparency_type" default="opaque" />\r
+     *       &lt;attribute name="style" default="square">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="square"/>\r
+     *             &lt;enumeration value="rounded"/>\r
+     *             &lt;enumeration value="capsule"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *       &lt;attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="clicking_sound" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="show_number" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="show_min_max" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Button {\r
+\r
+        protected Image image;\r
+        protected Video video;\r
+        protected Sound sound;\r
+        @XmlElement(name = "menu_action")\r
+        protected ViewContentType.Button.MenuAction menuAction;\r
+        @XmlElement(name = "switch_action")\r
+        protected SwitchAction switchAction;\r
+        protected Popup popup;\r
+        protected Link link;\r
+        @XmlAttribute(name = "transparency")\r
+        protected TransparencyType transparency;\r
+        @XmlAttribute(name = "style")\r
+        protected String style;\r
+        @XmlAttribute(name = "label")\r
+        protected String label;\r
+        @XmlAttribute(name = "clicking_sound")\r
+        protected Boolean clickingSound;\r
+        @XmlAttribute(name = "show_name")\r
+        protected Boolean showName;\r
+        @XmlAttribute(name = "show_number")\r
+        protected Boolean showNumber;\r
+        @XmlAttribute(name = "show_min_max")\r
+        protected Boolean showMinMax;\r
+        @XmlAttribute(name = "name")\r
+        protected String name;\r
+        @XmlAttribute(name = "uid")\r
+        protected Integer uid;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+\r
+        /**\r
+         * Gets the value of the image property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Image }\r
+         *     \r
+         */\r
+        public Image getImage() {\r
+            return image;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the image property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Image }\r
+         *     \r
+         */\r
+        public void setImage(Image value) {\r
+            this.image = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the video property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Video }\r
+         *     \r
+         */\r
+        public Video getVideo() {\r
+            return video;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the video property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Video }\r
+         *     \r
+         */\r
+        public void setVideo(Video value) {\r
+            this.video = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the sound property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Sound }\r
+         *     \r
+         */\r
+        public Sound getSound() {\r
+            return sound;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the sound property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Sound }\r
+         *     \r
+         */\r
+        public void setSound(Sound value) {\r
+            this.sound = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the menuAction property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link ViewContentType.Button.MenuAction }\r
+         *     \r
+         */\r
+        public ViewContentType.Button.MenuAction getMenuAction() {\r
+            return menuAction;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the menuAction property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link ViewContentType.Button.MenuAction }\r
+         *     \r
+         */\r
+        public void setMenuAction(ViewContentType.Button.MenuAction value) {\r
+            this.menuAction = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the switchAction property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link SwitchAction }\r
+         *     \r
+         */\r
+        public SwitchAction getSwitchAction() {\r
+            return switchAction;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the switchAction property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link SwitchAction }\r
+         *     \r
+         */\r
+        public void setSwitchAction(SwitchAction value) {\r
+            this.switchAction = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the popup property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Popup }\r
+         *     \r
+         */\r
+        public Popup getPopup() {\r
+            return popup;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the popup property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Popup }\r
+         *     \r
+         */\r
+        public void setPopup(Popup value) {\r
+            this.popup = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the link property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Link }\r
+         *     \r
+         */\r
+        public Link getLink() {\r
+            return link;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the link property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Link }\r
+         *     \r
+         */\r
+        public void setLink(Link value) {\r
+            this.link = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the transparency property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TransparencyType }\r
+         *     \r
+         */\r
+        public TransparencyType getTransparency() {\r
+            if (transparency == null) {\r
+                return TransparencyType.OPAQUE;\r
+            } else {\r
+                return transparency;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the transparency property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TransparencyType }\r
+         *     \r
+         */\r
+        public void setTransparency(TransparencyType value) {\r
+            this.transparency = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the style property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getStyle() {\r
+            if (style == null) {\r
+                return "square";\r
+            } else {\r
+                return style;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the style property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setStyle(String value) {\r
+            this.style = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the label property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabel() {\r
+            return label;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the label property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabel(String value) {\r
+            this.label = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the clickingSound property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isClickingSound() {\r
+            if (clickingSound == null) {\r
+                return true;\r
+            } else {\r
+                return clickingSound;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the clickingSound property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setClickingSound(Boolean value) {\r
+            this.clickingSound = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the showName property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isShowName() {\r
+            if (showName == null) {\r
+                return true;\r
+            } else {\r
+                return showName;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the showName property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setShowName(Boolean value) {\r
+            this.showName = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the showNumber property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isShowNumber() {\r
+            if (showNumber == null) {\r
+                return true;\r
+            } else {\r
+                return showNumber;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the showNumber property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setShowNumber(Boolean value) {\r
+            this.showNumber = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the showMinMax property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isShowMinMax() {\r
+            if (showMinMax == null) {\r
+                return true;\r
+            } else {\r
+                return showMinMax;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the showMinMax property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setShowMinMax(Boolean value) {\r
+            this.showMinMax = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the uid property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public Integer getUid() {\r
+            return uid;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the uid property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setUid(Integer value) {\r
+            this.uid = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;simpleContent>\r
+         *     &lt;extension base="&lt;http://docs.oasis-open.org/xmile/ns/XMILE/v1.0>menu_action_choices">\r
+         *       &lt;attribute name="resource" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *       &lt;attribute name="worksheet" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *       &lt;attribute name="all" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+         *       &lt;attribute name="run_name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *     &lt;/extension>\r
+         *   &lt;/simpleContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "", propOrder = {\r
+            "value"\r
+        })\r
+        public static class MenuAction {\r
+\r
+            @XmlValue\r
+            protected MenuActionChoices value;\r
+            @XmlAttribute(name = "resource")\r
+            protected String resource;\r
+            @XmlAttribute(name = "worksheet")\r
+            protected String worksheet;\r
+            @XmlAttribute(name = "all")\r
+            protected Boolean all;\r
+            @XmlAttribute(name = "run_name")\r
+            protected String runName;\r
+\r
+            /**\r
+             * Gets the value of the value property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link MenuActionChoices }\r
+             *     \r
+             */\r
+            public MenuActionChoices getValue() {\r
+                return value;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the value property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link MenuActionChoices }\r
+             *     \r
+             */\r
+            public void setValue(MenuActionChoices value) {\r
+                this.value = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the resource property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getResource() {\r
+                return resource;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the resource property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setResource(String value) {\r
+                this.resource = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the worksheet property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getWorksheet() {\r
+                return worksheet;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the worksheet property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setWorksheet(String value) {\r
+                this.worksheet = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the all property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link Boolean }\r
+             *     \r
+             */\r
+            public boolean isAll() {\r
+                if (all == null) {\r
+                    return false;\r
+                } else {\r
+                    return all;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the all property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link Boolean }\r
+             *     \r
+             */\r
+            public void setAll(Boolean value) {\r
+                this.all = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the runName property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getRunName() {\r
+                return runName;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the runName property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setRunName(String value) {\r
+                this.runName = value;\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element name="from">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;all minOccurs="0">\r
+     *                   &lt;element name="alias" minOccurs="0">\r
+     *                     &lt;complexType>\r
+     *                       &lt;complexContent>\r
+     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                           &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *                           &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *                           &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *                         &lt;/restriction>\r
+     *                       &lt;/complexContent>\r
+     *                     &lt;/complexType>\r
+     *                   &lt;/element>\r
+     *                 &lt;/all>\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *         &lt;element name="to" type="{http://www.w3.org/2001/XMLSchema}string"/>\r
+     *       &lt;/all>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *       &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="angle" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="delay_mark" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *       &lt;attribute name="line_style" default="solid">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="solid"/>\r
+     *             &lt;enumeration value="dashed"/>\r
+     *             &lt;enumeration value="vendor specific"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Connector {\r
+\r
+        @XmlElement(required = true)\r
+        protected ViewContentType.Connector.From from;\r
+        @XmlElement(required = true)\r
+        protected String to;\r
+        @XmlAttribute(name = "uid")\r
+        protected Integer uid;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "angle")\r
+        protected Double angle;\r
+        @XmlAttribute(name = "delay_mark")\r
+        protected Boolean delayMark;\r
+        @XmlAttribute(name = "line_style")\r
+        protected String lineStyle;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+\r
+        /**\r
+         * Gets the value of the from property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link ViewContentType.Connector.From }\r
+         *     \r
+         */\r
+        public ViewContentType.Connector.From getFrom() {\r
+            return from;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the from property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link ViewContentType.Connector.From }\r
+         *     \r
+         */\r
+        public void setFrom(ViewContentType.Connector.From value) {\r
+            this.from = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the to property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTo() {\r
+            return to;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the to property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTo(String value) {\r
+            this.to = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the uid property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public Integer getUid() {\r
+            return uid;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the uid property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setUid(Integer value) {\r
+            this.uid = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the angle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getAngle() {\r
+            return angle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the angle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setAngle(Double value) {\r
+            this.angle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the delayMark property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isDelayMark() {\r
+            if (delayMark == null) {\r
+                return false;\r
+            } else {\r
+                return delayMark;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the delayMark property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setDelayMark(Boolean value) {\r
+            this.delayMark = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the lineStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLineStyle() {\r
+            if (lineStyle == null) {\r
+                return "solid";\r
+            } else {\r
+                return lineStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the lineStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLineStyle(String value) {\r
+            this.lineStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;all minOccurs="0">\r
+         *         &lt;element name="alias" minOccurs="0">\r
+         *           &lt;complexType>\r
+         *             &lt;complexContent>\r
+         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *                 &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+         *                 &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+         *                 &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+         *               &lt;/restriction>\r
+         *             &lt;/complexContent>\r
+         *           &lt;/complexType>\r
+         *         &lt;/element>\r
+         *       &lt;/all>\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "", propOrder = {\r
+            "content"\r
+        })\r
+        public static class From {\r
+\r
+            @XmlElementRef(name = "alias", namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", type = JAXBElement.class, required = false)\r
+            @XmlMixed\r
+            protected List<Serializable> content;\r
+\r
+            /**\r
+             * Gets the value of the content property.\r
+             * \r
+             * <p>\r
+             * This accessor method returns a reference to the live list,\r
+             * not a snapshot. Therefore any modification you make to the\r
+             * returned list will be present inside the JAXB object.\r
+             * This is why there is not a <CODE>set</CODE> method for the content property.\r
+             * \r
+             * <p>\r
+             * For example, to add a new item, do as follows:\r
+             * <pre>\r
+             *    getContent().add(newItem);\r
+             * </pre>\r
+             * \r
+             * \r
+             * <p>\r
+             * Objects of the following type(s) are allowed in the list\r
+             * {@link String }\r
+             * {@link JAXBElement }{@code <}{@link ViewContentType.Connector.From.Alias }{@code >}\r
+             * \r
+             * \r
+             */\r
+            public List<Serializable> getContent() {\r
+                if (content == null) {\r
+                    content = new ArrayList<Serializable>();\r
+                }\r
+                return this.content;\r
+            }\r
+\r
+\r
+            /**\r
+             * <p>Java class for anonymous complex type.\r
+             * \r
+             * <p>The following schema fragment specifies the expected content contained within this class.\r
+             * \r
+             * <pre>\r
+             * &lt;complexType>\r
+             *   &lt;complexContent>\r
+             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+             *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+             *       &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+             *       &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+             *     &lt;/restriction>\r
+             *   &lt;/complexContent>\r
+             * &lt;/complexType>\r
+             * </pre>\r
+             * \r
+             * \r
+             */\r
+            @XmlAccessorType(XmlAccessType.FIELD)\r
+            @XmlType(name = "")\r
+            public static class Alias {\r
+\r
+                @XmlAttribute(name = "uid")\r
+                protected Integer uid;\r
+                @XmlAttribute(name = "x")\r
+                protected Double x;\r
+                @XmlAttribute(name = "y")\r
+                protected Double y;\r
+\r
+                /**\r
+                 * Gets the value of the uid property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link Integer }\r
+                 *     \r
+                 */\r
+                public Integer getUid() {\r
+                    return uid;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the uid property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link Integer }\r
+                 *     \r
+                 */\r
+                public void setUid(Integer value) {\r
+                    this.uid = value;\r
+                }\r
+\r
+                /**\r
+                 * Gets the value of the x property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public Double getX() {\r
+                    return x;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the x property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public void setX(Double value) {\r
+                    this.x = value;\r
+                }\r
+\r
+                /**\r
+                 * Gets the value of the y property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public Double getY() {\r
+                    return y;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the y property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public void setY(Double value) {\r
+                    this.y = value;\r
+                }\r
+\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+     *         &lt;element name="pts">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;sequence maxOccurs="unbounded">\r
+     *                   &lt;element name="pt">\r
+     *                     &lt;complexType>\r
+     *                       &lt;complexContent>\r
+     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                           &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *                           &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *                         &lt;/restriction>\r
+     *                       &lt;/complexContent>\r
+     *                     &lt;/complexType>\r
+     *                   &lt;/element>\r
+     *                 &lt;/sequence>\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *       &lt;/all>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Flow {\r
+\r
+        protected Shape shape;\r
+        @XmlElement(required = true)\r
+        protected ViewContentType.Flow.Pts pts;\r
+        @XmlAttribute(name = "name")\r
+        protected String name;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+\r
+        /**\r
+         * Gets the value of the shape property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public Shape getShape() {\r
+            return shape;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the shape property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public void setShape(Shape value) {\r
+            this.shape = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the pts property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link ViewContentType.Flow.Pts }\r
+         *     \r
+         */\r
+        public ViewContentType.Flow.Pts getPts() {\r
+            return pts;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the pts property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link ViewContentType.Flow.Pts }\r
+         *     \r
+         */\r
+        public void setPts(ViewContentType.Flow.Pts value) {\r
+            this.pts = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;sequence maxOccurs="unbounded">\r
+         *         &lt;element name="pt">\r
+         *           &lt;complexType>\r
+         *             &lt;complexContent>\r
+         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *                 &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+         *                 &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+         *               &lt;/restriction>\r
+         *             &lt;/complexContent>\r
+         *           &lt;/complexType>\r
+         *         &lt;/element>\r
+         *       &lt;/sequence>\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "", propOrder = {\r
+            "pt"\r
+        })\r
+        public static class Pts {\r
+\r
+            @XmlElement(required = true)\r
+            protected List<ViewContentType.Flow.Pts.Pt> pt;\r
+\r
+            /**\r
+             * Gets the value of the pt property.\r
+             * \r
+             * <p>\r
+             * This accessor method returns a reference to the live list,\r
+             * not a snapshot. Therefore any modification you make to the\r
+             * returned list will be present inside the JAXB object.\r
+             * This is why there is not a <CODE>set</CODE> method for the pt property.\r
+             * \r
+             * <p>\r
+             * For example, to add a new item, do as follows:\r
+             * <pre>\r
+             *    getPt().add(newItem);\r
+             * </pre>\r
+             * \r
+             * \r
+             * <p>\r
+             * Objects of the following type(s) are allowed in the list\r
+             * {@link ViewContentType.Flow.Pts.Pt }\r
+             * \r
+             * \r
+             */\r
+            public List<ViewContentType.Flow.Pts.Pt> getPt() {\r
+                if (pt == null) {\r
+                    pt = new ArrayList<ViewContentType.Flow.Pts.Pt>();\r
+                }\r
+                return this.pt;\r
+            }\r
+\r
+\r
+            /**\r
+             * <p>Java class for anonymous complex type.\r
+             * \r
+             * <p>The following schema fragment specifies the expected content contained within this class.\r
+             * \r
+             * <pre>\r
+             * &lt;complexType>\r
+             *   &lt;complexContent>\r
+             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+             *       &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+             *       &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+             *     &lt;/restriction>\r
+             *   &lt;/complexContent>\r
+             * &lt;/complexType>\r
+             * </pre>\r
+             * \r
+             * \r
+             */\r
+            @XmlAccessorType(XmlAccessType.FIELD)\r
+            @XmlType(name = "")\r
+            public static class Pt {\r
+\r
+                @XmlAttribute(name = "x")\r
+                protected Double x;\r
+                @XmlAttribute(name = "y")\r
+                protected Double y;\r
+\r
+                /**\r
+                 * Gets the value of the x property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public Double getX() {\r
+                    return x;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the x property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public void setX(Double value) {\r
+                    this.x = value;\r
+                }\r
+\r
+                /**\r
+                 * Gets the value of the y property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public Double getY() {\r
+                    return y;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the y property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link Double }\r
+                 *     \r
+                 */\r
+                public void setY(Double value) {\r
+                    this.y = value;\r
+                }\r
+\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}plot" maxOccurs="unbounded"/>\r
+     *       &lt;/choice>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attribute name="type" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}graph_type" default="time_series" />\r
+     *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="doc" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="show_grid" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="num_x_grid_lines" type="{http://www.w3.org/2001/XMLSchema}int" default="0" />\r
+     *       &lt;attribute name="num_y_grid_lines" type="{http://www.w3.org/2001/XMLSchema}int" default="0" />\r
+     *       &lt;attribute name="num_y_labels" type="{http://www.w3.org/2001/XMLSchema}int" default="0" />\r
+     *       &lt;attribute name="x_axis_title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="right_axis_title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="right_axis_auto_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="right_axis_multi_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="left_axis_title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="left_axis_auto_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="left_axis_multi_scale" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+     *       &lt;attribute name="plot_numbers" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *       &lt;attribute name="comparative" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *       &lt;attribute name="from" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="to" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "plot"\r
+    })\r
+    public static class Graph {\r
+\r
+        protected List<Plot> plot;\r
+        @XmlAttribute(name = "type")\r
+        protected GraphType type;\r
+        @XmlAttribute(name = "title")\r
+        protected String title;\r
+        @XmlAttribute(name = "doc")\r
+        protected String doc;\r
+        @XmlAttribute(name = "show_grid")\r
+        protected Boolean showGrid;\r
+        @XmlAttribute(name = "num_x_grid_lines")\r
+        protected Integer numXGridLines;\r
+        @XmlAttribute(name = "num_y_grid_lines")\r
+        protected Integer numYGridLines;\r
+        @XmlAttribute(name = "num_y_labels")\r
+        protected Integer numYLabels;\r
+        @XmlAttribute(name = "x_axis_title")\r
+        protected String xAxisTitle;\r
+        @XmlAttribute(name = "right_axis_title")\r
+        protected String rightAxisTitle;\r
+        @XmlAttribute(name = "right_axis_auto_scale")\r
+        protected Boolean rightAxisAutoScale;\r
+        @XmlAttribute(name = "right_axis_multi_scale")\r
+        protected Boolean rightAxisMultiScale;\r
+        @XmlAttribute(name = "left_axis_title")\r
+        protected String leftAxisTitle;\r
+        @XmlAttribute(name = "left_axis_auto_scale")\r
+        protected Boolean leftAxisAutoScale;\r
+        @XmlAttribute(name = "left_axis_multi_scale")\r
+        protected Boolean leftAxisMultiScale;\r
+        @XmlAttribute(name = "plot_numbers")\r
+        protected Boolean plotNumbers;\r
+        @XmlAttribute(name = "comparative")\r
+        protected Boolean comparative;\r
+        @XmlAttribute(name = "from")\r
+        protected Double from;\r
+        @XmlAttribute(name = "to")\r
+        protected Double to;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+\r
+        /**\r
+         * Gets the value of the plot property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the plot property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getPlot().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link Plot }\r
+         * \r
+         * \r
+         */\r
+        public List<Plot> getPlot() {\r
+            if (plot == null) {\r
+                plot = new ArrayList<Plot>();\r
+            }\r
+            return this.plot;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the type property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link GraphType }\r
+         *     \r
+         */\r
+        public GraphType getType() {\r
+            if (type == null) {\r
+                return GraphType.TIME_SERIES;\r
+            } else {\r
+                return type;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the type property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link GraphType }\r
+         *     \r
+         */\r
+        public void setType(GraphType value) {\r
+            this.type = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the title property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTitle() {\r
+            return title;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the title property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTitle(String value) {\r
+            this.title = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the doc property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getDoc() {\r
+            return doc;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the doc property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setDoc(String value) {\r
+            this.doc = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the showGrid property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isShowGrid() {\r
+            if (showGrid == null) {\r
+                return true;\r
+            } else {\r
+                return showGrid;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the showGrid property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setShowGrid(Boolean value) {\r
+            this.showGrid = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the numXGridLines property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public int getNumXGridLines() {\r
+            if (numXGridLines == null) {\r
+                return  0;\r
+            } else {\r
+                return numXGridLines;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the numXGridLines property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setNumXGridLines(Integer value) {\r
+            this.numXGridLines = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the numYGridLines property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public int getNumYGridLines() {\r
+            if (numYGridLines == null) {\r
+                return  0;\r
+            } else {\r
+                return numYGridLines;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the numYGridLines property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setNumYGridLines(Integer value) {\r
+            this.numYGridLines = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the numYLabels property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public int getNumYLabels() {\r
+            if (numYLabels == null) {\r
+                return  0;\r
+            } else {\r
+                return numYLabels;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the numYLabels property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setNumYLabels(Integer value) {\r
+            this.numYLabels = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the xAxisTitle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getXAxisTitle() {\r
+            return xAxisTitle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the xAxisTitle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setXAxisTitle(String value) {\r
+            this.xAxisTitle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the rightAxisTitle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getRightAxisTitle() {\r
+            return rightAxisTitle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the rightAxisTitle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setRightAxisTitle(String value) {\r
+            this.rightAxisTitle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the rightAxisAutoScale property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isRightAxisAutoScale() {\r
+            if (rightAxisAutoScale == null) {\r
+                return true;\r
+            } else {\r
+                return rightAxisAutoScale;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the rightAxisAutoScale property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setRightAxisAutoScale(Boolean value) {\r
+            this.rightAxisAutoScale = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the rightAxisMultiScale property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isRightAxisMultiScale() {\r
+            if (rightAxisMultiScale == null) {\r
+                return true;\r
+            } else {\r
+                return rightAxisMultiScale;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the rightAxisMultiScale property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setRightAxisMultiScale(Boolean value) {\r
+            this.rightAxisMultiScale = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the leftAxisTitle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLeftAxisTitle() {\r
+            return leftAxisTitle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the leftAxisTitle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLeftAxisTitle(String value) {\r
+            this.leftAxisTitle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the leftAxisAutoScale property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isLeftAxisAutoScale() {\r
+            if (leftAxisAutoScale == null) {\r
+                return true;\r
+            } else {\r
+                return leftAxisAutoScale;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the leftAxisAutoScale property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setLeftAxisAutoScale(Boolean value) {\r
+            this.leftAxisAutoScale = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the leftAxisMultiScale property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isLeftAxisMultiScale() {\r
+            if (leftAxisMultiScale == null) {\r
+                return true;\r
+            } else {\r
+                return leftAxisMultiScale;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the leftAxisMultiScale property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setLeftAxisMultiScale(Boolean value) {\r
+            this.leftAxisMultiScale = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the plotNumbers property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isPlotNumbers() {\r
+            if (plotNumbers == null) {\r
+                return false;\r
+            } else {\r
+                return plotNumbers;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the plotNumbers property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setPlotNumbers(Boolean value) {\r
+            this.plotNumbers = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the comparative property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isComparative() {\r
+            if (comparative == null) {\r
+                return false;\r
+            } else {\r
+                return comparative;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the comparative property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setComparative(Boolean value) {\r
+            this.comparative = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the from property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getFrom() {\r
+            return from;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the from property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setFrom(Double value) {\r
+            this.from = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the to property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getTo() {\r
+            return to;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the to property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setTo(Double value) {\r
+            this.to = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;sequence maxOccurs="unbounded" minOccurs="0">\r
+     *         &lt;element name="item">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *       &lt;/sequence>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="locked" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "item"\r
+    })\r
+    public static class Group {\r
+\r
+        protected List<ViewContentType.Group.Item> item;\r
+        @XmlAttribute(name = "name")\r
+        protected String name;\r
+        @XmlAttribute(name = "locked")\r
+        protected Boolean locked;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+\r
+        /**\r
+         * Gets the value of the item property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the item property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getItem().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link ViewContentType.Group.Item }\r
+         * \r
+         * \r
+         */\r
+        public List<ViewContentType.Group.Item> getItem() {\r
+            if (item == null) {\r
+                item = new ArrayList<ViewContentType.Group.Item>();\r
+            }\r
+            return this.item;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the locked property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isLocked() {\r
+            return locked;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the locked property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setLocked(Boolean value) {\r
+            this.locked = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;attribute name="uid" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "")\r
+        public static class Item {\r
+\r
+            @XmlAttribute(name = "uid")\r
+            protected Integer uid;\r
+\r
+            /**\r
+             * Gets the value of the uid property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link Integer }\r
+             *     \r
+             */\r
+            public Integer getUid() {\r
+                return uid;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the uid property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link Integer }\r
+             *     \r
+             */\r
+            public void setUid(Integer value) {\r
+                this.uid = value;\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+     *       &lt;/all>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Module {\r
+\r
+        protected Shape shape;\r
+        @XmlAttribute(name = "name")\r
+        protected String name;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+\r
+        /**\r
+         * Gets the value of the shape property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public Shape getShape() {\r
+            return shape;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the shape property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public void setShape(Shape value) {\r
+            this.shape = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}entity" maxOccurs="unbounded"/>\r
+     *       &lt;/choice>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attribute name="show_name" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *       &lt;attribute name="clicking_sound" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *       &lt;attribute name="layout" default="vertical">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="vertical"/>\r
+     *             &lt;enumeration value="horizontal"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *       &lt;attribute name="vertical_spacing" type="{http://www.w3.org/2001/XMLSchema}int" default="2" />\r
+     *       &lt;attribute name="horizontal_spacing" type="{http://www.w3.org/2001/XMLSchema}int" default="2" />\r
+     *       &lt;attribute name="uid" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "entity"\r
+    })\r
+    public static class Options {\r
+\r
+        protected List<org.simantics.sysdyn.xmile.schema.Entity> entity;\r
+        @XmlAttribute(name = "show_name")\r
+        protected Boolean showName;\r
+        @XmlAttribute(name = "clicking_sound")\r
+        protected Boolean clickingSound;\r
+        @XmlAttribute(name = "layout")\r
+        protected String layout;\r
+        @XmlAttribute(name = "vertical_spacing")\r
+        protected Integer verticalSpacing;\r
+        @XmlAttribute(name = "horizontal_spacing")\r
+        protected Integer horizontalSpacing;\r
+        @XmlAttribute(name = "uid", required = true)\r
+        protected int uid;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+\r
+        /**\r
+         * Gets the value of the entity property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the entity property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getEntity().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link org.simantics.sysdyn.xmile.schema.Entity }\r
+         * \r
+         * \r
+         */\r
+        public List<org.simantics.sysdyn.xmile.schema.Entity> getEntity() {\r
+            if (entity == null) {\r
+                entity = new ArrayList<org.simantics.sysdyn.xmile.schema.Entity>();\r
+            }\r
+            return this.entity;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the showName property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isShowName() {\r
+            if (showName == null) {\r
+                return false;\r
+            } else {\r
+                return showName;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the showName property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setShowName(Boolean value) {\r
+            this.showName = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the clickingSound property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isClickingSound() {\r
+            if (clickingSound == null) {\r
+                return false;\r
+            } else {\r
+                return clickingSound;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the clickingSound property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setClickingSound(Boolean value) {\r
+            this.clickingSound = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the layout property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLayout() {\r
+            if (layout == null) {\r
+                return "vertical";\r
+            } else {\r
+                return layout;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the layout property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLayout(String value) {\r
+            this.layout = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalSpacing property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public int getVerticalSpacing() {\r
+            if (verticalSpacing == null) {\r
+                return  2;\r
+            } else {\r
+                return verticalSpacing;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalSpacing property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setVerticalSpacing(Integer value) {\r
+            this.verticalSpacing = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the horizontalSpacing property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public int getHorizontalSpacing() {\r
+            if (horizontalSpacing == null) {\r
+                return  2;\r
+            } else {\r
+                return horizontalSpacing;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the horizontalSpacing property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setHorizontalSpacing(Integer value) {\r
+            this.horizontalSpacing = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the uid property.\r
+         * \r
+         */\r
+        public int getUid() {\r
+            return uid;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the uid property.\r
+         * \r
+         */\r
+        public void setUid(int value) {\r
+            this.uid = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;all>\r
+     *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}shape" minOccurs="0"/>\r
+     *       &lt;/all>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}positioning_attributes"/>\r
+     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+\r
+    })\r
+    public static class Stock {\r
+\r
+        protected Shape shape;\r
+        @XmlAttribute(name = "name")\r
+        protected String name;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+        @XmlAttribute(name = "x")\r
+        protected Double x;\r
+        @XmlAttribute(name = "y")\r
+        protected Double y;\r
+        @XmlAttribute(name = "height")\r
+        protected Double height;\r
+        @XmlAttribute(name = "width")\r
+        protected Double width;\r
+        @XmlAttribute(name = "label_side")\r
+        protected String labelSide;\r
+        @XmlAttribute(name = "label_angle")\r
+        protected Double labelAngle;\r
+\r
+        /**\r
+         * Gets the value of the shape property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public Shape getShape() {\r
+            return shape;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the shape property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Shape }\r
+         *     \r
+         */\r
+        public void setShape(Shape value) {\r
+            this.shape = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the name property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getName() {\r
+            return name;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the name property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setName(String value) {\r
+            this.name = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setX(Double value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setY(Double value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the height property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getHeight() {\r
+            return height;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the height property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setHeight(Double value) {\r
+            this.height = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the width property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getWidth() {\r
+            return width;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the width property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setWidth(Double value) {\r
+            this.width = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelSide property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getLabelSide() {\r
+            return labelSide;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelSide property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setLabelSide(String value) {\r
+            this.labelSide = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the labelAngle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getLabelAngle() {\r
+            return labelAngle;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the labelAngle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setLabelAngle(Double value) {\r
+            this.labelAngle = value;\r
+        }\r
+\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;choice>\r
+     *         &lt;element name="item" maxOccurs="unbounded">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;all>\r
+     *                   &lt;element name="entity" minOccurs="0">\r
+     *                     &lt;complexType>\r
+     *                       &lt;complexContent>\r
+     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                           &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                           &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                         &lt;/restriction>\r
+     *                       &lt;/complexContent>\r
+     *                     &lt;/complexType>\r
+     *                   &lt;/element>\r
+     *                 &lt;/all>\r
+     *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *                 &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format_attributes"/>\r
+     *                 &lt;attribute name="type" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}table_item_type" default="variable" />\r
+     *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *       &lt;/choice>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+     *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}header_style_attributes"/>\r
+     *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="doc" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="orientation" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}orientation" default="vertical" />\r
+     *       &lt;attribute name="column_width" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *       &lt;attribute name="blank_column_width" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *       &lt;attribute name="report_interval" use="required" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_interval" />\r
+     *       &lt;attribute name="report_balances" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_balances" default="beginning" />\r
+     *       &lt;attribute name="report_flows" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}report_flows" default="instantaneous" />\r
+     *       &lt;attribute name="comparative" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *       &lt;attribute name="wrap_text" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "item"\r
+    })\r
+    public static class Table {\r
+\r
+        protected List<ViewContentType.Table.Item> item;\r
+        @XmlAttribute(name = "title")\r
+        protected String title;\r
+        @XmlAttribute(name = "doc")\r
+        protected String doc;\r
+        @XmlAttribute(name = "orientation")\r
+        protected Orientation orientation;\r
+        @XmlAttribute(name = "column_width", required = true)\r
+        protected int columnWidth;\r
+        @XmlAttribute(name = "blank_column_width")\r
+        protected Integer blankColumnWidth;\r
+        @XmlAttribute(name = "report_interval", required = true)\r
+        protected String reportInterval;\r
+        @XmlAttribute(name = "report_balances")\r
+        protected ReportBalances reportBalances;\r
+        @XmlAttribute(name = "report_flows")\r
+        protected ReportFlows reportFlows;\r
+        @XmlAttribute(name = "comparative")\r
+        protected Boolean comparative;\r
+        @XmlAttribute(name = "wrap_text")\r
+        protected Boolean wrapText;\r
+        @XmlAttribute(name = "border_width")\r
+        protected String borderWidth;\r
+        @XmlAttribute(name = "border_color")\r
+        protected String borderColor;\r
+        @XmlAttribute(name = "border_style")\r
+        protected String borderStyle;\r
+        @XmlAttribute(name = "font_family")\r
+        protected String fontFamily;\r
+        @XmlAttribute(name = "font_style")\r
+        protected String fontStyle;\r
+        @XmlAttribute(name = "font_weight")\r
+        protected String fontWeight;\r
+        @XmlAttribute(name = "text_decoration")\r
+        protected String textDecoration;\r
+        @XmlAttribute(name = "text_align")\r
+        protected TextAlign textAlign;\r
+        @XmlAttribute(name = "vertical_text_align")\r
+        protected VerticalTextAlign verticalTextAlign;\r
+        @XmlAttribute(name = "font_color")\r
+        protected String fontColor;\r
+        @XmlAttribute(name = "text_background")\r
+        protected String textBackground;\r
+        @XmlAttribute(name = "font_size")\r
+        protected String fontSize;\r
+        @XmlAttribute(name = "padding")\r
+        protected String padding;\r
+        @XmlAttribute(name = "color")\r
+        protected String color;\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "z_index")\r
+        protected BigInteger zIndex;\r
+        @XmlAttribute(name = "header_border_width")\r
+        protected String headerBorderWidth;\r
+        @XmlAttribute(name = "header_border_color")\r
+        protected String headerBorderColor;\r
+        @XmlAttribute(name = "header_border_style")\r
+        protected String headerBorderStyle;\r
+        @XmlAttribute(name = "header_font_family")\r
+        protected String headerFontFamily;\r
+        @XmlAttribute(name = "header_font_style")\r
+        protected String headerFontStyle;\r
+        @XmlAttribute(name = "header_font_weight")\r
+        protected String headerFontWeight;\r
+        @XmlAttribute(name = "header_text_decoration")\r
+        protected String headerTextDecoration;\r
+        @XmlAttribute(name = "header_text_align")\r
+        protected TextAlign headerTextAlign;\r
+        @XmlAttribute(name = "header_vertical_text_align")\r
+        protected VerticalTextAlign headerVerticalTextAlign;\r
+        @XmlAttribute(name = "header_font_color")\r
+        protected String headerFontColor;\r
+        @XmlAttribute(name = "header_text_background")\r
+        protected String headerTextBackground;\r
+        @XmlAttribute(name = "header_font_size")\r
+        protected String headerFontSize;\r
+        @XmlAttribute(name = "header_padding")\r
+        protected String headerPadding;\r
+        @XmlAttribute(name = "header_color")\r
+        protected String headerColor;\r
+        @XmlAttribute(name = "header_background")\r
+        protected String headerBackground;\r
+        @XmlAttribute(name = "header_z_index")\r
+        protected BigInteger headerZIndex;\r
+\r
+        /**\r
+         * Gets the value of the item property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the item property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getItem().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link ViewContentType.Table.Item }\r
+         * \r
+         * \r
+         */\r
+        public List<ViewContentType.Table.Item> getItem() {\r
+            if (item == null) {\r
+                item = new ArrayList<ViewContentType.Table.Item>();\r
+            }\r
+            return this.item;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the title property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTitle() {\r
+            return title;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the title property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTitle(String value) {\r
+            this.title = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the doc property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getDoc() {\r
+            return doc;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the doc property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setDoc(String value) {\r
+            this.doc = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the orientation property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Orientation }\r
+         *     \r
+         */\r
+        public Orientation getOrientation() {\r
+            if (orientation == null) {\r
+                return Orientation.VERTICAL;\r
+            } else {\r
+                return orientation;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the orientation property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Orientation }\r
+         *     \r
+         */\r
+        public void setOrientation(Orientation value) {\r
+            this.orientation = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the columnWidth property.\r
+         * \r
+         */\r
+        public int getColumnWidth() {\r
+            return columnWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the columnWidth property.\r
+         * \r
+         */\r
+        public void setColumnWidth(int value) {\r
+            this.columnWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the blankColumnWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public Integer getBlankColumnWidth() {\r
+            return blankColumnWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the blankColumnWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setBlankColumnWidth(Integer value) {\r
+            this.blankColumnWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the reportInterval property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getReportInterval() {\r
+            return reportInterval;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the reportInterval property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setReportInterval(String value) {\r
+            this.reportInterval = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the reportBalances property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link ReportBalances }\r
+         *     \r
+         */\r
+        public ReportBalances getReportBalances() {\r
+            if (reportBalances == null) {\r
+                return ReportBalances.BEGINNING;\r
+            } else {\r
+                return reportBalances;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the reportBalances property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link ReportBalances }\r
+         *     \r
+         */\r
+        public void setReportBalances(ReportBalances value) {\r
+            this.reportBalances = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the reportFlows property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link ReportFlows }\r
+         *     \r
+         */\r
+        public ReportFlows getReportFlows() {\r
+            if (reportFlows == null) {\r
+                return ReportFlows.INSTANTANEOUS;\r
+            } else {\r
+                return reportFlows;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the reportFlows property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link ReportFlows }\r
+         *     \r
+         */\r
+        public void setReportFlows(ReportFlows value) {\r
+            this.reportFlows = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the comparative property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isComparative() {\r
+            if (comparative == null) {\r
+                return false;\r
+            } else {\r
+                return comparative;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the comparative property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setComparative(Boolean value) {\r
+            this.comparative = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the wrapText property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public boolean isWrapText() {\r
+            if (wrapText == null) {\r
+                return false;\r
+            } else {\r
+                return wrapText;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the wrapText property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setWrapText(Boolean value) {\r
+            this.wrapText = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderWidth() {\r
+            return borderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderWidth(String value) {\r
+            this.borderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderColor() {\r
+            return borderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderColor(String value) {\r
+            this.borderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the borderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBorderStyle() {\r
+            if (borderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return borderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the borderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBorderStyle(String value) {\r
+            this.borderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontFamily() {\r
+            return fontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontFamily(String value) {\r
+            this.fontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontStyle() {\r
+            if (fontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontStyle(String value) {\r
+            this.fontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontWeight() {\r
+            if (fontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return fontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontWeight(String value) {\r
+            this.fontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextDecoration() {\r
+            if (textDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return textDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextDecoration(String value) {\r
+            this.textDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getTextAlign() {\r
+            if (textAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return textAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setTextAlign(TextAlign value) {\r
+            this.textAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the verticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getVerticalTextAlign() {\r
+            if (verticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return verticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the verticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setVerticalTextAlign(VerticalTextAlign value) {\r
+            this.verticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontColor() {\r
+            return fontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontColor(String value) {\r
+            this.fontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the textBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getTextBackground() {\r
+            return textBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the textBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setTextBackground(String value) {\r
+            this.textBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the fontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getFontSize() {\r
+            return fontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the fontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setFontSize(String value) {\r
+            this.fontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the padding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPadding() {\r
+            return padding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the padding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPadding(String value) {\r
+            this.padding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the color property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getColor() {\r
+            return color;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the color property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setColor(String value) {\r
+            this.color = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getZIndex() {\r
+            return zIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setZIndex(BigInteger value) {\r
+            this.zIndex = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerBorderWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderBorderWidth() {\r
+            return headerBorderWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerBorderWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderBorderWidth(String value) {\r
+            this.headerBorderWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerBorderColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderBorderColor() {\r
+            return headerBorderColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerBorderColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderBorderColor(String value) {\r
+            this.headerBorderColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerBorderStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderBorderStyle() {\r
+            if (headerBorderStyle == null) {\r
+                return "none";\r
+            } else {\r
+                return headerBorderStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerBorderStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderBorderStyle(String value) {\r
+            this.headerBorderStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerFontFamily property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderFontFamily() {\r
+            return headerFontFamily;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerFontFamily property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderFontFamily(String value) {\r
+            this.headerFontFamily = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerFontStyle property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderFontStyle() {\r
+            if (headerFontStyle == null) {\r
+                return "normal";\r
+            } else {\r
+                return headerFontStyle;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerFontStyle property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderFontStyle(String value) {\r
+            this.headerFontStyle = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerFontWeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderFontWeight() {\r
+            if (headerFontWeight == null) {\r
+                return "normal";\r
+            } else {\r
+                return headerFontWeight;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerFontWeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderFontWeight(String value) {\r
+            this.headerFontWeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerTextDecoration property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderTextDecoration() {\r
+            if (headerTextDecoration == null) {\r
+                return "normal";\r
+            } else {\r
+                return headerTextDecoration;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerTextDecoration property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderTextDecoration(String value) {\r
+            this.headerTextDecoration = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public TextAlign getHeaderTextAlign() {\r
+            if (headerTextAlign == null) {\r
+                return TextAlign.LEFT;\r
+            } else {\r
+                return headerTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link TextAlign }\r
+         *     \r
+         */\r
+        public void setHeaderTextAlign(TextAlign value) {\r
+            this.headerTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerVerticalTextAlign property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public VerticalTextAlign getHeaderVerticalTextAlign() {\r
+            if (headerVerticalTextAlign == null) {\r
+                return VerticalTextAlign.CENTER;\r
+            } else {\r
+                return headerVerticalTextAlign;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerVerticalTextAlign property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link VerticalTextAlign }\r
+         *     \r
+         */\r
+        public void setHeaderVerticalTextAlign(VerticalTextAlign value) {\r
+            this.headerVerticalTextAlign = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerFontColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderFontColor() {\r
+            return headerFontColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerFontColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderFontColor(String value) {\r
+            this.headerFontColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerTextBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderTextBackground() {\r
+            return headerTextBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerTextBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderTextBackground(String value) {\r
+            this.headerTextBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerFontSize property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderFontSize() {\r
+            return headerFontSize;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerFontSize property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderFontSize(String value) {\r
+            this.headerFontSize = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerPadding property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderPadding() {\r
+            return headerPadding;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerPadding property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderPadding(String value) {\r
+            this.headerPadding = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerColor property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderColor() {\r
+            return headerColor;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerColor property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderColor(String value) {\r
+            this.headerColor = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerBackground property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getHeaderBackground() {\r
+            return headerBackground;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerBackground property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setHeaderBackground(String value) {\r
+            this.headerBackground = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the headerZIndex property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getHeaderZIndex() {\r
+            return headerZIndex;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the headerZIndex property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setHeaderZIndex(BigInteger value) {\r
+            this.headerZIndex = value;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;all>\r
+         *         &lt;element name="entity" minOccurs="0">\r
+         *           &lt;complexType>\r
+         *             &lt;complexContent>\r
+         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *                 &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *               &lt;/restriction>\r
+         *             &lt;/complexContent>\r
+         *           &lt;/complexType>\r
+         *         &lt;/element>\r
+         *       &lt;/all>\r
+         *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style_attributes"/>\r
+         *       &lt;attGroup ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}format_attributes"/>\r
+         *       &lt;attribute name="type" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}table_item_type" default="variable" />\r
+         *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "", propOrder = {\r
+\r
+        })\r
+        public static class Item {\r
+\r
+            protected ViewContentType.Table.Item.Entity entity;\r
+            @XmlAttribute(name = "type")\r
+            protected TableItemType type;\r
+            @XmlAttribute(name = "index")\r
+            protected Integer index;\r
+            @XmlAttribute(name = "border_width")\r
+            protected String borderWidth;\r
+            @XmlAttribute(name = "border_color")\r
+            protected String borderColor;\r
+            @XmlAttribute(name = "border_style")\r
+            protected String borderStyle;\r
+            @XmlAttribute(name = "font_family")\r
+            protected String fontFamily;\r
+            @XmlAttribute(name = "font_style")\r
+            protected String fontStyle;\r
+            @XmlAttribute(name = "font_weight")\r
+            protected String fontWeight;\r
+            @XmlAttribute(name = "text_decoration")\r
+            protected String textDecoration;\r
+            @XmlAttribute(name = "text_align")\r
+            protected TextAlign textAlign;\r
+            @XmlAttribute(name = "vertical_text_align")\r
+            protected VerticalTextAlign verticalTextAlign;\r
+            @XmlAttribute(name = "font_color")\r
+            protected String fontColor;\r
+            @XmlAttribute(name = "text_background")\r
+            protected String textBackground;\r
+            @XmlAttribute(name = "font_size")\r
+            protected String fontSize;\r
+            @XmlAttribute(name = "padding")\r
+            protected String padding;\r
+            @XmlAttribute(name = "color")\r
+            protected String color;\r
+            @XmlAttribute(name = "background")\r
+            protected String background;\r
+            @XmlAttribute(name = "z_index")\r
+            protected BigInteger zIndex;\r
+            @XmlAttribute(name = "precision")\r
+            protected Double precision;\r
+            @XmlAttribute(name = "scale_by")\r
+            protected BigInteger scaleBy;\r
+            @XmlAttribute(name = "delimit_000s")\r
+            protected Boolean delimit000S;\r
+            @XmlAttribute(name = "display_as")\r
+            protected String displayAs;\r
+\r
+            /**\r
+             * Gets the value of the entity property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link ViewContentType.Table.Item.Entity }\r
+             *     \r
+             */\r
+            public ViewContentType.Table.Item.Entity getEntity() {\r
+                return entity;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the entity property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link ViewContentType.Table.Item.Entity }\r
+             *     \r
+             */\r
+            public void setEntity(ViewContentType.Table.Item.Entity value) {\r
+                this.entity = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the type property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link TableItemType }\r
+             *     \r
+             */\r
+            public TableItemType getType() {\r
+                if (type == null) {\r
+                    return TableItemType.VARIABLE;\r
+                } else {\r
+                    return type;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the type property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link TableItemType }\r
+             *     \r
+             */\r
+            public void setType(TableItemType value) {\r
+                this.type = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the index property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link Integer }\r
+             *     \r
+             */\r
+            public Integer getIndex() {\r
+                return index;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the index property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link Integer }\r
+             *     \r
+             */\r
+            public void setIndex(Integer value) {\r
+                this.index = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the borderWidth property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getBorderWidth() {\r
+                return borderWidth;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the borderWidth property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setBorderWidth(String value) {\r
+                this.borderWidth = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the borderColor property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getBorderColor() {\r
+                return borderColor;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the borderColor property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setBorderColor(String value) {\r
+                this.borderColor = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the borderStyle property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getBorderStyle() {\r
+                if (borderStyle == null) {\r
+                    return "none";\r
+                } else {\r
+                    return borderStyle;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the borderStyle property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setBorderStyle(String value) {\r
+                this.borderStyle = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the fontFamily property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getFontFamily() {\r
+                return fontFamily;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the fontFamily property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setFontFamily(String value) {\r
+                this.fontFamily = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the fontStyle property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getFontStyle() {\r
+                if (fontStyle == null) {\r
+                    return "normal";\r
+                } else {\r
+                    return fontStyle;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the fontStyle property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setFontStyle(String value) {\r
+                this.fontStyle = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the fontWeight property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getFontWeight() {\r
+                if (fontWeight == null) {\r
+                    return "normal";\r
+                } else {\r
+                    return fontWeight;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the fontWeight property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setFontWeight(String value) {\r
+                this.fontWeight = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the textDecoration property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getTextDecoration() {\r
+                if (textDecoration == null) {\r
+                    return "normal";\r
+                } else {\r
+                    return textDecoration;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the textDecoration property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setTextDecoration(String value) {\r
+                this.textDecoration = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the textAlign property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link TextAlign }\r
+             *     \r
+             */\r
+            public TextAlign getTextAlign() {\r
+                if (textAlign == null) {\r
+                    return TextAlign.LEFT;\r
+                } else {\r
+                    return textAlign;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the textAlign property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link TextAlign }\r
+             *     \r
+             */\r
+            public void setTextAlign(TextAlign value) {\r
+                this.textAlign = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the verticalTextAlign property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link VerticalTextAlign }\r
+             *     \r
+             */\r
+            public VerticalTextAlign getVerticalTextAlign() {\r
+                if (verticalTextAlign == null) {\r
+                    return VerticalTextAlign.CENTER;\r
+                } else {\r
+                    return verticalTextAlign;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the verticalTextAlign property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link VerticalTextAlign }\r
+             *     \r
+             */\r
+            public void setVerticalTextAlign(VerticalTextAlign value) {\r
+                this.verticalTextAlign = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the fontColor property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getFontColor() {\r
+                return fontColor;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the fontColor property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setFontColor(String value) {\r
+                this.fontColor = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the textBackground property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getTextBackground() {\r
+                return textBackground;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the textBackground property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setTextBackground(String value) {\r
+                this.textBackground = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the fontSize property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getFontSize() {\r
+                return fontSize;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the fontSize property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setFontSize(String value) {\r
+                this.fontSize = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the padding property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getPadding() {\r
+                return padding;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the padding property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setPadding(String value) {\r
+                this.padding = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the color property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getColor() {\r
+                return color;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the color property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setColor(String value) {\r
+                this.color = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the background property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getBackground() {\r
+                return background;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the background property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setBackground(String value) {\r
+                this.background = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the zIndex property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link BigInteger }\r
+             *     \r
+             */\r
+            public BigInteger getZIndex() {\r
+                return zIndex;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the zIndex property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link BigInteger }\r
+             *     \r
+             */\r
+            public void setZIndex(BigInteger value) {\r
+                this.zIndex = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the precision property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link Double }\r
+             *     \r
+             */\r
+            public Double getPrecision() {\r
+                return precision;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the precision property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link Double }\r
+             *     \r
+             */\r
+            public void setPrecision(Double value) {\r
+                this.precision = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the scaleBy property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link BigInteger }\r
+             *     \r
+             */\r
+            public BigInteger getScaleBy() {\r
+                if (scaleBy == null) {\r
+                    return new BigInteger("1");\r
+                } else {\r
+                    return scaleBy;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the scaleBy property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link BigInteger }\r
+             *     \r
+             */\r
+            public void setScaleBy(BigInteger value) {\r
+                this.scaleBy = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the delimit000S property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link Boolean }\r
+             *     \r
+             */\r
+            public boolean isDelimit000S() {\r
+                if (delimit000S == null) {\r
+                    return false;\r
+                } else {\r
+                    return delimit000S;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the delimit000S property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link Boolean }\r
+             *     \r
+             */\r
+            public void setDelimit000S(Boolean value) {\r
+                this.delimit000S = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the displayAs property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getDisplayAs() {\r
+                if (displayAs == null) {\r
+                    return "number";\r
+                } else {\r
+                    return displayAs;\r
+                }\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the displayAs property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setDisplayAs(String value) {\r
+                this.displayAs = value;\r
+            }\r
+\r
+\r
+            /**\r
+             * <p>Java class for anonymous complex type.\r
+             * \r
+             * <p>The following schema fragment specifies the expected content contained within this class.\r
+             * \r
+             * <pre>\r
+             * &lt;complexType>\r
+             *   &lt;complexContent>\r
+             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+             *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+             *       &lt;attribute name="index" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+             *     &lt;/restriction>\r
+             *   &lt;/complexContent>\r
+             * &lt;/complexType>\r
+             * </pre>\r
+             * \r
+             * \r
+             */\r
+            @XmlAccessorType(XmlAccessType.FIELD)\r
+            @XmlType(name = "")\r
+            public static class Entity {\r
+\r
+                @XmlAttribute(name = "name", required = true)\r
+                protected String name;\r
+                @XmlAttribute(name = "index")\r
+                protected String index;\r
+\r
+                /**\r
+                 * Gets the value of the name property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link String }\r
+                 *     \r
+                 */\r
+                public String getName() {\r
+                    return name;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the name property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link String }\r
+                 *     \r
+                 */\r
+                public void setName(String value) {\r
+                    this.name = value;\r
+                }\r
+\r
+                /**\r
+                 * Gets the value of the index property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link String }\r
+                 *     \r
+                 */\r
+                public String getIndex() {\r
+                    return index;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the index property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link String }\r
+                 *     \r
+                 */\r
+                public void setIndex(String value) {\r
+                    this.index = value;\r
+                }\r
+\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ViewType.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/ViewType.java
new file mode 100644 (file)
index 0000000..3ad4ec2
--- /dev/null
@@ -0,0 +1,61 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for view_type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="view_type">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *     &lt;enumeration value="stock_flow"/>\r
+ *     &lt;enumeration value="interface"/>\r
+ *     &lt;enumeration value="popup"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "view_type")\r
+@XmlEnum\r
+public enum ViewType {\r
+\r
+    @XmlEnumValue("stock_flow")\r
+    STOCK_FLOW("stock_flow"),\r
+    @XmlEnumValue("interface")\r
+    INTERFACE("interface"),\r
+    @XmlEnumValue("popup")\r
+    POPUP("popup");\r
+    private final String value;\r
+\r
+    ViewType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static ViewType fromValue(String v) {\r
+        for (ViewType c: ViewType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Views.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Views.java
new file mode 100644 (file)
index 0000000..2b1a671
--- /dev/null
@@ -0,0 +1,571 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigInteger;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style" minOccurs="0"/>\r
+ *         &lt;element name="view" maxOccurs="unbounded" minOccurs="0">\r
+ *           &lt;complexType>\r
+ *             &lt;complexContent>\r
+ *               &lt;extension base="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}view_content_type">\r
+ *                 &lt;attribute name="background" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                 &lt;attribute name="zoom" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="scroll_x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="scroll_y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="home_page" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+ *                 &lt;attribute name="home_view" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="page_width" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="page_height" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+ *                 &lt;attribute name="show_pages" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+ *                 &lt;attribute name="page_orientation">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="landscape"/>\r
+ *                       &lt;enumeration value="portrait"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *                 &lt;attribute name="page_sequence">\r
+ *                   &lt;simpleType>\r
+ *                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+ *                       &lt;enumeration value="row"/>\r
+ *                       &lt;enumeration value="column"/>\r
+ *                     &lt;/restriction>\r
+ *                   &lt;/simpleType>\r
+ *                 &lt;/attribute>\r
+ *                 &lt;attribute name="type" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}view_type" default="stock_flow" />\r
+ *                 &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                 &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                 &lt;attribute name="content" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *               &lt;/extension>\r
+ *             &lt;/complexContent>\r
+ *           &lt;/complexType>\r
+ *         &lt;/element>\r
+ *       &lt;/choice>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "styleOrView"\r
+})\r
+@XmlRootElement(name = "views")\r
+public class Views {\r
+\r
+    @XmlElements({\r
+        @XmlElement(name = "style", type = Style.class),\r
+        @XmlElement(name = "view", type = Views.View.class)\r
+    })\r
+    protected List<Object> styleOrView;\r
+\r
+    /**\r
+     * Gets the value of the styleOrView property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the styleOrView property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getStyleOrView().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link Style }\r
+     * {@link Views.View }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getStyleOrView() {\r
+        if (styleOrView == null) {\r
+            styleOrView = new ArrayList<Object>();\r
+        }\r
+        return this.styleOrView;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;extension base="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}view_content_type">\r
+     *       &lt;attribute name="background" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *       &lt;attribute name="zoom" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="scroll_x" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="scroll_y" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="home_page" type="{http://www.w3.org/2001/XMLSchema}integer" />\r
+     *       &lt;attribute name="home_view" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="page_width" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="page_height" type="{http://www.w3.org/2001/XMLSchema}double" />\r
+     *       &lt;attribute name="show_pages" type="{http://www.w3.org/2001/XMLSchema}boolean" />\r
+     *       &lt;attribute name="page_orientation">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="landscape"/>\r
+     *             &lt;enumeration value="portrait"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *       &lt;attribute name="page_sequence">\r
+     *         &lt;simpleType>\r
+     *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">\r
+     *             &lt;enumeration value="row"/>\r
+     *             &lt;enumeration value="column"/>\r
+     *           &lt;/restriction>\r
+     *         &lt;/simpleType>\r
+     *       &lt;/attribute>\r
+     *       &lt;attribute name="type" type="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}view_type" default="stock_flow" />\r
+     *       &lt;attribute name="x" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *       &lt;attribute name="y" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *       &lt;attribute name="content" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *     &lt;/extension>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "")\r
+    public static class View\r
+        extends ViewContentType\r
+    {\r
+\r
+        @XmlAttribute(name = "background")\r
+        protected String background;\r
+        @XmlAttribute(name = "zoom")\r
+        protected Double zoom;\r
+        @XmlAttribute(name = "scroll_x")\r
+        protected Double scrollX;\r
+        @XmlAttribute(name = "scroll_y")\r
+        protected Double scrollY;\r
+        @XmlAttribute(name = "home_page")\r
+        protected BigInteger homePage;\r
+        @XmlAttribute(name = "home_view")\r
+        protected Boolean homeView;\r
+        @XmlAttribute(name = "page_width")\r
+        protected Double pageWidth;\r
+        @XmlAttribute(name = "page_height")\r
+        protected Double pageHeight;\r
+        @XmlAttribute(name = "show_pages")\r
+        protected Boolean showPages;\r
+        @XmlAttribute(name = "page_orientation")\r
+        protected String pageOrientation;\r
+        @XmlAttribute(name = "page_sequence")\r
+        protected String pageSequence;\r
+        @XmlAttribute(name = "type")\r
+        protected ViewType type;\r
+        @XmlAttribute(name = "x")\r
+        protected Integer x;\r
+        @XmlAttribute(name = "y")\r
+        protected Integer y;\r
+        @XmlAttribute(name = "content")\r
+        protected String content;\r
+\r
+        /**\r
+         * Gets the value of the background property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getBackground() {\r
+            return background;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the background property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setBackground(String value) {\r
+            this.background = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the zoom property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getZoom() {\r
+            return zoom;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the zoom property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setZoom(Double value) {\r
+            this.zoom = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the scrollX property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getScrollX() {\r
+            return scrollX;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the scrollX property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setScrollX(Double value) {\r
+            this.scrollX = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the scrollY property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getScrollY() {\r
+            return scrollY;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the scrollY property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setScrollY(Double value) {\r
+            this.scrollY = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the homePage property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public BigInteger getHomePage() {\r
+            return homePage;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the homePage property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link BigInteger }\r
+         *     \r
+         */\r
+        public void setHomePage(BigInteger value) {\r
+            this.homePage = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the homeView property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isHomeView() {\r
+            return homeView;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the homeView property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setHomeView(Boolean value) {\r
+            this.homeView = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the pageWidth property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getPageWidth() {\r
+            return pageWidth;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the pageWidth property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setPageWidth(Double value) {\r
+            this.pageWidth = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the pageHeight property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public Double getPageHeight() {\r
+            return pageHeight;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the pageHeight property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Double }\r
+         *     \r
+         */\r
+        public void setPageHeight(Double value) {\r
+            this.pageHeight = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the showPages property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public Boolean isShowPages() {\r
+            return showPages;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the showPages property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Boolean }\r
+         *     \r
+         */\r
+        public void setShowPages(Boolean value) {\r
+            this.showPages = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the pageOrientation property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPageOrientation() {\r
+            return pageOrientation;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the pageOrientation property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPageOrientation(String value) {\r
+            this.pageOrientation = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the pageSequence property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getPageSequence() {\r
+            return pageSequence;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the pageSequence property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setPageSequence(String value) {\r
+            this.pageSequence = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the type property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link ViewType }\r
+         *     \r
+         */\r
+        public ViewType getType() {\r
+            if (type == null) {\r
+                return ViewType.STOCK_FLOW;\r
+            } else {\r
+                return type;\r
+            }\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the type property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link ViewType }\r
+         *     \r
+         */\r
+        public void setType(ViewType value) {\r
+            this.type = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the x property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public Integer getX() {\r
+            return x;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the x property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setX(Integer value) {\r
+            this.x = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the y property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public Integer getY() {\r
+            return y;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the y property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link Integer }\r
+         *     \r
+         */\r
+        public void setY(Integer value) {\r
+            this.y = value;\r
+        }\r
+\r
+        /**\r
+         * Gets the value of the content property.\r
+         * \r
+         * @return\r
+         *     possible object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public String getContent() {\r
+            return content;\r
+        }\r
+\r
+        /**\r
+         * Sets the value of the content property.\r
+         * \r
+         * @param value\r
+         *     allowed object is\r
+         *     {@link String }\r
+         *     \r
+         */\r
+        public void setContent(String value) {\r
+            this.content = value;\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Xmile.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/Xmile.java
new file mode 100644 (file)
index 0000000..4634265
--- /dev/null
@@ -0,0 +1,448 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+\r
+package org.simantics.sysdyn.xmile.schema;\r
+\r
+import java.math.BigDecimal;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for anonymous complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType>\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}header"/>\r
+ *         &lt;choice maxOccurs="unbounded">\r
+ *           &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}sim_specs" minOccurs="0"/>\r
+ *           &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}model_units" minOccurs="0"/>\r
+ *           &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}behavior" minOccurs="0"/>\r
+ *           &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}data" minOccurs="0"/>\r
+ *           &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}style" minOccurs="0"/>\r
+ *           &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}macro" maxOccurs="unbounded" minOccurs="0"/>\r
+ *           &lt;element ref="{http://docs.oasis-open.org/xmile/ns/XMILE/v1.0}model" maxOccurs="unbounded"/>\r
+ *           &lt;element name="dimensions">\r
+ *             &lt;complexType>\r
+ *               &lt;complexContent>\r
+ *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                   &lt;sequence>\r
+ *                     &lt;element name="dim" maxOccurs="unbounded" minOccurs="0">\r
+ *                       &lt;complexType>\r
+ *                         &lt;complexContent>\r
+ *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                             &lt;sequence maxOccurs="unbounded">\r
+ *                               &lt;element name="elem" maxOccurs="unbounded" minOccurs="0">\r
+ *                                 &lt;complexType>\r
+ *                                   &lt;complexContent>\r
+ *                                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *                                       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                                     &lt;/restriction>\r
+ *                                   &lt;/complexContent>\r
+ *                                 &lt;/complexType>\r
+ *                               &lt;/element>\r
+ *                             &lt;/sequence>\r
+ *                             &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+ *                             &lt;attribute name="size" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+ *                           &lt;/restriction>\r
+ *                         &lt;/complexContent>\r
+ *                       &lt;/complexType>\r
+ *                     &lt;/element>\r
+ *                   &lt;/sequence>\r
+ *                 &lt;/restriction>\r
+ *               &lt;/complexContent>\r
+ *             &lt;/complexType>\r
+ *           &lt;/element>\r
+ *         &lt;/choice>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="version" use="required">\r
+ *         &lt;simpleType>\r
+ *           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}decimal">\r
+ *             &lt;enumeration value="1.0"/>\r
+ *           &lt;/restriction>\r
+ *         &lt;/simpleType>\r
+ *       &lt;/attribute>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "", propOrder = {\r
+    "header",\r
+    "simSpecsOrModelUnitsOrBehavior"\r
+})\r
+@XmlRootElement(name = "xmile")\r
+public class Xmile {\r
+\r
+    @XmlElement(required = true)\r
+    protected Header header;\r
+    @XmlElements({\r
+        @XmlElement(name = "sim_specs", type = SimSpecs.class),\r
+        @XmlElement(name = "model_units", type = ModelUnits.class),\r
+        @XmlElement(name = "behavior", type = Behavior.class),\r
+        @XmlElement(name = "data", type = Data.class),\r
+        @XmlElement(name = "style", type = Style.class),\r
+        @XmlElement(name = "macro", type = Macro.class),\r
+        @XmlElement(name = "model", type = Model.class),\r
+        @XmlElement(name = "dimensions", type = Xmile.Dimensions.class)\r
+    })\r
+    protected List<Object> simSpecsOrModelUnitsOrBehavior;\r
+    @XmlAttribute(name = "version", required = true)\r
+    protected BigDecimal version;\r
+\r
+    /**\r
+     * Gets the value of the header property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Header }\r
+     *     \r
+     */\r
+    public Header getHeader() {\r
+        return header;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the header property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Header }\r
+     *     \r
+     */\r
+    public void setHeader(Header value) {\r
+        this.header = value;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the simSpecsOrModelUnitsOrBehavior property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the simSpecsOrModelUnitsOrBehavior property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getSimSpecsOrModelUnitsOrBehavior().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link SimSpecs }\r
+     * {@link ModelUnits }\r
+     * {@link Behavior }\r
+     * {@link Data }\r
+     * {@link Style }\r
+     * {@link Macro }\r
+     * {@link Model }\r
+     * {@link Xmile.Dimensions }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getSimSpecsOrModelUnitsOrBehavior() {\r
+        if (simSpecsOrModelUnitsOrBehavior == null) {\r
+            simSpecsOrModelUnitsOrBehavior = new ArrayList<Object>();\r
+        }\r
+        return this.simSpecsOrModelUnitsOrBehavior;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the version property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link BigDecimal }\r
+     *     \r
+     */\r
+    public BigDecimal getVersion() {\r
+        return version;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the version property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link BigDecimal }\r
+     *     \r
+     */\r
+    public void setVersion(BigDecimal value) {\r
+        this.version = value;\r
+    }\r
+\r
+\r
+    /**\r
+     * <p>Java class for anonymous complex type.\r
+     * \r
+     * <p>The following schema fragment specifies the expected content contained within this class.\r
+     * \r
+     * <pre>\r
+     * &lt;complexType>\r
+     *   &lt;complexContent>\r
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *       &lt;sequence>\r
+     *         &lt;element name="dim" maxOccurs="unbounded" minOccurs="0">\r
+     *           &lt;complexType>\r
+     *             &lt;complexContent>\r
+     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                 &lt;sequence maxOccurs="unbounded">\r
+     *                   &lt;element name="elem" maxOccurs="unbounded" minOccurs="0">\r
+     *                     &lt;complexType>\r
+     *                       &lt;complexContent>\r
+     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+     *                           &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                         &lt;/restriction>\r
+     *                       &lt;/complexContent>\r
+     *                     &lt;/complexType>\r
+     *                   &lt;/element>\r
+     *                 &lt;/sequence>\r
+     *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+     *                 &lt;attribute name="size" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+     *               &lt;/restriction>\r
+     *             &lt;/complexContent>\r
+     *           &lt;/complexType>\r
+     *         &lt;/element>\r
+     *       &lt;/sequence>\r
+     *     &lt;/restriction>\r
+     *   &lt;/complexContent>\r
+     * &lt;/complexType>\r
+     * </pre>\r
+     * \r
+     * \r
+     */\r
+    @XmlAccessorType(XmlAccessType.FIELD)\r
+    @XmlType(name = "", propOrder = {\r
+        "dim"\r
+    })\r
+    public static class Dimensions {\r
+\r
+        protected List<Xmile.Dimensions.Dim> dim;\r
+\r
+        /**\r
+         * Gets the value of the dim property.\r
+         * \r
+         * <p>\r
+         * This accessor method returns a reference to the live list,\r
+         * not a snapshot. Therefore any modification you make to the\r
+         * returned list will be present inside the JAXB object.\r
+         * This is why there is not a <CODE>set</CODE> method for the dim property.\r
+         * \r
+         * <p>\r
+         * For example, to add a new item, do as follows:\r
+         * <pre>\r
+         *    getDim().add(newItem);\r
+         * </pre>\r
+         * \r
+         * \r
+         * <p>\r
+         * Objects of the following type(s) are allowed in the list\r
+         * {@link Xmile.Dimensions.Dim }\r
+         * \r
+         * \r
+         */\r
+        public List<Xmile.Dimensions.Dim> getDim() {\r
+            if (dim == null) {\r
+                dim = new ArrayList<Xmile.Dimensions.Dim>();\r
+            }\r
+            return this.dim;\r
+        }\r
+\r
+\r
+        /**\r
+         * <p>Java class for anonymous complex type.\r
+         * \r
+         * <p>The following schema fragment specifies the expected content contained within this class.\r
+         * \r
+         * <pre>\r
+         * &lt;complexType>\r
+         *   &lt;complexContent>\r
+         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *       &lt;sequence maxOccurs="unbounded">\r
+         *         &lt;element name="elem" maxOccurs="unbounded" minOccurs="0">\r
+         *           &lt;complexType>\r
+         *             &lt;complexContent>\r
+         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+         *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *               &lt;/restriction>\r
+         *             &lt;/complexContent>\r
+         *           &lt;/complexType>\r
+         *         &lt;/element>\r
+         *       &lt;/sequence>\r
+         *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+         *       &lt;attribute name="size" type="{http://www.w3.org/2001/XMLSchema}int" />\r
+         *     &lt;/restriction>\r
+         *   &lt;/complexContent>\r
+         * &lt;/complexType>\r
+         * </pre>\r
+         * \r
+         * \r
+         */\r
+        @XmlAccessorType(XmlAccessType.FIELD)\r
+        @XmlType(name = "", propOrder = {\r
+            "elem"\r
+        })\r
+        public static class Dim {\r
+\r
+            protected List<Xmile.Dimensions.Dim.Elem> elem;\r
+            @XmlAttribute(name = "name", required = true)\r
+            protected String name;\r
+            @XmlAttribute(name = "size")\r
+            protected Integer size;\r
+\r
+            /**\r
+             * Gets the value of the elem property.\r
+             * \r
+             * <p>\r
+             * This accessor method returns a reference to the live list,\r
+             * not a snapshot. Therefore any modification you make to the\r
+             * returned list will be present inside the JAXB object.\r
+             * This is why there is not a <CODE>set</CODE> method for the elem property.\r
+             * \r
+             * <p>\r
+             * For example, to add a new item, do as follows:\r
+             * <pre>\r
+             *    getElem().add(newItem);\r
+             * </pre>\r
+             * \r
+             * \r
+             * <p>\r
+             * Objects of the following type(s) are allowed in the list\r
+             * {@link Xmile.Dimensions.Dim.Elem }\r
+             * \r
+             * \r
+             */\r
+            public List<Xmile.Dimensions.Dim.Elem> getElem() {\r
+                if (elem == null) {\r
+                    elem = new ArrayList<Xmile.Dimensions.Dim.Elem>();\r
+                }\r
+                return this.elem;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the name property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public String getName() {\r
+                return name;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the name property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link String }\r
+             *     \r
+             */\r
+            public void setName(String value) {\r
+                this.name = value;\r
+            }\r
+\r
+            /**\r
+             * Gets the value of the size property.\r
+             * \r
+             * @return\r
+             *     possible object is\r
+             *     {@link Integer }\r
+             *     \r
+             */\r
+            public Integer getSize() {\r
+                return size;\r
+            }\r
+\r
+            /**\r
+             * Sets the value of the size property.\r
+             * \r
+             * @param value\r
+             *     allowed object is\r
+             *     {@link Integer }\r
+             *     \r
+             */\r
+            public void setSize(Integer value) {\r
+                this.size = value;\r
+            }\r
+\r
+\r
+            /**\r
+             * <p>Java class for anonymous complex type.\r
+             * \r
+             * <p>The following schema fragment specifies the expected content contained within this class.\r
+             * \r
+             * <pre>\r
+             * &lt;complexType>\r
+             *   &lt;complexContent>\r
+             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+             *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />\r
+             *     &lt;/restriction>\r
+             *   &lt;/complexContent>\r
+             * &lt;/complexType>\r
+             * </pre>\r
+             * \r
+             * \r
+             */\r
+            @XmlAccessorType(XmlAccessType.FIELD)\r
+            @XmlType(name = "")\r
+            public static class Elem {\r
+\r
+                @XmlAttribute(name = "name", required = true)\r
+                protected String name;\r
+\r
+                /**\r
+                 * Gets the value of the name property.\r
+                 * \r
+                 * @return\r
+                 *     possible object is\r
+                 *     {@link String }\r
+                 *     \r
+                 */\r
+                public String getName() {\r
+                    return name;\r
+                }\r
+\r
+                /**\r
+                 * Sets the value of the name property.\r
+                 * \r
+                 * @param value\r
+                 *     allowed object is\r
+                 *     {@link String }\r
+                 *     \r
+                 */\r
+                public void setName(String value) {\r
+                    this.name = value;\r
+                }\r
+\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/package-info.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/schema/package-info.java
new file mode 100644 (file)
index 0000000..3033f5c
--- /dev/null
@@ -0,0 +1,9 @@
+//\r
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \r
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \r
+// Any modifications to this file will be lost upon recompilation of the source schema. \r
+// Generated on: 2015.04.14 at 05:10:40 PM EEST \r
+//\r
+\r
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/xmile/ns/XMILE/v1.0", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)\r
+package org.simantics.sysdyn.xmile.schema;\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/ParseException.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/ParseException.java
new file mode 100644 (file)
index 0000000..5ad3eb0
--- /dev/null
@@ -0,0 +1,187 @@
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 6.0 */\r
+/* JavaCCOptions:KEEP_LINE_COL=null */\r
+package org.simantics.sysdyn.xmile.unitParser;\r
+\r
+/**\r
+ * This exception is thrown when parse errors are encountered.\r
+ * You can explicitly create objects of this exception type by\r
+ * calling the method generateParseException in the generated\r
+ * parser.\r
+ *\r
+ * You can modify this class to customize your error reporting\r
+ * mechanisms so long as you retain the public fields.\r
+ */\r
+public class ParseException extends Exception {\r
+\r
+  /**\r
+   * The version identifier for this Serializable class.\r
+   * Increment only if the <i>serialized</i> form of the\r
+   * class changes.\r
+   */\r
+  private static final long serialVersionUID = 1L;\r
+\r
+  /**\r
+   * This constructor is used by the method "generateParseException"\r
+   * in the generated parser.  Calling this constructor generates\r
+   * a new object of this type with the fields "currentToken",\r
+   * "expectedTokenSequences", and "tokenImage" set.\r
+   */\r
+  public ParseException(Token currentTokenVal,\r
+                        int[][] expectedTokenSequencesVal,\r
+                        String[] tokenImageVal\r
+                       )\r
+  {\r
+    super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));\r
+    currentToken = currentTokenVal;\r
+    expectedTokenSequences = expectedTokenSequencesVal;\r
+    tokenImage = tokenImageVal;\r
+  }\r
+\r
+  /**\r
+   * The following constructors are for use by you for whatever\r
+   * purpose you can think of.  Constructing the exception in this\r
+   * manner makes the exception behave in the normal way - i.e., as\r
+   * documented in the class "Throwable".  The fields "errorToken",\r
+   * "expectedTokenSequences", and "tokenImage" do not contain\r
+   * relevant information.  The JavaCC generated code does not use\r
+   * these constructors.\r
+   */\r
+\r
+  public ParseException() {\r
+    super();\r
+  }\r
+\r
+  /** Constructor with message. */\r
+  public ParseException(String message) {\r
+    super(message);\r
+  }\r
+\r
+\r
+  /**\r
+   * This is the last token that has been consumed successfully.  If\r
+   * this object has been created due to a parse error, the token\r
+   * followng this token will (therefore) be the first error token.\r
+   */\r
+  public Token currentToken;\r
+\r
+  /**\r
+   * Each entry in this array is an array of integers.  Each array\r
+   * of integers represents a sequence of tokens (by their ordinal\r
+   * values) that is expected at this point of the parse.\r
+   */\r
+  public int[][] expectedTokenSequences;\r
+\r
+  /**\r
+   * This is a reference to the "tokenImage" array of the generated\r
+   * parser within which the parse error occurred.  This array is\r
+   * defined in the generated ...Constants interface.\r
+   */\r
+  public String[] tokenImage;\r
+\r
+  /**\r
+   * It uses "currentToken" and "expectedTokenSequences" to generate a parse\r
+   * error message and returns it.  If this object has been created\r
+   * due to a parse error, and you do not catch it (it gets thrown\r
+   * from the parser) the correct error message\r
+   * gets displayed.\r
+   */\r
+  private static String initialise(Token currentToken,\r
+                           int[][] expectedTokenSequences,\r
+                           String[] tokenImage) {\r
+    String eol = System.getProperty("line.separator", "\n");\r
+    StringBuffer expected = new StringBuffer();\r
+    int maxSize = 0;\r
+    for (int i = 0; i < expectedTokenSequences.length; i++) {\r
+      if (maxSize < expectedTokenSequences[i].length) {\r
+        maxSize = expectedTokenSequences[i].length;\r
+      }\r
+      for (int j = 0; j < expectedTokenSequences[i].length; j++) {\r
+        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');\r
+      }\r
+      if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {\r
+        expected.append("...");\r
+      }\r
+      expected.append(eol).append("    ");\r
+    }\r
+    String retval = "Encountered \"";\r
+    Token tok = currentToken.next;\r
+    for (int i = 0; i < maxSize; i++) {\r
+      if (i != 0) retval += " ";\r
+      if (tok.kind == 0) {\r
+        retval += tokenImage[0];\r
+        break;\r
+      }\r
+      retval += " " + tokenImage[tok.kind];\r
+      retval += " \"";\r
+      retval += add_escapes(tok.image);\r
+      retval += " \"";\r
+      tok = tok.next;\r
+    }\r
+    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;\r
+    retval += "." + eol;\r
+    if (expectedTokenSequences.length == 1) {\r
+      retval += "Was expecting:" + eol + "    ";\r
+    } else {\r
+      retval += "Was expecting one of:" + eol + "    ";\r
+    }\r
+    retval += expected.toString();\r
+    return retval;\r
+  }\r
+\r
+  /**\r
+   * The end of line string for this machine.\r
+   */\r
+  protected String eol = System.getProperty("line.separator", "\n");\r
+\r
+  /**\r
+   * Used to convert raw characters to their escaped version\r
+   * when these raw version cannot be used as part of an ASCII\r
+   * string literal.\r
+   */\r
+  static String add_escapes(String str) {\r
+      StringBuffer retval = new StringBuffer();\r
+      char ch;\r
+      for (int i = 0; i < str.length(); i++) {\r
+        switch (str.charAt(i))\r
+        {\r
+           case 0 :\r
+              continue;\r
+           case '\b':\r
+              retval.append("\\b");\r
+              continue;\r
+           case '\t':\r
+              retval.append("\\t");\r
+              continue;\r
+           case '\n':\r
+              retval.append("\\n");\r
+              continue;\r
+           case '\f':\r
+              retval.append("\\f");\r
+              continue;\r
+           case '\r':\r
+              retval.append("\\r");\r
+              continue;\r
+           case '\"':\r
+              retval.append("\\\"");\r
+              continue;\r
+           case '\'':\r
+              retval.append("\\\'");\r
+              continue;\r
+           case '\\':\r
+              retval.append("\\\\");\r
+              continue;\r
+           default:\r
+              if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {\r
+                 String s = "0000" + Integer.toString(ch, 16);\r
+                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));\r
+              } else {\r
+                 retval.append(ch);\r
+              }\r
+              continue;\r
+        }\r
+      }\r
+      return retval.toString();\r
+   }\r
+\r
+}\r
+/* JavaCC - OriginalChecksum=9f3e5b6dbc3a23b192addd19d5bbff40 (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/SimpleCharStream.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/SimpleCharStream.java
new file mode 100644 (file)
index 0000000..f451316
--- /dev/null
@@ -0,0 +1,474 @@
+/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 6.0 */\r
+/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */\r
+package org.simantics.sysdyn.xmile.unitParser;\r
+\r
+/**\r
+ * An implementation of interface CharStream, where the stream is assumed to\r
+ * contain only ASCII characters (without unicode processing).\r
+ */\r
+\r
+public class SimpleCharStream\r
+{\r
+/** Whether parser is static. */\r
+  public static final boolean staticFlag = false;\r
+  int bufsize;\r
+  int available;\r
+  int tokenBegin;\r
+/** Position in buffer. */\r
+  public int bufpos = -1;\r
+  protected int bufline[];\r
+  protected int bufcolumn[];\r
+\r
+  protected int column = 0;\r
+  protected int line = 1;\r
+\r
+  protected boolean prevCharIsCR = false;\r
+  protected boolean prevCharIsLF = false;\r
+\r
+  protected java.io.Reader inputStream;\r
+\r
+  protected char[] buffer;\r
+  protected int maxNextCharInd = 0;\r
+  protected int inBuf = 0;\r
+  protected int tabSize = 8;\r
+  protected boolean trackLineColumn = true;\r
+\r
+  public void setTabSize(int i) { tabSize = i; }\r
+  public int getTabSize() { return tabSize; }\r
+\r
+\r
+  protected void ExpandBuff(boolean wrapAround)\r
+  {\r
+    char[] newbuffer = new char[bufsize + 2048];\r
+    int newbufline[] = new int[bufsize + 2048];\r
+    int newbufcolumn[] = new int[bufsize + 2048];\r
+\r
+    try\r
+    {\r
+      if (wrapAround)\r
+      {\r
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);\r
+        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);\r
+        buffer = newbuffer;\r
+\r
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);\r
+        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);\r
+        bufline = newbufline;\r
+\r
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);\r
+        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);\r
+        bufcolumn = newbufcolumn;\r
+\r
+        maxNextCharInd = (bufpos += (bufsize - tokenBegin));\r
+      }\r
+      else\r
+      {\r
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);\r
+        buffer = newbuffer;\r
+\r
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);\r
+        bufline = newbufline;\r
+\r
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);\r
+        bufcolumn = newbufcolumn;\r
+\r
+        maxNextCharInd = (bufpos -= tokenBegin);\r
+      }\r
+    }\r
+    catch (Throwable t)\r
+    {\r
+      throw new Error(t.getMessage());\r
+    }\r
+\r
+\r
+    bufsize += 2048;\r
+    available = bufsize;\r
+    tokenBegin = 0;\r
+  }\r
+\r
+  protected void FillBuff() throws java.io.IOException\r
+  {\r
+    if (maxNextCharInd == available)\r
+    {\r
+      if (available == bufsize)\r
+      {\r
+        if (tokenBegin > 2048)\r
+        {\r
+          bufpos = maxNextCharInd = 0;\r
+          available = tokenBegin;\r
+        }\r
+        else if (tokenBegin < 0)\r
+          bufpos = maxNextCharInd = 0;\r
+        else\r
+          ExpandBuff(false);\r
+      }\r
+      else if (available > tokenBegin)\r
+        available = bufsize;\r
+      else if ((tokenBegin - available) < 2048)\r
+        ExpandBuff(true);\r
+      else\r
+        available = tokenBegin;\r
+    }\r
+\r
+    int i;\r
+    try {\r
+      if ((i = inputStream.read(buffer, maxNextCharInd, available - maxNextCharInd)) == -1)\r
+      {\r
+        inputStream.close();\r
+        throw new java.io.IOException();\r
+      }\r
+      else\r
+        maxNextCharInd += i;\r
+      return;\r
+    }\r
+    catch(java.io.IOException e) {\r
+      --bufpos;\r
+      backup(0);\r
+      if (tokenBegin == -1)\r
+        tokenBegin = bufpos;\r
+      throw e;\r
+    }\r
+  }\r
+\r
+/** Start. */\r
+  public char BeginToken() throws java.io.IOException\r
+  {\r
+    tokenBegin = -1;\r
+    char c = readChar();\r
+    tokenBegin = bufpos;\r
+\r
+    return c;\r
+  }\r
+\r
+  protected void UpdateLineColumn(char c)\r
+  {\r
+    column++;\r
+\r
+    if (prevCharIsLF)\r
+    {\r
+      prevCharIsLF = false;\r
+      line += (column = 1);\r
+    }\r
+    else if (prevCharIsCR)\r
+    {\r
+      prevCharIsCR = false;\r
+      if (c == '\n')\r
+      {\r
+        prevCharIsLF = true;\r
+      }\r
+      else\r
+        line += (column = 1);\r
+    }\r
+\r
+    switch (c)\r
+    {\r
+      case '\r' :\r
+        prevCharIsCR = true;\r
+        break;\r
+      case '\n' :\r
+        prevCharIsLF = true;\r
+        break;\r
+      case '\t' :\r
+        column--;\r
+        column += (tabSize - (column % tabSize));\r
+        break;\r
+      default :\r
+        break;\r
+    }\r
+\r
+    bufline[bufpos] = line;\r
+    bufcolumn[bufpos] = column;\r
+  }\r
+\r
+/** Read a character. */\r
+  public char readChar() throws java.io.IOException\r
+  {\r
+    if (inBuf > 0)\r
+    {\r
+      --inBuf;\r
+\r
+      if (++bufpos == bufsize)\r
+        bufpos = 0;\r
+\r
+      return buffer[bufpos];\r
+    }\r
+\r
+    if (++bufpos >= maxNextCharInd)\r
+      FillBuff();\r
+\r
+    char c = buffer[bufpos];\r
+\r
+    UpdateLineColumn(c);\r
+    return c;\r
+  }\r
+\r
+  @Deprecated\r
+  /**\r
+   * @deprecated\r
+   * @see #getEndColumn\r
+   */\r
+\r
+  public int getColumn() {\r
+    return bufcolumn[bufpos];\r
+  }\r
+\r
+  @Deprecated\r
+  /**\r
+   * @deprecated\r
+   * @see #getEndLine\r
+   */\r
+\r
+  public int getLine() {\r
+    return bufline[bufpos];\r
+  }\r
+\r
+  /** Get token end column number. */\r
+  public int getEndColumn() {\r
+    return bufcolumn[bufpos];\r
+  }\r
+\r
+  /** Get token end line number. */\r
+  public int getEndLine() {\r
+     return bufline[bufpos];\r
+  }\r
+\r
+  /** Get token beginning column number. */\r
+  public int getBeginColumn() {\r
+    return bufcolumn[tokenBegin];\r
+  }\r
+\r
+  /** Get token beginning line number. */\r
+  public int getBeginLine() {\r
+    return bufline[tokenBegin];\r
+  }\r
+\r
+/** Backup a number of characters. */\r
+  public void backup(int amount) {\r
+\r
+    inBuf += amount;\r
+    if ((bufpos -= amount) < 0)\r
+      bufpos += bufsize;\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.Reader dstream, int startline,\r
+  int startcolumn, int buffersize)\r
+  {\r
+    inputStream = dstream;\r
+    line = startline;\r
+    column = startcolumn - 1;\r
+\r
+    available = bufsize = buffersize;\r
+    buffer = new char[buffersize];\r
+    bufline = new int[buffersize];\r
+    bufcolumn = new int[buffersize];\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.Reader dstream, int startline,\r
+                          int startcolumn)\r
+  {\r
+    this(dstream, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.Reader dstream)\r
+  {\r
+    this(dstream, 1, 1, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.Reader dstream, int startline,\r
+  int startcolumn, int buffersize)\r
+  {\r
+    inputStream = dstream;\r
+    line = startline;\r
+    column = startcolumn - 1;\r
+\r
+    if (buffer == null || buffersize != buffer.length)\r
+    {\r
+      available = bufsize = buffersize;\r
+      buffer = new char[buffersize];\r
+      bufline = new int[buffersize];\r
+      bufcolumn = new int[buffersize];\r
+    }\r
+    prevCharIsLF = prevCharIsCR = false;\r
+    tokenBegin = inBuf = maxNextCharInd = 0;\r
+    bufpos = -1;\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.Reader dstream, int startline,\r
+                     int startcolumn)\r
+  {\r
+    ReInit(dstream, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.Reader dstream)\r
+  {\r
+    ReInit(dstream, 1, 1, 4096);\r
+  }\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,\r
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException\r
+  {\r
+    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, int startline,\r
+  int startcolumn, int buffersize)\r
+  {\r
+    this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,\r
+                          int startcolumn) throws java.io.UnsupportedEncodingException\r
+  {\r
+    this(dstream, encoding, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, int startline,\r
+                          int startcolumn)\r
+  {\r
+    this(dstream, startline, startcolumn, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException\r
+  {\r
+    this(dstream, encoding, 1, 1, 4096);\r
+  }\r
+\r
+  /** Constructor. */\r
+  public SimpleCharStream(java.io.InputStream dstream)\r
+  {\r
+    this(dstream, 1, 1, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,\r
+                          int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException\r
+  {\r
+    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, int startline,\r
+                          int startcolumn, int buffersize)\r
+  {\r
+    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException\r
+  {\r
+    ReInit(dstream, encoding, 1, 1, 4096);\r
+  }\r
+\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream)\r
+  {\r
+    ReInit(dstream, 1, 1, 4096);\r
+  }\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,\r
+                     int startcolumn) throws java.io.UnsupportedEncodingException\r
+  {\r
+    ReInit(dstream, encoding, startline, startcolumn, 4096);\r
+  }\r
+  /** Reinitialise. */\r
+  public void ReInit(java.io.InputStream dstream, int startline,\r
+                     int startcolumn)\r
+  {\r
+    ReInit(dstream, startline, startcolumn, 4096);\r
+  }\r
+  /** Get token literal value. */\r
+  public String GetImage()\r
+  {\r
+    if (bufpos >= tokenBegin)\r
+      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);\r
+    else\r
+      return new String(buffer, tokenBegin, bufsize - tokenBegin) +\r
+                            new String(buffer, 0, bufpos + 1);\r
+  }\r
+\r
+  /** Get the suffix. */\r
+  public char[] GetSuffix(int len)\r
+  {\r
+    char[] ret = new char[len];\r
+\r
+    if ((bufpos + 1) >= len)\r
+      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);\r
+    else\r
+    {\r
+      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,\r
+                                                        len - bufpos - 1);\r
+      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);\r
+    }\r
+\r
+    return ret;\r
+  }\r
+\r
+  /** Reset buffer when finished. */\r
+  public void Done()\r
+  {\r
+    buffer = null;\r
+    bufline = null;\r
+    bufcolumn = null;\r
+  }\r
+\r
+  /**\r
+   * Method to adjust line and column numbers for the start of a token.\r
+   */\r
+  public void adjustBeginLineColumn(int newLine, int newCol)\r
+  {\r
+    int start = tokenBegin;\r
+    int len;\r
+\r
+    if (bufpos >= tokenBegin)\r
+    {\r
+      len = bufpos - tokenBegin + inBuf + 1;\r
+    }\r
+    else\r
+    {\r
+      len = bufsize - tokenBegin + bufpos + 1 + inBuf;\r
+    }\r
+\r
+    int i = 0, j = 0, k = 0;\r
+    int nextColDiff = 0, columnDiff = 0;\r
+\r
+    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])\r
+    {\r
+      bufline[j] = newLine;\r
+      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];\r
+      bufcolumn[j] = newCol + columnDiff;\r
+      columnDiff = nextColDiff;\r
+      i++;\r
+    }\r
+\r
+    if (i < len)\r
+    {\r
+      bufline[j] = newLine++;\r
+      bufcolumn[j] = newCol + columnDiff;\r
+\r
+      while (i++ < len)\r
+      {\r
+        if (bufline[j = start % bufsize] != bufline[++start % bufsize])\r
+          bufline[j] = newLine++;\r
+        else\r
+          bufline[j] = newLine;\r
+      }\r
+    }\r
+\r
+    line = bufline[j];\r
+    column = bufcolumn[j];\r
+  }\r
+\r
+  boolean getTrackLineColumn() { return trackLineColumn; }\r
+  void setTrackLineColumn(boolean tlc) { trackLineColumn = tlc; }\r
+}\r
+/* JavaCC - OriginalChecksum=510770489b298cc3439ff0dd6aa7b2a2 (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/Token.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/Token.java
new file mode 100644 (file)
index 0000000..502c182
--- /dev/null
@@ -0,0 +1,131 @@
+/* Generated By:JavaCC: Do not edit this line. Token.java Version 6.0 */\r
+/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */\r
+package org.simantics.sysdyn.xmile.unitParser;\r
+\r
+/**\r
+ * Describes the input token stream.\r
+ */\r
+\r
+public class Token implements java.io.Serializable {\r
+\r
+  /**\r
+   * The version identifier for this Serializable class.\r
+   * Increment only if the <i>serialized</i> form of the\r
+   * class changes.\r
+   */\r
+  private static final long serialVersionUID = 1L;\r
+\r
+  /**\r
+   * An integer that describes the kind of this token.  This numbering\r
+   * system is determined by JavaCCParser, and a table of these numbers is\r
+   * stored in the file ...Constants.java.\r
+   */\r
+  public int kind;\r
+\r
+  /** The line number of the first character of this Token. */\r
+  public int beginLine;\r
+  /** The column number of the first character of this Token. */\r
+  public int beginColumn;\r
+  /** The line number of the last character of this Token. */\r
+  public int endLine;\r
+  /** The column number of the last character of this Token. */\r
+  public int endColumn;\r
+\r
+  /**\r
+   * The string image of the token.\r
+   */\r
+  public String image;\r
+\r
+  /**\r
+   * A reference to the next regular (non-special) token from the input\r
+   * stream.  If this is the last token from the input stream, or if the\r
+   * token manager has not read tokens beyond this one, this field is\r
+   * set to null.  This is true only if this token is also a regular\r
+   * token.  Otherwise, see below for a description of the contents of\r
+   * this field.\r
+   */\r
+  public Token next;\r
+\r
+  /**\r
+   * This field is used to access special tokens that occur prior to this\r
+   * token, but after the immediately preceding regular (non-special) token.\r
+   * If there are no such special tokens, this field is set to null.\r
+   * When there are more than one such special token, this field refers\r
+   * to the last of these special tokens, which in turn refers to the next\r
+   * previous special token through its specialToken field, and so on\r
+   * until the first special token (whose specialToken field is null).\r
+   * The next fields of special tokens refer to other special tokens that\r
+   * immediately follow it (without an intervening regular token).  If there\r
+   * is no such token, this field is null.\r
+   */\r
+  public Token specialToken;\r
+\r
+  /**\r
+   * An optional attribute value of the Token.\r
+   * Tokens which are not used as syntactic sugar will often contain\r
+   * meaningful values that will be used later on by the compiler or\r
+   * interpreter. This attribute value is often different from the image.\r
+   * Any subclass of Token that actually wants to return a non-null value can\r
+   * override this method as appropriate.\r
+   */\r
+  public Object getValue() {\r
+    return null;\r
+  }\r
+\r
+  /**\r
+   * No-argument constructor\r
+   */\r
+  public Token() {}\r
+\r
+  /**\r
+   * Constructs a new token for the specified Image.\r
+   */\r
+  public Token(int kind)\r
+  {\r
+    this(kind, null);\r
+  }\r
+\r
+  /**\r
+   * Constructs a new token for the specified Image and Kind.\r
+   */\r
+  public Token(int kind, String image)\r
+  {\r
+    this.kind = kind;\r
+    this.image = image;\r
+  }\r
+\r
+  /**\r
+   * Returns the image.\r
+   */\r
+  public String toString()\r
+  {\r
+    return image;\r
+  }\r
+\r
+  /**\r
+   * Returns a new Token object, by default. However, if you want, you\r
+   * can create and return subclass objects based on the value of ofKind.\r
+   * Simply add the cases to the switch for all those special cases.\r
+   * For example, if you have a subclass of Token called IDToken that\r
+   * you want to create if ofKind is ID, simply add something like :\r
+   *\r
+   *    case MyParserConstants.ID : return new IDToken(ofKind, image);\r
+   *\r
+   * to the following switch statement. Then you can cast matchedToken\r
+   * variable to the appropriate type and use sit in your lexical actions.\r
+   */\r
+  public static Token newToken(int ofKind, String image)\r
+  {\r
+    switch(ofKind)\r
+    {\r
+      default : return new Token(ofKind, image);\r
+    }\r
+  }\r
+\r
+  public static Token newToken(int ofKind)\r
+  {\r
+    return newToken(ofKind, null);\r
+  }\r
+\r
+}\r
+/* JavaCC - OriginalChecksum=bdd300af469a200cfaa070dc9d7dd2fc (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/TokenMgrError.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/TokenMgrError.java
new file mode 100644 (file)
index 0000000..06ae774
--- /dev/null
@@ -0,0 +1,147 @@
+/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 6.0 */\r
+/* JavaCCOptions: */\r
+package org.simantics.sysdyn.xmile.unitParser;\r
+\r
+/** Token Manager Error. */\r
+public class TokenMgrError extends Error\r
+{\r
+\r
+  /**\r
+   * The version identifier for this Serializable class.\r
+   * Increment only if the <i>serialized</i> form of the\r
+   * class changes.\r
+   */\r
+  private static final long serialVersionUID = 1L;\r
+\r
+  /*\r
+   * Ordinals for various reasons why an Error of this type can be thrown.\r
+   */\r
+\r
+  /**\r
+   * Lexical error occurred.\r
+   */\r
+  static final int LEXICAL_ERROR = 0;\r
+\r
+  /**\r
+   * An attempt was made to create a second instance of a static token manager.\r
+   */\r
+  static final int STATIC_LEXER_ERROR = 1;\r
+\r
+  /**\r
+   * Tried to change to an invalid lexical state.\r
+   */\r
+  static final int INVALID_LEXICAL_STATE = 2;\r
+\r
+  /**\r
+   * Detected (and bailed out of) an infinite loop in the token manager.\r
+   */\r
+  static final int LOOP_DETECTED = 3;\r
+\r
+  /**\r
+   * Indicates the reason why the exception is thrown. It will have\r
+   * one of the above 4 values.\r
+   */\r
+  int errorCode;\r
+\r
+  /**\r
+   * Replaces unprintable characters by their escaped (or unicode escaped)\r
+   * equivalents in the given string\r
+   */\r
+  protected static final String addEscapes(String str) {\r
+    StringBuffer retval = new StringBuffer();\r
+    char ch;\r
+    for (int i = 0; i < str.length(); i++) {\r
+      switch (str.charAt(i))\r
+      {\r
+        case 0 :\r
+          continue;\r
+        case '\b':\r
+          retval.append("\\b");\r
+          continue;\r
+        case '\t':\r
+          retval.append("\\t");\r
+          continue;\r
+        case '\n':\r
+          retval.append("\\n");\r
+          continue;\r
+        case '\f':\r
+          retval.append("\\f");\r
+          continue;\r
+        case '\r':\r
+          retval.append("\\r");\r
+          continue;\r
+        case '\"':\r
+          retval.append("\\\"");\r
+          continue;\r
+        case '\'':\r
+          retval.append("\\\'");\r
+          continue;\r
+        case '\\':\r
+          retval.append("\\\\");\r
+          continue;\r
+        default:\r
+          if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {\r
+            String s = "0000" + Integer.toString(ch, 16);\r
+            retval.append("\\u" + s.substring(s.length() - 4, s.length()));\r
+          } else {\r
+            retval.append(ch);\r
+          }\r
+          continue;\r
+      }\r
+    }\r
+    return retval.toString();\r
+  }\r
+\r
+  /**\r
+   * Returns a detailed message for the Error when it is thrown by the\r
+   * token manager to indicate a lexical error.\r
+   * Parameters :\r
+   *    EOFSeen     : indicates if EOF caused the lexical error\r
+   *    curLexState : lexical state in which this error occurred\r
+   *    errorLine   : line number when the error occurred\r
+   *    errorColumn : column number when the error occurred\r
+   *    errorAfter  : prefix that was seen before this error occurred\r
+   *    curchar     : the offending character\r
+   * Note: You can customize the lexical error message by modifying this method.\r
+   */\r
+  protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {\r
+    return("Lexical error at line " +\r
+          errorLine + ", column " +\r
+          errorColumn + ".  Encountered: " +\r
+          (EOFSeen ? "<EOF> " : ("\"" + addEscapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +\r
+          "after : \"" + addEscapes(errorAfter) + "\"");\r
+  }\r
+\r
+  /**\r
+   * You can also modify the body of this method to customize your error messages.\r
+   * For example, cases like LOOP_DETECTED and INVALID_LEXICAL_STATE are not\r
+   * of end-users concern, so you can return something like :\r
+   *\r
+   *     "Internal Error : Please file a bug report .... "\r
+   *\r
+   * from this method for such cases in the release version of your parser.\r
+   */\r
+  public String getMessage() {\r
+    return super.getMessage();\r
+  }\r
+\r
+  /*\r
+   * Constructors of various flavors follow.\r
+   */\r
+\r
+  /** No arg constructor. */\r
+  public TokenMgrError() {\r
+  }\r
+\r
+  /** Constructor with message and reason. */\r
+  public TokenMgrError(String message, int reason) {\r
+    super(message);\r
+    errorCode = reason;\r
+  }\r
+\r
+  /** Full Constructor. */\r
+  public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {\r
+    this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);\r
+  }\r
+}\r
+/* JavaCC - OriginalChecksum=c39c596a3f3055640a83c4034a411637 (do not edit this line) */\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParser.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParser.java
new file mode 100644 (file)
index 0000000..0479edf
--- /dev/null
@@ -0,0 +1,282 @@
+/* XmileUnitParser.java */
+/* Generated By:JavaCC: Do not edit this line. XmileUnitParser.java */
+package org.simantics.sysdyn.xmile.unitParser;
+
+import java.io.StringReader;
+import java.util.Map;
+
+public class XmileUnitParser implements XmileUnitParserConstants {
+  private static final boolean DEBUG = true;
+
+  public static String parse(String equation, Map<String, String> units) {
+    XmileUnitParser parser = new XmileUnitParser(new StringReader(equation));
+
+    try {
+      return parser.Equation(units);
+    }
+    catch (ParseException e) {
+      e.printStackTrace();
+      return null;
+    }
+  }
+
+  final public String Equation(Map<String, String> units) throws ParseException {String e;
+    e = BinExpr(units);
+    jj_consume_token(0);
+{if ("" != null) return e;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String BinOp() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case MULT:{
+      jj_consume_token(MULT);
+{if ("" != null) return "*";}
+      break;
+      }
+    case DIV:{
+      jj_consume_token(DIV);
+{if ("" != null) return "/";}
+      break;
+      }
+    case EXP:{
+      jj_consume_token(EXP);
+{if ("" != null) return "^";}
+      break;
+      }
+    default:
+      jj_la1[0] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String BinExpr(Map<String, String> units) throws ParseException {String l = null;
+  String o = null;
+  String r = null;
+    l = Atom(units);
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case MULT:
+    case DIV:
+    case EXP:{
+      o = BinOp();
+      r = BinExpr(units);
+      break;
+      }
+    default:
+      jj_la1[1] = jj_gen;
+      ;
+    }
+{if ("" != null) return o != null ? l + o + r : l;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public String Atom(Map<String, String> units) throws ParseException {Token t = null;
+  String s = null;
+    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
+    case IDENTITY:{
+      jj_consume_token(IDENTITY);
+{if ("" != null) return "1";}
+      break;
+      }
+    case IDENT:{
+      t = jj_consume_token(IDENT);
+String key = t.image.toUpperCase();
+    if (units != null && units.get(key) != null) {
+      {if ("" != null) return units.get(key);}
+    }
+    else {
+      {if ("" != null) return t.image;}
+    }
+      break;
+      }
+    case QIDENT:{
+      t = jj_consume_token(QIDENT);
+{if ("" != null) return t.image;}
+      break;
+      }
+    case LPAREN:{
+      jj_consume_token(LPAREN);
+      s = BinExpr(units);
+      jj_consume_token(RPAREN);
+{if ("" != null) return "(" + s + ")";}
+      break;
+      }
+    default:
+      jj_la1[2] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    throw new Error("Missing return statement in function");
+  }
+
+  /** Generated Token Manager. */
+  public XmileUnitParserTokenManager token_source;
+  SimpleCharStream jj_input_stream;
+  /** Current token. */
+  public Token token;
+  /** Next token. */
+  public Token jj_nt;
+  private int jj_ntk;
+  private int jj_gen;
+  final private int[] jj_la1 = new int[3];
+  static private int[] jj_la1_0;
+  static {
+      jj_la1_init_0();
+   }
+   private static void jj_la1_init_0() {
+      jj_la1_0 = new int[] {0x1c,0x1c,0x3a0,};
+   }
+
+  /** Constructor with InputStream. */
+  public XmileUnitParser(java.io.InputStream stream) {
+     this(stream, null);
+  }
+  /** Constructor with InputStream and supplied encoding */
+  public XmileUnitParser(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source = new XmileUnitParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream) {
+     ReInit(stream, null);
+  }
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
+  }
+
+  /** Constructor. */
+  public XmileUnitParser(java.io.Reader stream) {
+    jj_input_stream = new SimpleCharStream(stream, 1, 1);
+    token_source = new XmileUnitParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.Reader stream) {
+    jj_input_stream.ReInit(stream, 1, 1);
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
+  }
+
+  /** Constructor with generated Token Manager. */
+  public XmileUnitParser(XmileUnitParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(XmileUnitParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
+  }
+
+  private Token jj_consume_token(int kind) throws ParseException {
+    Token oldToken;
+    if ((oldToken = token).next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    if (token.kind == kind) {
+      jj_gen++;
+      return token;
+    }
+    token = oldToken;
+    jj_kind = kind;
+    throw generateParseException();
+  }
+
+
+/** Get the next Token. */
+  final public Token getNextToken() {
+    if (token.next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    jj_gen++;
+    return token;
+  }
+
+/** Get the specific Token. */
+  final public Token getToken(int index) {
+    Token t = token;
+    for (int i = 0; i < index; i++) {
+      if (t.next != null) t = t.next;
+      else t = t.next = token_source.getNextToken();
+    }
+    return t;
+  }
+
+  private int jj_ntk_f() {
+    if ((jj_nt=token.next) == null)
+      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+    else
+      return (jj_ntk = jj_nt.kind);
+  }
+
+  private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+  private int[] jj_expentry;
+  private int jj_kind = -1;
+
+  /** Generate ParseException. */
+  public ParseException generateParseException() {
+    jj_expentries.clear();
+    boolean[] la1tokens = new boolean[10];
+    if (jj_kind >= 0) {
+      la1tokens[jj_kind] = true;
+      jj_kind = -1;
+    }
+    for (int i = 0; i < 3; i++) {
+      if (jj_la1[i] == jj_gen) {
+        for (int j = 0; j < 32; j++) {
+          if ((jj_la1_0[i] & (1<<j)) != 0) {
+            la1tokens[j] = true;
+          }
+        }
+      }
+    }
+    for (int i = 0; i < 10; i++) {
+      if (la1tokens[i]) {
+        jj_expentry = new int[1];
+        jj_expentry[0] = i;
+        jj_expentries.add(jj_expentry);
+      }
+    }
+    int[][] exptokseq = new int[jj_expentries.size()][];
+    for (int i = 0; i < jj_expentries.size(); i++) {
+      exptokseq[i] = jj_expentries.get(i);
+    }
+    return new ParseException(token, exptokseq, tokenImage);
+  }
+
+  /** Enable tracing. */
+  final public void enable_tracing() {
+  }
+
+  /** Disable tracing. */
+  final public void disable_tracing() {
+  }
+
+}
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParser.jj b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParser.jj
new file mode 100644 (file)
index 0000000..4abbf04
--- /dev/null
@@ -0,0 +1,93 @@
+options {\r
+       STATIC = false;\r
+}\r
+\r
+PARSER_BEGIN(XmileUnitParser)\r
+package org.simantics.sysdyn.xmile.unitParser;\r
+\r
+import java.io.StringReader;\r
+import java.util.Map;\r
+\r
+public class XmileUnitParser {\r
+  private static final boolean DEBUG = true;\r
+  \r
+  public static String parse(String equation, Map<String, String> units) {\r
+    XmileUnitParser parser = new XmileUnitParser(new StringReader(equation));\r
+    \r
+    try {\r
+      return parser.Equation(units);\r
+    }\r
+    catch (ParseException e) {\r
+      e.printStackTrace();\r
+      return null;\r
+    }\r
+  }\r
+}\r
+PARSER_END(XmileUnitParser)\r
+\r
+SKIP : { " " }\r
+\r
+TOKEN : \r
+{\r
+  <MULT : "*" | "-">\r
+| <DIV : "/">\r
+| <EXP : "^">\r
+| <LPAREN : "("> \r
+| <RPAREN : ")">\r
+| <IDENTITY : "1" | "Dimensionless" | "Unitless" | "Dmnl">\r
+}\r
+\r
+TOKEN : \r
+{ \r
+  /* space is included here because it seems some of the xmile examples use \r
+     spaces in unit identifiers even though they should not */\r
+  <IDENT : ["A"-"Z","a"-"z","$"](["A"-"Z","a"-"z","0"-"9","_","$"," "])*>\r
+| <QIDENT : "\""(~["\\"])+("\\"("\""|"n"|"\\")(~["\\"])+)*"\"">\r
+}\r
+\r
+String Equation(Map<String, String> units) :\r
+{\r
+  String e;\r
+}\r
+{\r
+  e=BinExpr(units) <EOF> { return e; }\r
+}\r
+\r
+String BinOp() :\r
+{}\r
+{\r
+  <MULT>  { return "*"; }\r
+| <DIV>   { return "/"; }\r
+| <EXP>   { return "^"; }\r
+}\r
+\r
+String BinExpr(Map<String, String> units) :\r
+{\r
+  String l = null;\r
+  String o = null;\r
+  String r = null;\r
+}\r
+{\r
+  l=Atom(units) [ o=BinOp() r=BinExpr(units) ] { return o != null ? l + o + r : l; }\r
+}\r
+\r
+String Atom(Map<String, String> units) : \r
+{\r
+  Token t = null;\r
+  String s = null;\r
+}\r
+{\r
+  <IDENTITY> { return "1"; }\r
+| t=<IDENT> \r
+  { \r
+    String key = t.image.toUpperCase();\r
+    if (units != null && units.get(key) != null) {\r
+      return units.get(key);\r
+    }\r
+    else {\r
+      return t.image;\r
+    }\r
+  }\r
+| t=<QIDENT> { return t.image; }\r
+| <LPAREN> s=BinExpr(units) <RPAREN> { return "(" + s + ")"; }\r
+}
\ No newline at end of file
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParserConstants.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParserConstants.java
new file mode 100644 (file)
index 0000000..85c3f13
--- /dev/null
@@ -0,0 +1,47 @@
+/* Generated By:JavaCC: Do not edit this line. XmileUnitParserConstants.java */\r
+package org.simantics.sysdyn.xmile.unitParser;\r
+\r
+\r
+/**\r
+ * Token literal values and constants.\r
+ * Generated by org.javacc.parser.OtherFilesGen#start()\r
+ */\r
+public interface XmileUnitParserConstants {\r
+\r
+  /** End of File. */\r
+  int EOF = 0;\r
+  /** RegularExpression Id. */\r
+  int MULT = 2;\r
+  /** RegularExpression Id. */\r
+  int DIV = 3;\r
+  /** RegularExpression Id. */\r
+  int EXP = 4;\r
+  /** RegularExpression Id. */\r
+  int LPAREN = 5;\r
+  /** RegularExpression Id. */\r
+  int RPAREN = 6;\r
+  /** RegularExpression Id. */\r
+  int IDENTITY = 7;\r
+  /** RegularExpression Id. */\r
+  int IDENT = 8;\r
+  /** RegularExpression Id. */\r
+  int QIDENT = 9;\r
+\r
+  /** Lexical state. */\r
+  int DEFAULT = 0;\r
+\r
+  /** Literal token values. */\r
+  String[] tokenImage = {\r
+    "<EOF>",\r
+    "\" \"",\r
+    "<MULT>",\r
+    "\"/\"",\r
+    "\"^\"",\r
+    "\"(\"",\r
+    "\")\"",\r
+    "<IDENTITY>",\r
+    "<IDENT>",\r
+    "<QIDENT>",\r
+  };\r
+\r
+}\r
diff --git a/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParserTokenManager.java b/org.simantics.sysdyn.xmile/src/org/simantics/sysdyn/xmile/unitParser/XmileUnitParserTokenManager.java
new file mode 100644 (file)
index 0000000..d0834e5
--- /dev/null
@@ -0,0 +1,497 @@
+/* XmileUnitParserTokenManager.java */
+/* Generated By:JavaCC: Do not edit this line. XmileUnitParserTokenManager.java */
+package org.simantics.sysdyn.xmile.unitParser;
+import java.io.StringReader;
+import java.util.Map;
+
+/** Token Manager. */
+@SuppressWarnings("unused")public class XmileUnitParserTokenManager implements XmileUnitParserConstants {
+
+  /** Debug output. */
+  public  java.io.PrintStream debugStream = System.out;
+  /** Set debug output. */
+  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0){
+   switch (pos)
+   {
+      default :
+         return -1;
+   }
+}
+private final int jjStartNfa_0(int pos, long active0){
+   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private int jjStopAtPos(int pos, int kind)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0(){
+   switch(curChar)
+   {
+      case 40:
+         return jjStopAtPos(0, 5);
+      case 41:
+         return jjStopAtPos(0, 6);
+      case 47:
+         return jjStopAtPos(0, 3);
+      case 94:
+         return jjStopAtPos(0, 4);
+      default :
+         return jjMoveNfa_0(0, 0);
+   }
+}
+static final long[] jjbitVec0 = {
+   0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+   int startsAt = 0;
+   jjnewStateCnt = 33;
+   int i = 1;
+   jjstateSet[0] = startState;
+   int kind = 0x7fffffff;
+   for (;;)
+   {
+      if (++jjround == 0x7fffffff)
+         ReInitRounds();
+      if (curChar < 64)
+      {
+         long l = 1L << curChar;
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0x240000000000L & l) != 0L)
+                  {
+                     if (kind > 2)
+                        kind = 2;
+                  }
+                  else if (curChar == 34)
+                     { jjCheckNAdd(13); }
+                  else if (curChar == 36)
+                  {
+                     if (kind > 8)
+                        kind = 8;
+                     { jjCheckNAdd(11); }
+                  }
+                  else if (curChar == 49)
+                  {
+                     if (kind > 7)
+                        kind = 7;
+                  }
+                  break;
+               case 1:
+                  if (curChar == 49 && kind > 7)
+                     kind = 7;
+                  break;
+               case 10:
+                  if (curChar != 36)
+                     break;
+                  if (kind > 8)
+                     kind = 8;
+                  { jjCheckNAdd(11); }
+                  break;
+               case 11:
+                  if ((0x3ff001100000000L & l) == 0L)
+                     break;
+                  if (kind > 8)
+                     kind = 8;
+                  { jjCheckNAdd(11); }
+                  break;
+               case 12:
+                  if (curChar == 34)
+                     { jjCheckNAdd(13); }
+                  break;
+               case 13:
+                  { jjCheckNAddStates(0, 2); }
+                  break;
+               case 15:
+                  if (curChar == 34)
+                     { jjCheckNAdd(16); }
+                  break;
+               case 16:
+                  { jjCheckNAddStates(3, 5); }
+                  break;
+               case 17:
+                  if (curChar == 34 && kind > 9)
+                     kind = 9;
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else if (curChar < 128)
+      {
+         long l = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0x7fffffe07fffffeL & l) != 0L)
+                  {
+                     if (kind > 8)
+                        kind = 8;
+                     { jjCheckNAdd(11); }
+                  }
+                  if (curChar == 68)
+                     { jjAddStates(6, 7); }
+                  else if (curChar == 85)
+                     jjstateSet[jjnewStateCnt++] = 8;
+                  break;
+               case 2:
+                  if (curChar == 115 && kind > 7)
+                     kind = 7;
+                  break;
+               case 3:
+               case 19:
+                  if (curChar == 115)
+                     { jjCheckNAdd(2); }
+                  break;
+               case 4:
+                  if (curChar == 101)
+                     jjstateSet[jjnewStateCnt++] = 3;
+                  break;
+               case 5:
+                  if (curChar == 108)
+                     jjstateSet[jjnewStateCnt++] = 4;
+                  break;
+               case 6:
+                  if (curChar == 116)
+                     jjstateSet[jjnewStateCnt++] = 5;
+                  break;
+               case 7:
+                  if (curChar == 105)
+                     jjstateSet[jjnewStateCnt++] = 6;
+                  break;
+               case 8:
+                  if (curChar == 110)
+                     jjstateSet[jjnewStateCnt++] = 7;
+                  break;
+               case 9:
+                  if (curChar == 85)
+                     jjstateSet[jjnewStateCnt++] = 8;
+                  break;
+               case 10:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 8)
+                     kind = 8;
+                  { jjCheckNAdd(11); }
+                  break;
+               case 11:
+                  if ((0x7fffffe87fffffeL & l) == 0L)
+                     break;
+                  if (kind > 8)
+                     kind = 8;
+                  { jjCheckNAdd(11); }
+                  break;
+               case 13:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(0, 2); }
+                  break;
+               case 14:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 15;
+                  break;
+               case 15:
+                  if ((0x400010000000L & l) != 0L)
+                     { jjCheckNAdd(16); }
+                  break;
+               case 16:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(3, 5); }
+                  break;
+               case 18:
+                  if (curChar == 68)
+                     { jjAddStates(6, 7); }
+                  break;
+               case 20:
+                  if (curChar == 101)
+                     jjstateSet[jjnewStateCnt++] = 19;
+                  break;
+               case 21:
+                  if (curChar == 108)
+                     jjstateSet[jjnewStateCnt++] = 20;
+                  break;
+               case 22:
+                  if (curChar == 110)
+                     jjstateSet[jjnewStateCnt++] = 21;
+                  break;
+               case 23:
+                  if (curChar == 111)
+                     jjstateSet[jjnewStateCnt++] = 22;
+                  break;
+               case 24:
+                  if (curChar == 105)
+                     jjstateSet[jjnewStateCnt++] = 23;
+                  break;
+               case 25:
+                  if (curChar == 115)
+                     jjstateSet[jjnewStateCnt++] = 24;
+                  break;
+               case 26:
+                  if (curChar == 110)
+                     jjstateSet[jjnewStateCnt++] = 25;
+                  break;
+               case 27:
+                  if (curChar == 101)
+                     jjstateSet[jjnewStateCnt++] = 26;
+                  break;
+               case 28:
+                  if (curChar == 109)
+                     jjstateSet[jjnewStateCnt++] = 27;
+                  break;
+               case 29:
+                  if (curChar == 105)
+                     jjstateSet[jjnewStateCnt++] = 28;
+                  break;
+               case 30:
+                  if (curChar == 108 && kind > 7)
+                     kind = 7;
+                  break;
+               case 31:
+                  if (curChar == 110)
+                     jjstateSet[jjnewStateCnt++] = 30;
+                  break;
+               case 32:
+                  if (curChar == 109)
+                     jjstateSet[jjnewStateCnt++] = 31;
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else
+      {
+         int i2 = (curChar & 0xff) >> 6;
+         long l2 = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 13:
+                  if ((jjbitVec0[i2] & l2) != 0L)
+                     { jjCheckNAddStates(0, 2); }
+                  break;
+               case 16:
+                  if ((jjbitVec0[i2] & l2) != 0L)
+                     { jjCheckNAddStates(3, 5); }
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 33 - (jjnewStateCnt = startsAt)))
+         return curPos;
+      try { curChar = input_stream.readChar(); }
+      catch(java.io.IOException e) { return curPos; }
+   }
+}
+static final int[] jjnextStates = {
+   13, 14, 17, 14, 16, 17, 29, 32, 
+};
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, null, "\57", "\136", "\50", "\51", null, null, null, };
+protected Token jjFillToken()
+{
+   final Token t;
+   final String curTokenImage;
+   final int beginLine;
+   final int endLine;
+   final int beginColumn;
+   final int endColumn;
+   String im = jjstrLiteralImages[jjmatchedKind];
+   curTokenImage = (im == null) ? input_stream.GetImage() : im;
+   beginLine = input_stream.getBeginLine();
+   beginColumn = input_stream.getBeginColumn();
+   endLine = input_stream.getEndLine();
+   endColumn = input_stream.getEndColumn();
+   t = Token.newToken(jjmatchedKind, curTokenImage);
+
+   t.beginLine = beginLine;
+   t.endLine = endLine;
+   t.beginColumn = beginColumn;
+   t.endColumn = endColumn;
+
+   return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken() 
+{
+  Token matchedToken;
+  int curPos = 0;
+
+  EOFLoop :
+  for (;;)
+  {
+   try
+   {
+      curChar = input_stream.BeginToken();
+   }
+   catch(java.io.IOException e)
+   {
+      jjmatchedKind = 0;
+      jjmatchedPos = -1;
+      matchedToken = jjFillToken();
+      return matchedToken;
+   }
+
+   try { input_stream.backup(0);
+      while (curChar <= 32 && (0x100000000L & (1L << curChar)) != 0L)
+         curChar = input_stream.BeginToken();
+   }
+   catch (java.io.IOException e1) { continue EOFLoop; }
+   jjmatchedKind = 0x7fffffff;
+   jjmatchedPos = 0;
+   curPos = jjMoveStringLiteralDfa0_0();
+   if (jjmatchedKind != 0x7fffffff)
+   {
+      if (jjmatchedPos + 1 < curPos)
+         input_stream.backup(curPos - jjmatchedPos - 1);
+      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+      {
+         matchedToken = jjFillToken();
+         return matchedToken;
+      }
+      else
+      {
+         continue EOFLoop;
+      }
+   }
+   int error_line = input_stream.getEndLine();
+   int error_column = input_stream.getEndColumn();
+   String error_after = null;
+   boolean EOFSeen = false;
+   try { input_stream.readChar(); input_stream.backup(1); }
+   catch (java.io.IOException e1) {
+      EOFSeen = true;
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+      if (curChar == '\n' || curChar == '\r') {
+         error_line++;
+         error_column = 0;
+      }
+      else
+         error_column++;
+   }
+   if (!EOFSeen) {
+      input_stream.backup(1);
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+   }
+   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+  }
+}
+
+private void jjCheckNAdd(int state)
+{
+   if (jjrounds[state] != jjround)
+   {
+      jjstateSet[jjnewStateCnt++] = state;
+      jjrounds[state] = jjround;
+   }
+}
+private void jjAddStates(int start, int end)
+{
+   do {
+      jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+   } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+   jjCheckNAdd(state1);
+   jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+   do {
+      jjCheckNAdd(jjnextStates[start]);
+   } while (start++ != end);
+}
+
+    /** Constructor. */\r
+    public XmileUnitParserTokenManager(SimpleCharStream stream){\r
+\r
+      if (SimpleCharStream.staticFlag)\r
+            throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");\r
+\r
+    input_stream = stream;\r
+  }\r
+\r
+  /** Constructor. */\r
+  public XmileUnitParserTokenManager (SimpleCharStream stream, int lexState){\r
+    ReInit(stream);\r
+    SwitchTo(lexState);\r
+  }\r
+\r
+  /** Reinitialise parser. */\r
+  public void ReInit(SimpleCharStream stream)\r
+  {\r
+    jjmatchedPos = jjnewStateCnt = 0;\r
+    curLexState = defaultLexState;\r
+    input_stream = stream;\r
+    ReInitRounds();\r
+  }\r
+\r
+  private void ReInitRounds()\r
+  {\r
+    int i;\r
+    jjround = 0x80000001;\r
+    for (i = 33; i-- > 0;)\r
+      jjrounds[i] = 0x80000000;\r
+  }\r
+\r
+  /** Reinitialise parser. */\r
+  public void ReInit(SimpleCharStream stream, int lexState)\r
+  {\r
+    ReInit(stream);\r
+    SwitchTo(lexState);\r
+  }\r
+\r
+  /** Switch to specified lex state. */\r
+  public void SwitchTo(int lexState)\r
+  {\r
+    if (lexState >= 1 || lexState < 0)\r
+      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);\r
+    else\r
+      curLexState = lexState;\r
+  }\r
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+   "DEFAULT",
+};
+static final long[] jjtoToken = {
+   0x3fdL, 
+};
+static final long[] jjtoSkip = {
+   0x2L, 
+};
+    protected SimpleCharStream  input_stream;\r
+\r
+    private final int[] jjrounds = new int[33];\r
+    private final int[] jjstateSet = new int[2 * 33];\r
+\r
+    \r
+    protected char curChar;\r
+}