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 -->
