This is an automated email from the ASF dual-hosted git repository.

cgarcia pushed a commit to branch feature/app
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git


The following commit(s) were added to refs/heads/feature/app by this push:
     new 641b955  XMLBeans test for Plc4x project.
641b955 is described below

commit 641b955baf457e89e87c9f4572b4ae37ccd911da
Author: César García <[email protected]>
AuthorDate: Mon Jan 19 18:37:58 2026 -0400

    XMLBeans test for Plc4x project.
---
 plc4j/tools/malbec/libs/pom.xml                    |  310 ++--
 .../malbec/libs/src/main/schema/tc6_xml_v201.xsd   | 1756 ++++++++++++++++++++
 plc4j/tools/malbec/pom.xml                         |    3 +-
 3 files changed, 1940 insertions(+), 129 deletions(-)

diff --git a/plc4j/tools/malbec/libs/pom.xml b/plc4j/tools/malbec/libs/pom.xml
index 223443f..9787ed6 100755
--- a/plc4j/tools/malbec/libs/pom.xml
+++ b/plc4j/tools/malbec/libs/pom.xml
@@ -26,6 +26,7 @@
     </parent>
     <artifactId>malbec-libs</artifactId>
     <packaging>nbm</packaging>
+    
     <build>
         <plugins>
             <plugin>
@@ -74,27 +75,70 @@
                     <proc>full</proc>
                 </configuration>
             </plugin>
+            
+            <plugin>
+                <groupId>org.apache.xmlbeans</groupId>
+                <artifactId>xmlbeans</artifactId>
+                <version>${xmlbeans.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <!-- https://xmlbeans.apache.org/guide/Maven.html -->
+                    <repackage>org.apache.plc4x.malbec.metadata</repackage> 
+                    <name>schema</name>
+<!--
+                    <name>MySchema</name>
+                    
<partialMethods>ALL,-GET_LIST,-XGET_LIST,-XGET_ARRAY</partialMethods>
+                    <mdefNamespaces>
+                        <mdefNamespace>schubidubi</mdefNamespace>
+                    </mdefNamespaces>
+                    <extensions>
+                        <extension>
+                            
<className>org.apache.xmlbeans.impl.tool.Extension</className>
+                            <params>
+                                <param>
+                                    <name>name</name>
+                                    <value>value</value>
+                                </param>
+                            </params>
+                        </extension>
+                    </extensions>-->
+                </configuration>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.logging.log4j</groupId>
+                        <artifactId>log4j-core</artifactId>
+                        <version>${log4j-api.version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
         </plugins>
     </build>
+    
+    
     <dependencies>
         <dependency>
             <groupId>org.netbeans.api</groupId>
             <artifactId>org-netbeans-api-annotations-common</artifactId>
             <version>${netbeans.version}</version>
+        </dependency>        
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>${logback.version}</version>
+            <scope>provided</scope>
         </dependency>
-        
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>${logback.version}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <version>${logback.version}</version>
-        <scope>provided</scope>
-      </dependency>        
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>${logback.version}</version>
+            <scope>provided</scope>
+        </dependency>        
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
@@ -115,127 +159,121 @@
             <artifactId>bit-io</artifactId>
             <version>${bit-io.version}</version>
         </dependency>
-        
-
-      <dependency>
-        <groupId>commons-beanutils</groupId>
-        <artifactId>commons-beanutils</artifactId>
-        <version>${commons-beanutils.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-cli</groupId>
-        <artifactId>commons-cli</artifactId>
-        <version>${commons-cli.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-codec</groupId>
-        <artifactId>commons-codec</artifactId>
-        <version>${commons-codec.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-collections4</artifactId>
-        <version>${commons-collections4.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-compress</artifactId>
-        <version>${commons-compress.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-configuration2</artifactId>
-        <version>${commons-configuration2.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>${commons-io.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>${commons-lang3.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-math3</artifactId>
-        <version>${commons-math3.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-net</groupId>
-        <artifactId>commons-net</artifactId>
-        <version>${commons-net.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-pool2</artifactId>
-        <version>${commons-pool2.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-text</artifactId>
-        <version>${commons-text.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-csv</artifactId>
-        <version>${commons-csv.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.fazecast</groupId>
-        <artifactId>jSerialComm</artifactId>
-        <version>${jserialcom.version}</version>
-      </dependency>
-      
-      <dependency>
-        <groupId>com.fasterxml.woodstox</groupId>
-        <artifactId>woodstox-core</artifactId>
-        <version>${woodstox-core.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-annotations</artifactId>
-        <version>${jackson.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-core</artifactId>
-        <version>${jackson.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-databind</artifactId>
-        <version>${jackson.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-xml</artifactId>
-        <version>${jackson.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-yaml</artifactId>
-        <version>${jackson.version}</version>
-      </dependency>  
-      
-      <dependency>
-        <groupId>net.java.dev.jna</groupId>
-        <artifactId>jna</artifactId>
-        <version>${jna.version}</version>
-      </dependency>   
-      
-          <dependency>
+        <dependency>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+            <version>${commons-beanutils.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+            <version>${commons-cli.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>${commons-codec.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-collections4</artifactId>
+            <version>${commons-collections4.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-compress</artifactId>
+            <version>${commons-compress.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-configuration2</artifactId>
+            <version>${commons-configuration2.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>${commons-io.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>${commons-lang3.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-math3</artifactId>
+            <version>${commons-math3.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-net</groupId>
+            <artifactId>commons-net</artifactId>
+            <version>${commons-net.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+            <version>${commons-pool2.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <version>${commons-text.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-csv</artifactId>
+            <version>${commons-csv.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fazecast</groupId>
+            <artifactId>jSerialComm</artifactId>
+            <version>${jserialcom.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.woodstox</groupId>
+            <artifactId>woodstox-core</artifactId>
+            <version>${woodstox-core.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.dataformat</groupId>
+            <artifactId>jackson-dataformat-xml</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.dataformat</groupId>
+            <artifactId>jackson-dataformat-yaml</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>        
+        <dependency>
+            <groupId>net.java.dev.jna</groupId>
+            <artifactId>jna</artifactId>
+            <version>${jna.version}</version>
+        </dependency>         
+        <dependency>
             <groupId>org.pcap4j</groupId>
             <artifactId>pcap4j-core</artifactId>
             <version>${pcap4j.version}</version>
-          </dependency>
-          <dependency>
+        </dependency>
+        <dependency>
             <groupId>org.pcap4j</groupId>
             <artifactId>pcap4j-packetfactory-static</artifactId>
             <version>${pcap4j.version}</version>
-          </dependency>
+        </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>plc4j-api</artifactId>
@@ -295,6 +333,22 @@
             <groupId>org.netbeans.external</groupId>
             <artifactId>org-apache-commons-logging</artifactId>
             <version>${netbeans.version}</version>
+        </dependency>        
+        <dependency>
+            <groupId>org.apache.xmlbeans</groupId>
+            <artifactId>xmlbeans</artifactId>
+            <version>${xmlbeans.version}</version>
         </dependency>
+        <dependency>
+              <groupId>org.apache.logging.log4j</groupId>
+              <artifactId>log4j-api</artifactId>
+              <version>${log4j-api.version}</version>
+        </dependency>
+        <dependency>
+              <groupId>org.apache.logging.log4j</groupId>
+              <artifactId>log4j-core</artifactId>
+              <version>${log4j-api.version}</version>
+              <scope>runtime</scope>
+        </dependency>        
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/plc4j/tools/malbec/libs/src/main/schema/tc6_xml_v201.xsd 
b/plc4j/tools/malbec/libs/src/main/schema/tc6_xml_v201.xsd
new file mode 100644
index 0000000..9aca224
--- /dev/null
+++ b/plc4j/tools/malbec/libs/src/main/schema/tc6_xml_v201.xsd
@@ -0,0 +1,1756 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:ppx="http://www.plcopen.org/xml/tc6_0201"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:ns1="http://www.plcopen.org/xml/tc6.xsd"; 
targetNamespace="http://www.plcopen.org/xml/tc6_0201"; 
elementFormDefault="qualified" attributeFormDefault="unqualified">
+       <xsd:element name="project">
+               <xsd:annotation>
+                       <xsd:documentation>The complete 
project</xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="fileHeader">
+                                       <xsd:complexType>
+                                               <xsd:attribute 
name="companyName" type="xsd:string" use="required"/>
+                                               <xsd:attribute 
name="companyURL" type="xsd:anyURI" use="optional"/>
+                                               <xsd:attribute 
name="productName" type="xsd:string" use="required"/>
+                                               <xsd:attribute 
name="productVersion" type="xsd:string" use="required"/>
+                                               <xsd:attribute 
name="productRelease" type="xsd:string" use="optional"/>
+                                               <xsd:attribute 
name="creationDateTime" type="xsd:dateTime" use="required"/>
+                                               <xsd:attribute 
name="contentDescription" type="xsd:string" use="optional"/>
+                                       </xsd:complexType>
+                               </xsd:element>
+                               <xsd:element name="contentHeader">
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element 
name="Comment" type="xsd:string" minOccurs="0"/>
+                                                       <xsd:element 
name="coordinateInfo">
+                                                               
<xsd:complexType>
+                                                                       
<xsd:sequence>
+                                                                               
<xsd:element name="pageSize" minOccurs="0">
+                                                                               
        <xsd:complexType>
+                                                                               
                <xsd:attribute name="x" type="xsd:decimal" use="required"/>
+                                                                               
                <xsd:attribute name="y" type="xsd:decimal" use="required"/>
+                                                                               
        </xsd:complexType>
+                                                                               
</xsd:element>
+                                                                               
<xsd:element name="fbd">
+                                                                               
        <xsd:complexType>
+                                                                               
                <xsd:sequence>
+                                                                               
                        <xsd:element name="scaling">
+                                                                               
                                <xsd:complexType>
+                                                                               
                                        <xsd:attribute name="x" 
type="xsd:decimal" use="required"/>
+                                                                               
                                        <xsd:attribute name="y" 
type="xsd:decimal" use="required"/>
+                                                                               
                                </xsd:complexType>
+                                                                               
                        </xsd:element>
+                                                                               
                </xsd:sequence>
+                                                                               
        </xsd:complexType>
+                                                                               
</xsd:element>
+                                                                               
<xsd:element name="ld">
+                                                                               
        <xsd:complexType>
+                                                                               
                <xsd:sequence>
+                                                                               
                        <xsd:element name="scaling">
+                                                                               
                                <xsd:complexType>
+                                                                               
                                        <xsd:attribute name="x" 
type="xsd:decimal" use="required"/>
+                                                                               
                                        <xsd:attribute name="y" 
type="xsd:decimal" use="required"/>
+                                                                               
                                </xsd:complexType>
+                                                                               
                        </xsd:element>
+                                                                               
                </xsd:sequence>
+                                                                               
        </xsd:complexType>
+                                                                               
</xsd:element>
+                                                                               
<xsd:element name="sfc">
+                                                                               
        <xsd:complexType>
+                                                                               
                <xsd:sequence>
+                                                                               
                        <xsd:element name="scaling">
+                                                                               
                                <xsd:complexType>
+                                                                               
                                        <xsd:attribute name="x" 
type="xsd:decimal" use="required"/>
+                                                                               
                                        <xsd:attribute name="y" 
type="xsd:decimal" use="required"/>
+                                                                               
                                </xsd:complexType>
+                                                                               
                        </xsd:element>
+                                                                               
                </xsd:sequence>
+                                                                               
        </xsd:complexType>
+                                                                               
</xsd:element>
+                                                                       
</xsd:sequence>
+                                                               
</xsd:complexType>
+                                                       </xsd:element>
+                                                       <xsd:element 
name="addDataInfo" type="ppx:addDataInfo" minOccurs="0"/>
+                                                       <xsd:element 
name="addData" type="ppx:addData" minOccurs="0"/>
+                                               </xsd:sequence>
+                                               <xsd:attribute name="name" 
type="xsd:string" use="required"/>
+                                               <xsd:attribute name="version" 
type="xsd:string" use="optional"/>
+                                               <xsd:attribute 
name="modificationDateTime" type="xsd:dateTime" use="optional"/>
+                                               <xsd:attribute 
name="organization" type="xsd:string" use="optional"/>
+                                               <xsd:attribute name="author" 
type="xsd:string" use="optional"/>
+                                               <xsd:attribute name="language" 
type="xsd:language" use="optional">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>Documentation language of the project e.g. 
"en-US"</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:attribute>
+                                       </xsd:complexType>
+                               </xsd:element>
+                               <xsd:element name="types">
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element 
name="dataTypes">
+                                                               
<xsd:complexType>
+                                                                       
<xsd:sequence>
+                                                                               
<xsd:element name="dataType" minOccurs="0" maxOccurs="unbounded">
+                                                                               
        <xsd:complexType>
+                                                                               
                <xsd:sequence>
+                                                                               
                        <xsd:element name="baseType" type="ppx:dataType"/>
+                                                                               
                        <xsd:element name="initialValue" type="ppx:value" 
minOccurs="0"/>
+                                                                               
                        <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                                                                               
                        <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0">
+                                                                               
                                <xsd:annotation>
+                                                                               
                                        <xsd:documentation>Additional 
userspecific information to the element</xsd:documentation>
+                                                                               
                                </xsd:annotation>
+                                                                               
                        </xsd:element>
+                                                                               
                </xsd:sequence>
+                                                                               
                <xsd:attribute name="name" type="xsd:string" use="required"/>
+                                                                               
        </xsd:complexType>
+                                                                               
</xsd:element>
+                                                                       
</xsd:sequence>
+                                                               
</xsd:complexType>
+                                                       </xsd:element>
+                                                       <xsd:element 
name="pous">
+                                                               
<xsd:complexType>
+                                                                       
<xsd:sequence>
+                                                                               
<xsd:element name="pou" minOccurs="0" maxOccurs="unbounded">
+                                                                               
        <xsd:complexType>
+                                                                               
                <xsd:sequence>
+                                                                               
                        <xsd:element name="interface" minOccurs="0">
+                                                                               
                                <xsd:complexType>
+                                                                               
                                        <xsd:sequence>
+                                                                               
                                                <xsd:element name="returnType" 
type="ppx:dataType" minOccurs="0"/>
+                                                                               
                                                <xsd:choice minOccurs="0" 
maxOccurs="unbounded">
+                                                                               
                                                        <xsd:element 
name="localVars">
+                                                                               
                                                                
<xsd:complexType>
+                                                                               
                                                                        
<xsd:complexContent>
+                                                                               
                                                                                
<xsd:extension base="ppx:varList"/>
+                                                                               
                                                                        
</xsd:complexContent>
+                                                                               
                                                                
</xsd:complexType>
+                                                                               
                                                        </xsd:element>
+                                                                               
                                                        <xsd:element 
name="tempVars">
+                                                                               
                                                                
<xsd:complexType>
+                                                                               
                                                                        
<xsd:complexContent>
+                                                                               
                                                                                
<xsd:extension base="ppx:varList"/>
+                                                                               
                                                                        
</xsd:complexContent>
+                                                                               
                                                                
</xsd:complexType>
+                                                                               
                                                        </xsd:element>
+                                                                               
                                                        <xsd:element 
name="inputVars">
+                                                                               
                                                                
<xsd:complexType>
+                                                                               
                                                                        
<xsd:complexContent>
+                                                                               
                                                                                
<xsd:extension base="ppx:varList"/>
+                                                                               
                                                                        
</xsd:complexContent>
+                                                                               
                                                                
</xsd:complexType>
+                                                                               
                                                        </xsd:element>
+                                                                               
                                                        <xsd:element 
name="outputVars">
+                                                                               
                                                                
<xsd:complexType>
+                                                                               
                                                                        
<xsd:complexContent>
+                                                                               
                                                                                
<xsd:extension base="ppx:varList"/>
+                                                                               
                                                                        
</xsd:complexContent>
+                                                                               
                                                                
</xsd:complexType>
+                                                                               
                                                        </xsd:element>
+                                                                               
                                                        <xsd:element 
name="inOutVars">
+                                                                               
                                                                
<xsd:complexType>
+                                                                               
                                                                        
<xsd:complexContent>
+                                                                               
                                                                                
<xsd:extension base="ppx:varList"/>
+                                                                               
                                                                        
</xsd:complexContent>
+                                                                               
                                                                
</xsd:complexType>
+                                                                               
                                                        </xsd:element>
+                                                                               
                                                        <xsd:element 
name="externalVars">
+                                                                               
                                                                
<xsd:complexType>
+                                                                               
                                                                        
<xsd:complexContent>
+                                                                               
                                                                                
<xsd:extension base="ppx:varList"/>
+                                                                               
                                                                        
</xsd:complexContent>
+                                                                               
                                                                
</xsd:complexType>
+                                                                               
                                                        </xsd:element>
+                                                                               
                                                        <xsd:element 
name="globalVars">
+                                                                               
                                                                
<xsd:complexType>
+                                                                               
                                                                        
<xsd:complexContent>
+                                                                               
                                                                                
<xsd:extension base="ppx:varList"/>
+                                                                               
                                                                        
</xsd:complexContent>
+                                                                               
                                                                
</xsd:complexType>
+                                                                               
                                                        </xsd:element>
+                                                                               
                                                        <xsd:element 
name="accessVars" type="ppx:varList"/>
+                                                                               
                                                </xsd:choice>
+                                                                               
                                                <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                                                               
                                                <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0">
+                                                                               
                                                        <xsd:annotation>
+                                                                               
                                                                
<xsd:documentation>Additional userspecific information to the 
element</xsd:documentation>
+                                                                               
                                                        </xsd:annotation>
+                                                                               
                                                </xsd:element>
+                                                                               
                                        </xsd:sequence>
+                                                                               
                                </xsd:complexType>
+                                                                               
                        </xsd:element>
+                                                                               
                        <xsd:element name="actions" minOccurs="0">
+                                                                               
                                <xsd:complexType>
+                                                                               
                                        <xsd:sequence>
+                                                                               
                                                <xsd:element name="action" 
minOccurs="0" maxOccurs="unbounded">
+                                                                               
                                                        <xsd:complexType>
+                                                                               
                                                                <xsd:sequence>
+                                                                               
                                                                        
<xsd:element name="body" type="ppx:body"/>
+                                                                               
                                                                        
<xsd:element name="addData" type="ppx:addData" minOccurs="0"/>
+                                                                               
                                                                        
<xsd:element name="documentation" type="ppx:formattedText" minOccurs="0">
+                                                                               
                                                                                
<xsd:annotation>
+                                                                               
                                                                                
        <xsd:documentation>Additional userspecific information to the 
element</xsd:documentation>
+                                                                               
                                                                                
</xsd:annotation>
+                                                                               
                                                                        
</xsd:element>
+                                                                               
                                                                </xsd:sequence>
+                                                                               
                                                                <xsd:attribute 
name="name" type="xsd:string" use="required"/>
+                                                                               
                                                                <xsd:attribute 
name="globalId" type="xsd:ID" use="optional"/>
+                                                                               
                                                        </xsd:complexType>
+                                                                               
                                                </xsd:element>
+                                                                               
                                        </xsd:sequence>
+                                                                               
                                </xsd:complexType>
+                                                                               
                        </xsd:element>
+                                                                               
                        <xsd:element name="transitions" minOccurs="0">
+                                                                               
                                <xsd:complexType>
+                                                                               
                                        <xsd:sequence>
+                                                                               
                                                <xsd:element name="transition" 
minOccurs="0" maxOccurs="unbounded">
+                                                                               
                                                        <xsd:complexType>
+                                                                               
                                                                <xsd:sequence>
+                                                                               
                                                                        
<xsd:element name="body" type="ppx:body"/>
+                                                                               
                                                                        
<xsd:element name="addData" type="ppx:addData" minOccurs="0"/>
+                                                                               
                                                                        
<xsd:element name="documentation" type="ppx:formattedText" minOccurs="0">
+                                                                               
                                                                                
<xsd:annotation>
+                                                                               
                                                                                
        <xsd:documentation>Additional userspecific information to the 
element</xsd:documentation>
+                                                                               
                                                                                
</xsd:annotation>
+                                                                               
                                                                        
</xsd:element>
+                                                                               
                                                                </xsd:sequence>
+                                                                               
                                                                <xsd:attribute 
name="name" type="xsd:string" use="required"/>
+                                                                               
                                                                <xsd:attribute 
name="globalId" type="xsd:ID" use="optional"/>
+                                                                               
                                                        </xsd:complexType>
+                                                                               
                                                </xsd:element>
+                                                                               
                                        </xsd:sequence>
+                                                                               
                                </xsd:complexType>
+                                                                               
                        </xsd:element>
+                                                                               
                        <xsd:element name="body" type="ppx:body" minOccurs="0" 
maxOccurs="unbounded"/>
+                                                                               
                        <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                                                                               
                        <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0">
+                                                                               
                                <xsd:annotation>
+                                                                               
                                        <xsd:documentation>Additional 
userspecific information to the element</xsd:documentation>
+                                                                               
                                </xsd:annotation>
+                                                                               
                        </xsd:element>
+                                                                               
                </xsd:sequence>
+                                                                               
                <xsd:attribute name="name" type="xsd:string" use="required"/>
+                                                                               
                <xsd:attribute name="pouType" type="ppx:pouType" 
use="required"/>
+                                                                               
                <xsd:attribute name="globalId" type="xsd:ID" use="optional"/>
+                                                                               
        </xsd:complexType>
+                                                                               
</xsd:element>
+                                                                       
</xsd:sequence>
+                                                               
</xsd:complexType>
+                                                       </xsd:element>
+                                               </xsd:sequence>
+                                       </xsd:complexType>
+                               </xsd:element>
+                               <xsd:element name="instances">
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element 
name="configurations">
+                                                               
<xsd:complexType>
+                                                                       
<xsd:sequence>
+                                                                               
<xsd:element name="configuration" minOccurs="0" maxOccurs="unbounded">
+                                                                               
        <xsd:complexType>
+                                                                               
                <xsd:annotation>
+                                                                               
                        <xsd:documentation>Represents a group of resources and 
global variables</xsd:documentation>
+                                                                               
                </xsd:annotation>
+                                                                               
                <xsd:sequence>
+                                                                               
                        <xsd:element name="resource" minOccurs="0" 
maxOccurs="unbounded">
+                                                                               
                                <xsd:complexType>
+                                                                               
                                        <xsd:annotation>
+                                                                               
                                                <xsd:documentation>Represents a 
group of programs and tasks and global variables</xsd:documentation>
+                                                                               
                                        </xsd:annotation>
+                                                                               
                                        <xsd:sequence>
+                                                                               
                                                <xsd:element name="task" 
minOccurs="0" maxOccurs="unbounded">
+                                                                               
                                                        <xsd:complexType>
+                                                                               
                                                                <xsd:annotation>
+                                                                               
                                                                        
<xsd:documentation>Represents a periodic or triggered task</xsd:documentation>
+                                                                               
                                                                
</xsd:annotation>
+                                                                               
                                                                <xsd:sequence>
+                                                                               
                                                                        
<xsd:element name="pouInstance" type="ppx:pouInstance" minOccurs="0" 
maxOccurs="unbounded"/>
+                                                                               
                                                                        
<xsd:element name="addData" type="ppx:addData" minOccurs="0"/>
+                                                                               
                                                                        
<xsd:element name="documentation" type="ppx:formattedText" minOccurs="0">
+                                                                               
                                                                                
<xsd:annotation>
+                                                                               
                                                                                
        <xsd:documentation>Additional userspecific information to the 
element</xsd:documentation>
+                                                                               
                                                                                
</xsd:annotation>
+                                                                               
                                                                        
</xsd:element>
+                                                                               
                                                                </xsd:sequence>
+                                                                               
                                                                <xsd:attribute 
name="name" type="xsd:string" use="required"/>
+                                                                               
                                                                <xsd:attribute 
name="single" type="xsd:string" use="optional"/>
+                                                                               
                                                                <xsd:attribute 
name="interval" type="xsd:string" use="optional">
+                                                                               
                                                                        
<xsd:annotation>
+                                                                               
                                                                                
<xsd:documentation>Vendor specific: Either a constant duration as defined in 
the IEC or variable name.</xsd:documentation>
+                                                                               
                                                                        
</xsd:annotation>
+                                                                               
                                                                </xsd:attribute>
+                                                                               
                                                                <xsd:attribute 
name="priority" use="required">
+                                                                               
                                                                        
<xsd:simpleType>
+                                                                               
                                                                                
<xsd:restriction base="xsd:integer">
+                                                                               
                                                                                
        <xsd:minInclusive value="0"/>
+                                                                               
                                                                                
        <xsd:maxInclusive value="65535"/>
+                                                                               
                                                                                
</xsd:restriction>
+                                                                               
                                                                        
</xsd:simpleType>
+                                                                               
                                                                </xsd:attribute>
+                                                                               
                                                                <xsd:attribute 
name="globalId" type="xsd:ID" use="optional"/>
+                                                                               
                                                        </xsd:complexType>
+                                                                               
                                                </xsd:element>
+                                                                               
                                                <xsd:element name="globalVars" 
type="ppx:varList" minOccurs="0" maxOccurs="unbounded"/>
+                                                                               
                                                <xsd:element name="pouInstance" 
type="ppx:pouInstance" minOccurs="0" maxOccurs="unbounded"/>
+                                                                               
                                                <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                                                               
                                                <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0">
+                                                                               
                                                        <xsd:annotation>
+                                                                               
                                                                
<xsd:documentation>Additional userspecific information to the 
element</xsd:documentation>
+                                                                               
                                                        </xsd:annotation>
+                                                                               
                                                </xsd:element>
+                                                                               
                                        </xsd:sequence>
+                                                                               
                                        <xsd:attribute name="name" 
type="xsd:string" use="required"/>
+                                                                               
                                        <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                                                                               
                                </xsd:complexType>
+                                                                               
                        </xsd:element>
+                                                                               
                        <xsd:element name="globalVars" type="ppx:varList" 
minOccurs="0" maxOccurs="unbounded"/>
+                                                                               
                        <xsd:element name="accessVars" type="ppx:varListAccess" 
minOccurs="0"/>
+                                                                               
                        <xsd:element name="configVars" type="ppx:varListConfig" 
minOccurs="0"/>
+                                                                               
                        <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                                                                               
                        <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0">
+                                                                               
                                <xsd:annotation>
+                                                                               
                                        <xsd:documentation>Additional 
userspecific information to the element</xsd:documentation>
+                                                                               
                                </xsd:annotation>
+                                                                               
                        </xsd:element>
+                                                                               
                </xsd:sequence>
+                                                                               
                <xsd:attribute name="name" type="xsd:string" use="required"/>
+                                                                               
                <xsd:attribute name="globalId" type="xsd:ID" use="optional"/>
+                                                                               
        </xsd:complexType>
+                                                                               
</xsd:element>
+                                                                       
</xsd:sequence>
+                                                               
</xsd:complexType>
+                                                       </xsd:element>
+                                               </xsd:sequence>
+                                       </xsd:complexType>
+                               </xsd:element>
+                               <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                               <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0">
+                                       <xsd:annotation>
+                                               <xsd:documentation>Additional 
userspecific information to the element</xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+               </xsd:complexType>
+       </xsd:element>
+       <xsd:complexType name="dataType">
+               <xsd:annotation>
+                       <xsd:documentation>A generic data 
type</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:group ref="ppx:elementaryTypes"/>
+                       <xsd:group ref="ppx:derivedTypes"/>
+                       <xsd:group ref="ppx:extended"/>
+               </xsd:choice>
+       </xsd:complexType>
+       <xsd:complexType name="rangeSigned">
+               <xsd:annotation>
+                       <xsd:documentation>Defines a range with signed 
bounds</xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="lower" type="xsd:string" use="required"/>
+               <xsd:attribute name="upper" type="xsd:string" use="required"/>
+       </xsd:complexType>
+       <xsd:complexType name="rangeUnsigned">
+               <xsd:annotation>
+                       <xsd:documentation>Defines a range with unsigned 
bounds</xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="lower" type="xsd:string" use="required"/>
+               <xsd:attribute name="upper" type="xsd:string" use="required"/>
+       </xsd:complexType>
+       <xsd:complexType name="value">
+               <xsd:annotation>
+                       <xsd:documentation>A generic value</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="simpleValue">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Value that 
can be represented as a single token string </xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:attribute name="value" 
type="xsd:string" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="arrayValue">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Array value 
consisting of a list of occurrances - value pairs</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence minOccurs="0" 
maxOccurs="unbounded">
+                                               <xsd:element name="value">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:value">
+                                                                               
<xsd:attribute name="repetitionValue" type="xsd:string" use="optional" 
default="1"/>
+                                                                       
</xsd:extension>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                       </xsd:sequence>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="structValue">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Struct value 
consisting of a list of member - value pairs</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence minOccurs="0" 
maxOccurs="unbounded">
+                                               <xsd:element name="value">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:value">
+                                                                               
<xsd:attribute name="member" type="xsd:string" use="required"/>
+                                                                       
</xsd:extension>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                       </xsd:sequence>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+       </xsd:complexType>
+       <xsd:complexType name="body">
+               <xsd:annotation>
+                       <xsd:documentation>Implementation part of a POU, action 
or transistion</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:choice>
+                               <xsd:element name="IL" 
type="ppx:formattedText"/>
+                               <xsd:element name="ST" 
type="ppx:formattedText"/>
+                               <xsd:element name="FBD">
+                                       <xsd:complexType>
+                                               <xsd:choice minOccurs="0" 
maxOccurs="unbounded">
+                                                       <xsd:group 
ref="ppx:commonObjects"/>
+                                                       <xsd:group 
ref="ppx:fbdObjects"/>
+                                               </xsd:choice>
+                                       </xsd:complexType>
+                               </xsd:element>
+                               <xsd:element name="LD">
+                                       <xsd:complexType>
+                                               <xsd:choice minOccurs="0" 
maxOccurs="unbounded">
+                                                       <xsd:group 
ref="ppx:commonObjects"/>
+                                                       <xsd:group 
ref="ppx:fbdObjects"/>
+                                                       <xsd:group 
ref="ppx:ldObjects"/>
+                                               </xsd:choice>
+                                       </xsd:complexType>
+                               </xsd:element>
+                               <xsd:element name="SFC">
+                                       <xsd:complexType>
+                                               <xsd:choice minOccurs="0" 
maxOccurs="unbounded">
+                                                       <xsd:group 
ref="ppx:commonObjects"/>
+                                                       <xsd:group 
ref="ppx:fbdObjects"/>
+                                                       <xsd:group 
ref="ppx:ldObjects"/>
+                                                       <xsd:group 
ref="ppx:sfcObjects"/>
+                                               </xsd:choice>
+                                       </xsd:complexType>
+                               </xsd:element>
+                       </xsd:choice>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                       <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0">
+                               <xsd:annotation>
+                                       <xsd:documentation>Additional 
userspecific information to the element</xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+               </xsd:sequence>
+               <xsd:attribute name="WorksheetName" type="xsd:string" 
use="optional"/>
+               <xsd:attribute name="globalId" type="xsd:ID" use="optional"/>
+       </xsd:complexType>
+       <xsd:complexType name="varList">
+               <xsd:annotation>
+                       <xsd:documentation>List of variable declarations that 
share the same memory attributes (CONSTANT, RETAIN, NON_RETAIN, 
PERSISTENT)</xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexContent>
+                       <xsd:extension base="ppx:varListPlain">
+                               <xsd:attribute name="name" type="xsd:string" 
use="optional"/>
+                               <xsd:attribute name="constant" 
type="xsd:boolean" use="optional" default="false"/>
+                               <xsd:attribute name="retain" type="xsd:boolean" 
use="optional" default="false"/>
+                               <xsd:attribute name="nonretain" 
type="xsd:boolean" use="optional" default="false"/>
+                               <xsd:attribute name="persistent" 
type="xsd:boolean" use="optional" default="false"/>
+                               <xsd:attribute name="nonpersistent" 
type="xsd:boolean" use="optional" default="false"/>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+       <xsd:complexType name="varListPlain">
+               <xsd:annotation>
+                       <xsd:documentation>List of variable declarations 
without attributes</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="variable" minOccurs="0" 
maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Declaration 
of a variable</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="type" 
type="ppx:dataType"/>
+                                               <xsd:element 
name="initialValue" type="ppx:value" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="name" 
type="xsd:string" use="required"/>
+                                       <xsd:attribute name="address" 
type="xsd:string" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                       <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0"/>
+               </xsd:sequence>
+       </xsd:complexType>
+       <xsd:complexType name="varListAccess">
+               <xsd:annotation>
+                       <xsd:documentation>List of access variable 
declarations</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="accessVariable" minOccurs="0" 
maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Declaration 
of an access variable</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="type" 
type="ppx:dataType"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="alias" 
type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Name 
that is visible to the communication partner</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute 
name="instancePathAndName" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       
<xsd:documentation>Variable name including instance path inside the 
configuration</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="direction" 
type="ppx:accessType" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                       <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0"/>
+               </xsd:sequence>
+       </xsd:complexType>
+       <xsd:complexType name="varListConfig">
+               <xsd:annotation>
+                       <xsd:documentation>List of VAR_CONFIG 
variables</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="configVariable" minOccurs="0" 
maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Declaration 
of an access variable</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="type" 
type="ppx:dataType"/>
+                                               <xsd:element 
name="initialValue" type="ppx:value" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute 
name="instancePathAndName" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       
<xsd:documentation>Variable name including instance path</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="address" 
type="xsd:string" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                       <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0"/>
+               </xsd:sequence>
+       </xsd:complexType>
+       <xsd:complexType name="position">
+               <xsd:annotation>
+                       <xsd:documentation>Defines a graphical position in X, Y 
coordinates</xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="x" type="xsd:decimal" use="required"/>
+               <xsd:attribute name="y" type="xsd:decimal" use="required"/>
+       </xsd:complexType>
+       <xsd:complexType name="connection">
+               <xsd:annotation>
+                       <xsd:documentation>Describes a connection between the 
consumer element (eg. input variable of a function block) and the producer 
element (eg. output variable of a function block). It may contain a list of 
positions that describes the path of the connection.</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="position" type="ppx:position" 
minOccurs="0" maxOccurs="unbounded">
+                               <xsd:annotation>
+                                       <xsd:documentation>All positions of the 
directed connection path. If any positions are given, the list has to contain 
the first (input pin of the consumer element) as well as the last (output pin 
of the producer element).</xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+               </xsd:sequence>
+               <xsd:attribute name="globalId" type="xsd:ID" use="optional"/>
+               <xsd:attribute name="refLocalId" type="xsd:unsignedLong" 
use="required">
+                       <xsd:annotation>
+                               <xsd:documentation>Identifies the element the 
connection starts from.</xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="formalParameter" type="xsd:string" 
use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation>If present:
+         This attribute denotes the name of the VAR_OUTPUT / 
VAR_IN_OUTparameter of the pou block that is the start of the connection.
+         If not present:
+         If the refLocalId attribute refers to a pou block, the start of the 
connection is the first output of this block, which is not ENO.
+         If the refLocalId attribute refers to any other element type, the 
start of the connection is the elements single native output. 
</xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+       <xsd:complexType name="connectionPointIn">
+               <xsd:annotation>
+                       <xsd:documentation>Defines a connection point on the 
consumer side</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="relPosition" type="ppx:position" 
minOccurs="0">
+                               <xsd:annotation>
+                                       <xsd:documentation>Relative position of 
the connection pin. Origin is the anchor position of the 
block.</xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:choice minOccurs="0">
+                               <xsd:element name="connection" 
type="ppx:connection" maxOccurs="unbounded"/>
+                               <xsd:element name="expression" 
type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation>The operand 
is a valid iec variable e.g. avar[0] or an iec expression or multiple token 
text e.g. a + b (*sum*). An iec 61131-3 parser has to be used to extract 
variable information.</xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:choice>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+               </xsd:sequence>
+               <xsd:attribute name="globalId" type="xsd:ID" use="optional"/>
+       </xsd:complexType>
+       <xsd:complexType name="connectionPointOut">
+               <xsd:annotation>
+                       <xsd:documentation>Defines a connection point on the 
producer side</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="relPosition" type="ppx:position" 
minOccurs="0">
+                               <xsd:annotation>
+                                       <xsd:documentation>Relative position of 
the connection pin. Origin is the anchor position of the 
block.</xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="expression" type="xsd:string" 
minOccurs="0">
+                               <xsd:annotation>
+                                       <xsd:documentation>The operand is a 
valid iec variable e.g. avar[0].</xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+               </xsd:sequence>
+               <xsd:attribute name="globalId" type="xsd:ID" use="optional"/>
+       </xsd:complexType>
+       <xsd:complexType name="pouInstance">
+               <xsd:annotation>
+                       <xsd:documentation>Represents a program or function 
block instance either running with or without a task</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="addData" type="ppx:addData" 
minOccurs="0"/>
+                       <xsd:element name="documentation" 
type="ppx:formattedText" minOccurs="0"/>
+               </xsd:sequence>
+               <xsd:attribute name="name" type="xsd:string" use="required"/>
+               <xsd:attribute name="typeName" type="xsd:string" 
use="required"/>
+               <xsd:attribute name="globalId" type="xsd:ID" use="optional"/>
+       </xsd:complexType>
+       <xsd:complexType name="formattedText">
+               <xsd:annotation>
+                       <xsd:documentation>Formatted text according to parts of 
XHTML 1.1</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:any namespace="http://www.w3.org/1999/xhtml"; 
processContents="lax"/>
+               </xsd:sequence>
+       </xsd:complexType>
+       <xsd:complexType name="addData">
+               <xsd:annotation>
+                       <xsd:documentation>Application specific data defined in 
external schemata </xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="data" minOccurs="0" 
maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:any namespace="##any" 
processContents="lax"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="name" 
type="xsd:anyURI" use="required">
+                                               <xsd:annotation>
+                                                       
<xsd:documentation>Uniquely identifies the additional data 
element.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="handleUnknown" 
use="required">
+                                               <xsd:annotation>
+                                                       
<xsd:documentation>Recommended processor handling for unknown data elements.
+Specifies if the processor should try to preserve the additional data element, 
dismiss the element (e.g. because the data is invalid if not updated correctly) 
or use the processors default behaviour for unknown data.</xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction 
base="xsd:NMTOKEN">
+                                                               
<xsd:enumeration value="preserve"/>
+                                                               
<xsd:enumeration value="discard"/>
+                                                               
<xsd:enumeration value="implementation"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:sequence>
+       </xsd:complexType>
+       <xsd:complexType name="addDataInfo">
+               <xsd:annotation>
+                       <xsd:documentation>List of additional data elements 
used in the document with description</xsd:documentation>
+               </xsd:annotation>
+               <xsd:sequence>
+                       <xsd:element name="info" minOccurs="0" 
maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="description" 
type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="name" 
type="xsd:anyURI" use="required">
+                                               <xsd:annotation>
+                                                       
<xsd:documentation>Unique name of the additional data 
element.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="version" 
type="xsd:decimal">
+                                               <xsd:annotation>
+                                                       
<xsd:documentation>Version of additional data, eg. schema 
version.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="vendor" 
type="xsd:anyURI" use="required">
+                                               <xsd:annotation>
+                                                       
<xsd:documentation>Vendor responsible for the definition of the additional data 
element.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:sequence>
+       </xsd:complexType>
+       <xsd:group name="elementaryTypes">
+               <xsd:annotation>
+                       <xsd:documentation>Collection of elementary IEC 61131-3 
datatypes</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="BOOL"/>
+                       <xsd:element name="BYTE"/>
+                       <xsd:element name="WORD"/>
+                       <xsd:element name="DWORD"/>
+                       <xsd:element name="LWORD"/>
+                       <xsd:element name="SINT"/>
+                       <xsd:element name="INT"/>
+                       <xsd:element name="DINT"/>
+                       <xsd:element name="LINT"/>
+                       <xsd:element name="USINT"/>
+                       <xsd:element name="UINT"/>
+                       <xsd:element name="UDINT"/>
+                       <xsd:element name="ULINT"/>
+                       <xsd:element name="REAL"/>
+                       <xsd:element name="LREAL"/>
+                       <xsd:element name="TIME"/>
+                       <xsd:element name="DATE"/>
+                       <xsd:element name="DT"/>
+                       <xsd:element name="TOD"/>
+                       <xsd:element name="string">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>The single 
byte character string type</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:attribute name="length" 
type="xsd:string" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="wstring">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>The wide 
character (WORD) string type</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:attribute name="length" 
type="xsd:string" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="ANY"/>
+                       <xsd:element name="ANY_DERIVED"/>
+                       <xsd:element name="ANY_ELEMENTARY"/>
+                       <xsd:element name="ANY_MAGNITUDE"/>
+                       <xsd:element name="ANY_NUM"/>
+                       <xsd:element name="ANY_REAL"/>
+                       <xsd:element name="ANY_INT"/>
+                       <xsd:element name="ANY_BIT"/>
+                       <xsd:element name="ANY_STRING"/>
+                       <xsd:element name="ANY_DATE"/>
+               </xsd:choice>
+       </xsd:group>
+       <xsd:group name="derivedTypes">
+               <xsd:annotation>
+                       <xsd:documentation>Collection of derived IEC 61131-3 
datatypes</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="array">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="dimension" 
type="ppx:rangeSigned" maxOccurs="unbounded"/>
+                                               <xsd:element name="baseType" 
type="ppx:dataType"/>
+                                       </xsd:sequence>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="derived">
+                               <xsd:annotation>
+                                       <xsd:documentation>Reference to a user 
defined datatype or POU. Variable declarations use this type to declare e.g. 
function block instances.</xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>The user 
defined alias type</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="name" 
type="xsd:string" use="required"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="enum">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="values">
+                                                       <xsd:complexType>
+                                                               <xsd:sequence 
maxOccurs="unbounded">
+                                                                       
<xsd:element name="value">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:annotation>
+                                                                               
                <xsd:documentation>An enumeration value used to build up 
enumeration types</xsd:documentation>
+                                                                               
        </xsd:annotation>
+                                                                               
        <xsd:attribute name="name" type="xsd:string" use="required"/>
+                                                                               
        <xsd:attribute name="value" type="xsd:string" use="optional"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:sequence>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="baseType" 
type="ppx:dataType" minOccurs="0"/>
+                                       </xsd:sequence>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="struct" type="ppx:varListPlain"/>
+                       <xsd:element name="subrangeSigned">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="range" 
type="ppx:rangeSigned"/>
+                                               <xsd:element name="baseType" 
type="ppx:dataType"/>
+                                       </xsd:sequence>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="subrangeUnsigned">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="range" 
type="ppx:rangeUnsigned"/>
+                                               <xsd:element name="baseType" 
type="ppx:dataType"/>
+                                       </xsd:sequence>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+       </xsd:group>
+       <xsd:group name="extended">
+               <xsd:annotation>
+                       <xsd:documentation>Collection of datatypes not defined 
in IEC 61131-3</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="pointer">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="baseType" 
type="ppx:dataType"/>
+                                       </xsd:sequence>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+       </xsd:group>
+       <xsd:group name="commonObjects">
+               <xsd:annotation>
+                       <xsd:documentation>Collection of objects which have no 
direct iec scope and can be used in any graphical body.</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="comment">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element name="content" 
type="ppx:formattedText"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="required"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="required"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="error">
+                               <xsd:complexType mixed="false">
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a conversion error. Used to keep information 
which can not be interpreted by the importing system</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element name="content" 
type="ppx:formattedText"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="required"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="required"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="connector">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a variable, literal or expression used as 
r-value</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="name" 
type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The 
operand is a valid iec variable e.g. avar[0]</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="continuation">
+                               <xsd:annotation>
+                                       <xsd:documentation>Counterpart of the 
connector element</xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a variable, literal or expression used as 
r-value</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="name" 
type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The 
operand is a valid iec variable e.g. avar[0]</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="actionBlock">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element name="action" 
minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:complexType>
+                                                               <xsd:annotation>
+                                                                       
<xsd:documentation>Association of an action with qualifier</xsd:documentation>
+                                                               
</xsd:annotation>
+                                                               <xsd:sequence>
+                                                                       
<xsd:element name="relPosition" type="ppx:position">
+                                                                               
<xsd:annotation>
+                                                                               
        <xsd:documentation>Relative position of the action. Origin is the 
anchor position of the action block.</xsd:documentation>
+                                                                               
</xsd:annotation>
+                                                                       
</xsd:element>
+                                                                       
<xsd:element name="reference" minOccurs="0">
+                                                                               
<xsd:annotation>
+                                                                               
        <xsd:documentation>Name of an action or boolean 
variable.</xsd:documentation>
+                                                                               
</xsd:annotation>
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:attribute name="name" type="xsd:string" use="required"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                                       
<xsd:element name="inline" type="ppx:body" minOccurs="0">
+                                                                               
<xsd:annotation>
+                                                                               
        <xsd:documentation>Inline implementation of an action 
body.</xsd:documentation>
+                                                                               
</xsd:annotation>
+                                                                       
</xsd:element>
+                                                                       
<xsd:element name="connectionPointOut" type="ppx:connectionPointOut" 
minOccurs="0"/>
+                                                                       
<xsd:element name="addData" type="ppx:addData" minOccurs="0"/>
+                                                                       
<xsd:element name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                                               </xsd:sequence>
+                                                               <xsd:attribute 
name="localId" type="xsd:unsignedLong" use="required"/>
+                                                               <xsd:attribute 
name="qualifier" use="optional" default="N">
+                                                                       
<xsd:simpleType>
+                                                                               
<xsd:restriction base="xsd:NMTOKEN">
+                                                                               
        <xsd:enumeration value="P1"/>
+                                                                               
        <xsd:enumeration value="N"/>
+                                                                               
        <xsd:enumeration value="P0"/>
+                                                                               
        <xsd:enumeration value="R"/>
+                                                                               
        <xsd:enumeration value="S"/>
+                                                                               
        <xsd:enumeration value="L"/>
+                                                                               
        <xsd:enumeration value="D"/>
+                                                                               
        <xsd:enumeration value="P"/>
+                                                                               
        <xsd:enumeration value="DS"/>
+                                                                               
        <xsd:enumeration value="DL"/>
+                                                                               
        <xsd:enumeration value="SD"/>
+                                                                               
        <xsd:enumeration value="SL"/>
+                                                                               
</xsd:restriction>
+                                                                       
</xsd:simpleType>
+                                                               </xsd:attribute>
+                                                               <xsd:attribute 
name="width" type="xsd:decimal" use="optional"/>
+                                                               <xsd:attribute 
name="height" type="xsd:decimal" use="optional"/>
+                                                               <xsd:attribute 
name="duration" type="xsd:string" use="optional"/>
+                                                               <xsd:attribute 
name="indicator" type="xsd:string" use="optional"/>
+                                                               <xsd:attribute 
name="executionOrderId" type="xsd:unsignedLong" use="optional">
+                                                                       
<xsd:annotation>
+                                                                               
<xsd:documentation>Used to identify the order of execution. Also used to 
identify one special block if there are several blocks with the same 
name.</xsd:documentation>
+                                                                       
</xsd:annotation>
+                                                               </xsd:attribute>
+                                                               <xsd:attribute 
name="globalId" type="xsd:ID" use="optional"/>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="negated" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="vendorElement">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a call statement</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>Anchor position of the box. Top left corner excluding the 
instance name.</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element 
name="alternativeText" type="ppx:formattedText">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>An alternative text to be displayed in generic 
representation of unknown elements.</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element 
name="inputVariables" minOccurs="0">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The list of used input variables 
(consumers)</xsd:documentation>
+                                                       </xsd:annotation>
+                                                       <xsd:complexType>
+                                                               <xsd:sequence>
+                                                                       
<xsd:element name="variable" minOccurs="0" maxOccurs="unbounded">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:annotation>
+                                                                               
                <xsd:documentation>Describes an inputVariable of a Function or 
a FunctionBlock</xsd:documentation>
+                                                                               
        </xsd:annotation>
+                                                                               
        <xsd:sequence>
+                                                                               
                <xsd:element name="connectionPointIn" 
type="ppx:connectionPointIn"/>
+                                                                               
                <xsd:element name="documentation" type="ppx:formattedText" 
minOccurs="0"/>
+                                                                               
        </xsd:sequence>
+                                                                               
        <xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                               
        <xsd:attribute name="negated" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
        <xsd:attribute name="edge" type="ppx:edgeModifierType" use="optional" 
default="none"/>
+                                                                               
        <xsd:attribute name="storage" type="ppx:storageModifierType" 
use="optional" default="none"/>
+                                                                               
        <xsd:attribute name="hidden" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:sequence>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element 
name="inOutVariables" minOccurs="0">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The list of used inOut variables</xsd:documentation>
+                                                       </xsd:annotation>
+                                                       <xsd:complexType>
+                                                               <xsd:sequence>
+                                                                       
<xsd:element name="variable" minOccurs="0" maxOccurs="unbounded">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:annotation>
+                                                                               
                <xsd:documentation>Describes a inOutVariable of a Function or a 
FunctionBlock</xsd:documentation>
+                                                                               
        </xsd:annotation>
+                                                                               
        <xsd:sequence>
+                                                                               
                <xsd:element name="connectionPointIn" 
type="ppx:connectionPointIn" minOccurs="0"/>
+                                                                               
                <xsd:element name="connectionPointOut" 
type="ppx:connectionPointOut" minOccurs="0"/>
+                                                                               
                <xsd:element name="documentation" type="ppx:formattedText" 
minOccurs="0"/>
+                                                                               
        </xsd:sequence>
+                                                                               
        <xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                               
        <xsd:attribute name="negated" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
        <xsd:attribute name="edge" type="ppx:edgeModifierType" use="optional" 
default="none"/>
+                                                                               
        <xsd:attribute name="storage" type="ppx:storageModifierType" 
use="optional" default="none"/>
+                                                                               
        <xsd:attribute name="hidden" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:sequence>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element 
name="outputVariables" minOccurs="0">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The list of used output variables 
(producers)</xsd:documentation>
+                                                       </xsd:annotation>
+                                                       <xsd:complexType>
+                                                               <xsd:sequence>
+                                                                       
<xsd:element name="variable" minOccurs="0" maxOccurs="unbounded">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:annotation>
+                                                                               
                <xsd:documentation>Describes a outputVariable of a Function or 
a FunctionBlock</xsd:documentation>
+                                                                               
        </xsd:annotation>
+                                                                               
        <xsd:sequence>
+                                                                               
                <xsd:element name="connectionPointOut" 
type="ppx:connectionPointOut" minOccurs="0"/>
+                                                                               
                <xsd:element name="documentation" type="ppx:formattedText" 
minOccurs="0"/>
+                                                                               
        </xsd:sequence>
+                                                                               
        <xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                               
        <xsd:attribute name="negated" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
        <xsd:attribute name="edge" type="ppx:edgeModifierType" use="optional" 
default="none"/>
+                                                                               
        <xsd:attribute name="storage" type="ppx:storageModifierType" 
use="optional" default="none"/>
+                                                                               
        <xsd:attribute name="hidden" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:sequence>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>Additional, vendor specific data for the element. Also 
defines the vendor specific meaning of the element.</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+       </xsd:group>
+       <xsd:group name="fbdObjects">
+               <xsd:annotation>
+                       <xsd:documentation>Collection of objects which are 
defined in fbd. They can be used in all graphical bodies.</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="block">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a call statement</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>Anchor position of the box. Top left corner excluding the 
instance name.</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element 
name="inputVariables">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The list of used input variables 
(consumers)</xsd:documentation>
+                                                       </xsd:annotation>
+                                                       <xsd:complexType>
+                                                               <xsd:sequence>
+                                                                       
<xsd:element name="variable" minOccurs="0" maxOccurs="unbounded">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:annotation>
+                                                                               
                <xsd:documentation>Describes an inputVariable of a Function or 
a FunctionBlock</xsd:documentation>
+                                                                               
        </xsd:annotation>
+                                                                               
        <xsd:sequence>
+                                                                               
                <xsd:element name="connectionPointIn" 
type="ppx:connectionPointIn"/>
+                                                                               
                <xsd:element name="documentation" type="ppx:formattedText" 
minOccurs="0"/>
+                                                                               
        </xsd:sequence>
+                                                                               
        <xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                               
        <xsd:attribute name="negated" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
        <xsd:attribute name="edge" type="ppx:edgeModifierType" use="optional" 
default="none"/>
+                                                                               
        <xsd:attribute name="storage" type="ppx:storageModifierType" 
use="optional" default="none"/>
+                                                                               
        <xsd:attribute name="hidden" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:sequence>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element 
name="inOutVariables">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The list of used inOut variables</xsd:documentation>
+                                                       </xsd:annotation>
+                                                       <xsd:complexType>
+                                                               <xsd:sequence>
+                                                                       
<xsd:element name="variable" minOccurs="0" maxOccurs="unbounded">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:annotation>
+                                                                               
                <xsd:documentation>Describes a inOutVariable of a Function or a 
FunctionBlock</xsd:documentation>
+                                                                               
        </xsd:annotation>
+                                                                               
        <xsd:sequence>
+                                                                               
                <xsd:element name="connectionPointIn" 
type="ppx:connectionPointIn" minOccurs="0"/>
+                                                                               
                <xsd:element name="connectionPointOut" 
type="ppx:connectionPointOut" minOccurs="0"/>
+                                                                               
                <xsd:element name="documentation" type="ppx:formattedText" 
minOccurs="0"/>
+                                                                               
        </xsd:sequence>
+                                                                               
        <xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                               
        <xsd:attribute name="negated" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
        <xsd:attribute name="edge" type="ppx:edgeModifierType" use="optional" 
default="none"/>
+                                                                               
        <xsd:attribute name="storage" type="ppx:storageModifierType" 
use="optional" default="none"/>
+                                                                               
        <xsd:attribute name="hidden" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:sequence>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element 
name="outputVariables">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The list of used output variables 
(producers)</xsd:documentation>
+                                                       </xsd:annotation>
+                                                       <xsd:complexType>
+                                                               <xsd:sequence>
+                                                                       
<xsd:element name="variable" minOccurs="0" maxOccurs="unbounded">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:annotation>
+                                                                               
                <xsd:documentation>Describes a outputVariable of a Function or 
a FunctionBlock</xsd:documentation>
+                                                                               
        </xsd:annotation>
+                                                                               
        <xsd:sequence>
+                                                                               
                <xsd:element name="connectionPointOut" 
type="ppx:connectionPointOut" minOccurs="0"/>
+                                                                               
                <xsd:element name="documentation" type="ppx:formattedText" 
minOccurs="0"/>
+                                                                               
        </xsd:sequence>
+                                                                               
        <xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                               
        <xsd:attribute name="negated" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
        <xsd:attribute name="edge" type="ppx:edgeModifierType" use="optional" 
default="none"/>
+                                                                               
        <xsd:attribute name="storage" type="ppx:storageModifierType" 
use="optional" default="none"/>
+                                                                               
        <xsd:attribute name="hidden" type="xsd:boolean" use="optional" 
default="false"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:sequence>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="typeName" 
type="xsd:string" use="required"/>
+                                       <xsd:attribute name="instanceName" 
type="xsd:string" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="inVariable">
+                               <xsd:annotation>
+                                       <xsd:documentation>Expression used as 
producer</xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a variable, literal or expression used as 
r-value</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="expression" 
type="xsd:string">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The operand is a valid iec variable e.g. 
avar[0].</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="negated" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="edge" 
type="ppx:edgeModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="storage" 
type="ppx:storageModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="outVariable">
+                               <xsd:annotation>
+                                       <xsd:documentation>Expression used as 
consumer</xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a variable or expression used as 
l-value</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element name="expression" 
type="xsd:string">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The operand is a valid iec variable e.g. 
avar[0].</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="negated" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="edge" 
type="ppx:edgeModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="storage" 
type="ppx:storageModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="inOutVariable">
+                               <xsd:annotation>
+                                       <xsd:documentation>Expression used as 
producer and consumer</xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a variable which can be used as l-value and 
r-value at the same time</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="expression" 
type="xsd:string">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The operand is a valid iec variable e.g. 
avar[0].</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="negatedIn" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="edgeIn" 
type="ppx:edgeModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="storageIn" 
type="ppx:storageModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="negatedOut" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="edgeOut" 
type="ppx:edgeModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="storageOut" 
type="ppx:storageModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="label">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a jump label</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="label" 
type="xsd:string" use="required"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="jump">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a jump statement</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="label" 
type="xsd:string" use="required"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="return">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing areturn statement</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+       </xsd:group>
+       <xsd:group name="ldObjects">
+               <xsd:annotation>
+                       <xsd:documentation>Collection of objects which are 
defined in ld and are an extension to fbd. They can be used in ld and sfc 
bodies</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="leftPowerRail">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a left powerrail</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointOut" minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:connectionPointOut">
+                                                                               
<xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                       
</xsd:extension>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="rightPowerRail">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a right powerrail</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0" 
maxOccurs="unbounded"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="coil">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a boolean variable which can be used as l-value 
and r-value at the same time</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="variable" 
type="xsd:string">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The operand is a valid boolean  iec variable e.g. 
avar[0]</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="negated" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="edge" 
type="ppx:edgeModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="storage" 
type="ppx:storageModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="contact">
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Describes a 
graphical object representing a variable which can be used as l-value and 
r-value at the same time</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="variable" 
type="xsd:string">
+                                                       <xsd:annotation>
+                                                               
<xsd:documentation>The operand is a valid boolean iec variable e.g. 
avar[0]</xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional"/>
+                                       <xsd:attribute name="negated" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="edge" 
type="ppx:edgeModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="storage" 
type="ppx:storageModifierType" use="optional" default="none"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+       </xsd:group>
+       <xsd:group name="sfcObjects">
+               <xsd:annotation>
+                       <xsd:documentation>Collection of objects which are 
defined in sfc. They can only be used in sfc bodies</xsd:documentation>
+               </xsd:annotation>
+               <xsd:choice>
+                       <xsd:element name="step">
+                               <xsd:annotation>
+                                       <xsd:documentation>A single step in a 
SFC Sequence. Actions are associated with a step by using an actionBlock 
element with a connection to the step element</xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:complexType>
+                                       <xsd:annotation>
+                                               <xsd:documentation>Contains 
actions</xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" minOccurs="0">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:connectionPointOut">
+                                                                               
<xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                       
</xsd:extension>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element 
name="connectionPointOutAction" minOccurs="0">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:connectionPointOut">
+                                                                               
<xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                       
</xsd:extension>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="name" 
type="xsd:string" use="required"/>
+                                       <xsd:attribute name="initialStep" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="negated" 
type="xsd:boolean" use="optional" default="false"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="macroStep">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="body" 
type="ppx:body" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="name" 
type="xsd:string" use="optional"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="jumpStep">
+                               <xsd:annotation>
+                                       <xsd:documentation>Jump to a step, 
macro step or simultaneous divergence. Acts like a step. Predecessor should be 
a transition.</xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="targetName" 
type="xsd:string" use="required"/>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="transition">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="condition" 
minOccurs="0">
+                                                       <xsd:complexType>
+                                                               <xsd:choice>
+                                                                       
<xsd:element name="reference">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:attribute name="name" type="xsd:string" use="required"/>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                                       
<xsd:element name="connectionPointIn" type="ppx:connectionPointIn"/>
+                                                                       
<xsd:element name="inline">
+                                                                               
<xsd:complexType>
+                                                                               
        <xsd:complexContent>
+                                                                               
                <xsd:extension base="ppx:body">
+                                                                               
                        <xsd:attribute name="name" type="xsd:string" 
use="required"/>
+                                                                               
                </xsd:extension>
+                                                                               
        </xsd:complexContent>
+                                                                               
</xsd:complexType>
+                                                                       
</xsd:element>
+                                                               </xsd:choice>
+                                                               <xsd:attribute 
name="negated" type="xsd:boolean" use="optional" default="false"/>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="priority" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The 
priority of a transition is evaluated, if the transition is connected to a 
selectionDivergence element.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="executionOrderId" 
type="xsd:unsignedLong" use="optional">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>Used 
to identify the order of execution. Also used to identify one special block if 
there are several blocks with the same name.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="selectionDivergence">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:connectionPointOut">
+                                                                               
<xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                       
</xsd:extension>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="selectionConvergence">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:connectionPointIn"/>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="simultaneousDivergence">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0"/>
+                                               <xsd:element 
name="connectionPointOut" minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:complexType>
+                                                               
<xsd:complexContent>
+                                                                       
<xsd:extension base="ppx:connectionPointOut">
+                                                                               
<xsd:attribute name="formalParameter" type="xsd:string" use="required"/>
+                                                                       
</xsd:extension>
+                                                               
</xsd:complexContent>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="name" 
type="xsd:string" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+                       <xsd:element name="simultaneousConvergence">
+                               <xsd:complexType>
+                                       <xsd:sequence>
+                                               <xsd:element name="position" 
type="ppx:position"/>
+                                               <xsd:element 
name="connectionPointIn" type="ppx:connectionPointIn" minOccurs="0" 
maxOccurs="unbounded"/>
+                                               <xsd:element 
name="connectionPointOut" type="ppx:connectionPointOut" minOccurs="0"/>
+                                               <xsd:element name="addData" 
type="ppx:addData" minOccurs="0"/>
+                                               <xsd:element 
name="documentation" type="ppx:formattedText" minOccurs="0"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="localId" 
type="xsd:unsignedLong" use="required"/>
+                                       <xsd:attribute name="height" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="width" 
type="xsd:decimal" use="optional"/>
+                                       <xsd:attribute name="globalId" 
type="xsd:ID" use="optional"/>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+       </xsd:group>
+       <xsd:simpleType name="edgeModifierType">
+               <xsd:annotation>
+                       <xsd:documentation>Defines the edge detection behaviour 
of a variable</xsd:documentation>
+               </xsd:annotation>
+               <xsd:restriction base="xsd:string">
+                       <xsd:enumeration value="none"/>
+                       <xsd:enumeration value="falling"/>
+                       <xsd:enumeration value="rising"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+       <xsd:simpleType name="storageModifierType">
+               <xsd:annotation>
+                       <xsd:documentation>Defines the storage mode (S/R) 
behaviour of a variable</xsd:documentation>
+               </xsd:annotation>
+               <xsd:restriction base="xsd:string">
+                       <xsd:enumeration value="none"/>
+                       <xsd:enumeration value="set"/>
+                       <xsd:enumeration value="reset"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+       <xsd:simpleType name="accessType">
+               <xsd:annotation>
+                       <xsd:documentation>Defines the different access types 
to an accessVariable</xsd:documentation>
+               </xsd:annotation>
+               <xsd:restriction base="xsd:NMTOKEN">
+                       <xsd:enumeration value="readOnly"/>
+                       <xsd:enumeration value="readWrite"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+       <xsd:simpleType name="pouType">
+               <xsd:annotation>
+                       <xsd:documentation>Defines the different types of a 
POU</xsd:documentation>
+               </xsd:annotation>
+               <xsd:restriction base="xsd:NMTOKEN">
+                       <xsd:enumeration value="function"/>
+                       <xsd:enumeration value="functionBlock"/>
+                       <xsd:enumeration value="program"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+</xsd:schema>
diff --git a/plc4j/tools/malbec/pom.xml b/plc4j/tools/malbec/pom.xml
index 3858bae..cf0416d 100644
--- a/plc4j/tools/malbec/pom.xml
+++ b/plc4j/tools/malbec/pom.xml
@@ -90,7 +90,8 @@
         <httpcore.version>4.4.16</httpcore.version>
         <jackson.version>2.16.1</jackson.version>
         <woodstox-core.version>6.5.1</woodstox-core.version>
-        
+        <xmlbeans.version>5.3.0</xmlbeans.version>
+        <log4j-api.version>2.24.0</log4j-api.version>
         <!-- When updating this to the latest version, we're getting errors in 
the opcua server tests -->
         <jaxb.version>4.0.4</jaxb.version>              
         <!-- Starting with Jetty 12 Java 17 is required -->

Reply via email to