"561698 -  Merge 'org.eclipse.mdm.nucleus/mkoller/contrib' into 'mkoller/contrib'"

Signed-off-by: Simon Skoczylas <simon.skoczylas@karakun.com>
diff --git a/org.eclipse.mdm.nucleus/.gitignore b/org.eclipse.mdm.nucleus/.gitignore
new file mode 100644
index 0000000..7b943bd
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/.gitignore
@@ -0,0 +1,22 @@
+# eclipse
+.classpath
+.project
+.settings/
+bin/
+
+# gradle
+.gradle
+build/
+gradle.properties
+
+# intellij
+.idea/
+out/
+*.ipr
+*.iml
+*.iws
+/bin/
+
+# node
+**/node_modules
+**/coverage
diff --git a/org.eclipse.mdm.nucleus/CONTRIBUTING.md b/org.eclipse.mdm.nucleus/CONTRIBUTING.md
new file mode 100644
index 0000000..8f51d10
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/CONTRIBUTING.md
@@ -0,0 +1,54 @@
+# Contributing to Eclipse MDM|BL
+
+Thanks for your interest in this project.
+
+## Project description
+
+* https://projects.eclipse.org/projects/technology.mdmbl
+
+## Developer resources
+
+Information regarding source code management, builds, coding standards, and
+more.
+
+* https://projects.eclipse.org/projects/technology.mdmbl/developer
+
+The project maintains the following source code repositories
+
+* https://git.eclipse.org/r/plugins/gitiles/mdmbl/org.eclipse.mdm.api.base
+* https://git.eclipse.org/r/plugins/gitiles/mdmbl/org.eclipse.mdm.api.default
+* https://git.eclipse.org/r/plugins/gitiles/mdmbl/org.eclipse.mdm.api.odsadapter
+* https://git.eclipse.org/r/plugins/gitiles/mdmbl/org.eclipse.mdm.mdfsorter
+* https://git.eclipse.org/r/plugins/gitiles/mdmbl/org.eclipse.mdm.nucleus
+* https://git.eclipse.org/r/plugins/gitiles/mdmbl/org.eclipse.mdm.openatfx.mdf
+
+This project uses Bugzilla to track ongoing development and issues.
+
+* Search for issues: https://bugs.eclipse.org/bugs/buglist.cgi?product=MDMBL
+* Create a new report:
+   https://bugs.eclipse.org/bugs/enter_bug.cgi?product=MDMBL
+
+Be sure to search for existing bugs before you create another one. Remember that
+contributions are always welcome!
+
+## Eclipse Contributor Agreement
+
+Before your contribution can be accepted by the project team contributors must
+electronically sign the Eclipse Contributor Agreement (ECA).
+
+* http://www.eclipse.org/legal/ECA.php
+
+Commits that are provided by non-committers must have a Signed-off-by field in
+the footer indicating that the author is aware of the terms by which the
+contribution has been provided to the project. The non-committer must
+additionally have an Eclipse Foundation account and must have a signed Eclipse
+Contributor Agreement (ECA) on file.
+
+For more information, please see the Eclipse Committer Handbook:
+https://www.eclipse.org/projects/handbook/#resources-commit
+
+## Contact
+
+Contact the project developers via the project's "dev" list.
+
+* https://dev.eclipse.org/mailman/listinfo/mdmbl-dev
diff --git a/org.eclipse.mdm.nucleus/LICENSE.txt b/org.eclipse.mdm.nucleus/LICENSE.txt
new file mode 100644
index 0000000..e48e096
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/LICENSE.txt
@@ -0,0 +1,277 @@
+Eclipse Public License - v 2.0
+
+    THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+    PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+    OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+  a) in the case of the initial Contributor, the initial content
+     Distributed under this Agreement, and
+
+  b) in the case of each subsequent Contributor:
+     i) changes to the Program, and
+     ii) additions to the Program;
+  where such changes and/or additions to the Program originate from
+  and are Distributed by that particular Contributor. A Contribution
+  "originates" from a Contributor if it was added to the Program by
+  such Contributor itself or anyone acting on such Contributor's behalf.
+  Contributions do not include changes or additions to the Program that
+  are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+  a) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free copyright
+  license to reproduce, prepare Derivative Works of, publicly display,
+  publicly perform, Distribute and sublicense the Contribution of such
+  Contributor, if any, and such Derivative Works.
+
+  b) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free patent
+  license under Licensed Patents to make, use, sell, offer to sell,
+  import and otherwise transfer the Contribution of such Contributor,
+  if any, in Source Code or other form. This patent license shall
+  apply to the combination of the Contribution and the Program if, at
+  the time the Contribution is added by the Contributor, such addition
+  of the Contribution causes such combination to be covered by the
+  Licensed Patents. The patent license shall not apply to any other
+  combinations which include the Contribution. No hardware per se is
+  licensed hereunder.
+
+  c) Recipient understands that although each Contributor grants the
+  licenses to its Contributions set forth herein, no assurances are
+  provided by any Contributor that the Program does not infringe the
+  patent or other intellectual property rights of any other entity.
+  Each Contributor disclaims any liability to Recipient for claims
+  brought by any other entity based on infringement of intellectual
+  property rights or otherwise. As a condition to exercising the
+  rights and licenses granted hereunder, each Recipient hereby
+  assumes sole responsibility to secure any other intellectual
+  property rights needed, if any. For example, if a third party
+  patent license is required to allow Recipient to Distribute the
+  Program, it is Recipient's responsibility to acquire that license
+  before distributing the Program.
+
+  d) Each Contributor represents that to its knowledge it has
+  sufficient copyright rights in its Contribution, if any, to grant
+  the copyright license set forth in this Agreement.
+
+  e) Notwithstanding the terms of any Secondary License, no
+  Contributor makes additional grants to any Recipient (other than
+  those set forth in this Agreement) as a result of such Recipient's
+  receipt of the Program under the terms of a Secondary License
+  (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+  a) the Program must also be made available as Source Code, in
+  accordance with section 3.2, and the Contributor must accompany
+  the Program with a statement that the Source Code for the Program
+  is available under this Agreement, and informs Recipients how to
+  obtain it in a reasonable manner on or through a medium customarily
+  used for software exchange; and
+
+  b) the Contributor may Distribute the Program under a license
+  different than this Agreement, provided that such license:
+     i) effectively disclaims on behalf of all other Contributors all
+     warranties and conditions, express and implied, including
+     warranties or conditions of title and non-infringement, and
+     implied warranties or conditions of merchantability and fitness
+     for a particular purpose;
+
+     ii) effectively excludes on behalf of all other Contributors all
+     liability for damages, including direct, indirect, special,
+     incidental and consequential damages, such as lost profits;
+
+     iii) does not attempt to limit or alter the recipients' rights
+     in the Source Code under section 3.2; and
+
+     iv) requires any subsequent distribution of the Program by any
+     party to be under a license that satisfies the requirements
+     of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+  a) it must be made available under this Agreement, or if the
+  Program (i) is combined with other material in a separate file or
+  files made available under a Secondary License, and (ii) the initial
+  Contributor attached to the Source Code the notice described in
+  Exhibit A of this Agreement, then the Program may be made available
+  under the terms of such Secondary Licenses, and
+
+  b) a copy of this Agreement must be included with each copy of
+  the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+  Simply including a copy of this Agreement, including this Exhibit A
+  is not sufficient to license the Source Code under Secondary Licenses.
+
+  If it is not possible or desirable to put the notice in a particular
+  file, then You may include the notice in a location (such as a LICENSE
+  file in a relevant directory) where a recipient would be likely to
+  look for such a notice.
+
+  You may add additional accurate notices of copyright ownership.
diff --git a/org.eclipse.mdm.nucleus/NOTICE.txt b/org.eclipse.mdm.nucleus/NOTICE.txt
new file mode 100644
index 0000000..c43053d
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/NOTICE.txt
@@ -0,0 +1,381 @@
+# Notices for Eclipse MDM|BL
+
+This content is produced and maintained by the Eclipse MDM|BL project,
+it is a project of the openMDM(R) Eclipse Working Group.
+
+* Project home: https://projects.eclipse.org/projects/technology.mdmbl
+
+## Trademarks
+
+Eclipse MDM|BL, MDM|BL and Eclipse openMDM(R) logo are registered trademarks
+of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the following respective authors or their employers.
+For more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+Copyright (c) 2016-2019 Gigatronik Ingolstadt GmbH
+Copyright (c) 2016-2020 Peak Solution GmbH
+Copyright (c) 2017-2020 science + computing AG Tuebingen (ATOS SE)
+Copyright (c) 2017-2018 Canoo Engineering AG
+Copyright (c) 2017-2020 Angelika Wittek
+Copyright (c) 2018-2019 Elektronische Fahrwerksysteme GMBH
+Copyright (c) 2018-2020 Karakun AG
+Copyright (c) 2018-2020 Alexander Nehmer
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the
+terms of the Eclipse Public License v. 2.0 which is available at
+http://www.eclipse.org/legal/epl-2.0.
+
+SPDX-License-Identifier: EPL-2.0
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+org.eclipse.mdm.api.base.git	    - The openMDM(R) API.
+org.eclipse.mdm.api.default.git	    - Extension of the openMDM(R) API containing default elements.
+org.eclipse.mdm.api.odsadapter.git	- ODS implementation of persistence adapter.
+org.eclipse.mdm.nucleus.git	        - Core building blocks for the openMDM Business Logic and Web Frontend.
+
+## Third-party Content
+
+The Content includes items that have been sourced from third parties as set out below.
+If you did not receive this Content directly from the Eclipse Foundation, the following
+is provided for informational purposes only, and you should look to
+the Redistributor's license for terms and conditions of use.
+
+antlr4-4.5.3.jar(2.5.3)
+    * License: New BSD license
+
+aopalliance-repackaged-2.5.0-b05.jar (2.5.0-b05)
+    * License: CDDL
+
+commons-codec-1.2.jar (1.2)
+    * License: Apache License, 2.0
+
+commons-httpclient-3.1.jar  (3.1)
+    * License: Apache License, 2.0
+
+commons-lang3-3.8.1.jar (3.8.1)
+    * License: Apache License, 2.0
+
+commons-text-1.6.jar (1.6)
+    * License: Apache License, 2.0
+
+gson-2.7.jar (2.7)
+    * License: Apache License, 2.0
+
+Google Guava Version: 25.0-jre  (25.0)
+    * License: Apache License, 2.0
+
+Gradle Wrapper (4.10.2)
+    * License: Apache License, 2.0
+
+hk2-api-2.5.0-b05.jar (2.5.0-b05)
+    * License: CDDL-1.1
+
+hk2-locator-2.5.0-b05.jar(2.5.0-b05)
+    * License: CDDL
+
+hk2-utils-2.5.0-b05.jar (2.5.0-b05)
+    * License: CDDL
+
+jackson-annotations-2.9.0.jar  (2.9.0)
+    * License: Apache License, 2.0
+
+jackson-core-2.9.2.jar(2.9.2)
+    * License: Apache License, 2.0
+
+jackson-databind-2.9.2.jar  (2.9.2)
+    * License: Apache License, 2.0
+
+jackson-jaxrs-base-2.9.2.jar(2.9.2)
+    * License: Apache License, 2.0
+
+jackson-jaxrs-json-provider-2.9.2.jar(2.9.2)
+    * License: Apache License, 2.0
+
+jackson-module-jaxb-annotations-2.9.2.jar  (2.9.2)
+    * License: Apache License, 2.0
+
+javassist-3.20.0-GA.jar  (2.20.0-GA)
+    * License: Apache 2.0
+
+jcl-over-slf4j-1.7.25.jar(1.7.25)
+    * License: MIT License
+    * Licence Path: https://www.slf4j.org/license.html
+    * Project URL:  https://www.slf4j.org
+    * Source URL:   https://github.com/qos-ch/slf4j
+
+jersey-client-2.23.2.jar (2.23.2)
+     * License: CDDL
+
+jersey-common-2.23.2.jar (2.23.2)
+    * License: CDDL
+
+jersey-container-servlet-2.23.2.jar  (2.23.2)
+    * License: CDDL
+
+jersey-container-servlet-core-2.23.3.jar(2.23.2)
+    * License: CDDL
+
+jersey-guava-2.23.2.jar  (2.23.2)
+    * License: Apache License, 2.0
+
+jersey-media-jaxb-2.23.2.jar(2.23.2)
+    * License: CDDL
+
+jersey-media-sse-2.23.2.jar (2.23.2)
+    * License: CDDL
+
+jersey-media-multipart-2.23.2.jar (2.23.2)
+    * License: CDDL
+
+jersey-server-2.23.2.jar (2.23.2)
+    * License: Apache-2.0
+
+log4j-over-slf4j-1.7.25.jar (1.7.25)
+    * License: Apache-2.0
+
+logback-classic-1.2.3.jar(1.2.3)
+    * License: Eclipse Public License 1.0
+
+logback-core-1.2.3.jar(1.2.3)
+    * License: Eclipse Public License 1.0
+
+mimepull-1.9.6.jar (1.9.4)
+    * License: CDDL
+
+openatfx-0.7.4.jar (0.7.4)
+    * License: Apache-2.0
+
+osgi-resource-locator-1.0.1.jar(1.0.1)
+    * License: CDDL
+
+protobuf-java-3.2.0.jar (3.2.0)
+    * License: New BSD license
+
+protobuf-java-util-3.2.0.jar  (3.2.0)
+    * License: New BSD license
+
+swagger-annotations-2.0.8.jar (2.0.8)
+    * License: Apache-2.0
+
+swagger-ui-3.23.0.jar (3.23.0)
+    * License: Apache-2.0
+
+slf4j-api-1.7.25.jar  (1.7.25)
+    * License: MIT license
+    * Licence Path: https://www.slf4j.org/license.html
+    * Project URL: https://github.com/qos-ch/slf4j
+    * Source URL:  https://github.com/qos-ch/slf4j/releases/tag/v_1.7.25
+
+stax2-api-3.1.4.jar (3.1.4)
+    * License: BSD-2-Clause
+
+validation-api-1.1.0.Final.jar (1.1.0.Final)
+  * License: Apache License, 2.0
+
+vavr-0.9.1-sources.jar (0.9.1)
+  * License: Apache License, 2.0
+
+vavr-match-0.9.1.jar (0.9.1)
+  * License: Apache License, 2.0
+
+woodstox-core-asl-4.4.1.jar (4.4.1)
+  * License: Apache License, 2.0
+
+
+FFAMFAMFAM Silk Icon, Version 1.3
+    * License: Creative Commons Attribution 3.0 License
+    * Licence Path: https://creativecommons.org/licenses/by/3.0/
+    * Project: http://www.famfamfam.com/lab/icons/silk/
+    * Source:  http://www.famfamfam.com/lab/icons/silk/
+
+@angular/animations:7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io/api/animations
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+@angular/cdk:7.1.1
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io/api
+    * Source:  https://github.com/angular/angular/releases/tag/7.1.1
+
+
+@angular/common@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io/api/common
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4r
+
+@angular/compiler@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+@angular/core@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+@angular/forms@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+@angular/http@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+@angular/platform-browser-dynamic@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+@angular/platform-browser@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+@angular/router@7.2.4
+    * License: MIT
+    * Licence Path: https://github.com/angular/angular/blob/master/LICENSE
+    * Project: https://angular.io
+    * Source:  https://github.com/angular/angular/releases/tag/7.2.4
+
+bootstrap@4.1.3
+    * License: MIT
+    * Licence Path: https://github.com/twbs/bootstrap/raw/master/LICENSE
+    * Project: https://getbootstrap.com/
+    * Source:  https://github.com/twbs/bootstrap
+
+class-transformer@0.1.6
+    * License: MIT
+    * Licence Path: https://github.com/typestack/class-transformer/blob/master/LICENSE
+    * Project: https://github.com/pleerock/class-transformer
+    * Source:  https://github.com/pleerock/class-transformer
+
+core-js@2.6.0
+    * License: MIT
+    * Licence Path: https://github.com/zloirock/core-js/raw/master/LICENSE
+    * Project: https://github.com/zloirock/core-js
+    * Source:  https://github.com/zloirock/core-js/releases/tag/v2.6.0
+
+file-saver@1.3.3
+    * License: MIT
+    * Licence Path: https://github.com/eligrey/FileSaver.js/raw/master/LICENSE.md
+    * Project: https://github.com/eligrey/FileSaver.js
+    * Source:  https://github.com/eligrey/FileSaver.js
+
+font-awesome@4.7.0
+    * License: MIT
+    * Licence Path: https://github.com/FortAwesome/Font-Awesome/blob/master/LICENSE.txt
+    * Project: https://fontawesome.com/
+    * Source:  https://github.com/FortAwesome/Font-Awesome
+
+ng2-split-pane@1.3.1
+    * License: MIT
+    * Licence Path: https://github.com/wannabegeek/ng2-split-pane/raw/master/LICENSE
+    * Project: https://github.com/wannabegeek/ng2-split-pane
+    * Source:  https://github.com/wannabegeek/ng2-split-pane
+
+ngx-bootstrap@3.1.2
+    * License: MIT
+    * Licence Path: https://github.com/valor-software/ngx-bootstrap/blob/v3.1.2/LICENSE
+    * Project: https://valor-software.com/ngx-bootstrap
+    * Source:  https://github.com/valor-software/ngx-bootstrap/tree/v3.1.2
+
+@ngx-translate/core@11.0.1
+    * License: MIT 
+    * Licence Path:   https://github.com/ngx-translate/core/blob/v11.0.1/LICENSE  
+    * Project URL:    http://www.ngx-translate.com/
+    * Source URL:     https://github.com/ngx-translate/core
+
+@ngx-translate/http-loader@4.0.0
+    * License: MIT 
+    * Licence Path:   https://github.com/ngx-translate/http-loader/blob/v4.0.0/LICENSE  
+    * Project URL:    http://www.ngx-translate.com/
+    * Source URL:     https://github.com/ngx-translate/http-loader/tree/v4.0.0
+
+primeicons:1.0.0
+    * License: MIT
+    * Licence Path: https://github.com/primefaces/primeicons/blob/1.0.0/LICENSE
+    * Project: https://www.primefaces.org/primeng
+    * Source:  https://github.com/primefaces/primeicons/tree/1.0.0
+
+primeng@7.0.1
+    * License: MIT
+    * Licence Path: https://github.com/primefaces/primeng/blob/7.0.1/LICENSE.md
+    * Project: https://www.primefaces.org/primeng
+    * Source:  https://github.com/primefaces/primeng/tree/7.0.1
+
+rxjs@6.3.3
+    * License: Apache-2.0
+    * Project: https://rxjs-dev.firebaseapp.com/
+    * Source:  https://github.com/ReactiveX/rxjs/tree/6.3.3
+
+rxjs-compat:6.3.3
+    * License: Apache-2.0
+    * Project: https://rxjs-dev.firebaseapp.com/
+    * Source:  https://github.com/ReactiveX/rxjs/tree/6.3.3/compat
+
+tslib@1.9.0
+    * License: Apache-2.0
+    * Project: https://github.com/Microsoft/tslib
+    * Source:  https://github.com/Microsoft/tslib/tree/1.9.0
+
+zone.js@0.8.26
+    * License: MIT
+    * Licence Path: https://github.com/angular/zone.js/raw/master/LICENSE
+    * Project: https://github.com/angular
+    * Source:  https://github.com/angular/zone.js/releases/tag/v0.8.26
+
+OMG Event Service Specification (1.2)
+
+* License: LicenseRef - Object-Management-Group-License
+* Project: https://www.omg.org/spec/EVNT/1.2/
+* Source: https://www.omg.org/spec/EVNT/1.2/pdf
+
+OMG Notification Service Specification (1.1)
+
+* License: LicenseRef - Object-Management-Group-License
+* Project: https://www.omg.org/spec/NOT/
+* Source: https://www.omg.org/spec/NOT/1.1/PDF
+
+ods530.idl
+Date: Hoehenkirchen, 06/01/2016
+"The ASAM Board of Directors releases the IDL files for use under the EPL to the Eclipse IWG openMDM.
+This is valid for all versions of ASAM ODS 5.3.x.
+This permission is valid under the conditions of Eclipse will not modify the file."
+
+AvalonEvent.idl, CorbaFileServer.idl
+Date: 08/15/2016
+"Herewith, we release the generated Client-Source-Code generated from our CORBA IDLs, namely
+* CORBANotification Service (generated from „AvalonEvent.idl”)
+* CORBAFileServer (generated from „CorbaFileServer.idl“),
+Under the Eclipse Public License (EPL). This agreement does not include the „AvalonEvent.idl“ and
+„CorbaFileServer.idl“ itself, which remain protected property of HighQSoft. "
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
diff --git a/org.eclipse.mdm.nucleus/README.md b/org.eclipse.mdm.nucleus/README.md
new file mode 100644
index 0000000..8ed5e21
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/README.md
@@ -0,0 +1,603 @@
+## Documentation
+
+Before you start, please take a look at the [Getting Started Guide](https://git.eclipse.org/c/mdmbl/org.eclipse.mdm.nucleus.git/plain/doc/GettingStarted_mdmbl.pdf) which can also be found in the [Download area](https://projects.eclipse.org/projects/technology.mdmbl/downloads) of the project and in the `docs` directory relative to this README.md
+
+## Minimum requirements
+* JDK 1.8.0_45
+
+> This project uses a Gradle Wrapper
+
+## Build dependencies
+Before you can build and deploy the application, you have to checkout the following repositories in the same root directory as the current project
+* `git clone https://git.eclipse.org/r/mdmbl/org.eclipse.mdm.api.base.git`
+* `git clone https://git.eclipse.org/r/mdmbl/org.eclipse.mdm.api.default.git`
+* `git clone https://git.eclipse.org/r/mdmbl/org.eclipse.mdm.api.odsadapter.git`
+
+You **MUST** have the following directory structure afterwards
+
+```
+.
+├── org.eclipse.mdm.api.base
+├── org.eclipse.mdm.api.default
+├── org.eclipse.mdm.api.odsadapter
+└── org.eclipse.mdm.nucleus
+```
+
+Now you can use `gradlew install` in the `org.eclipse.mdm.nucleus` directory, but you should configure the application first.
+
+## Build, deploy and configure the application
+
+1. Edit the `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/core/property.service.ts` and set the `data_host` variable according to your deployment  
+ (This property will be used to create the REST URLs to communicate with the backend).
+ 
+2. Build the application with `gradlew install`.  
+ The command `gradlew install` executed at `org.eclipse.mdm.nucleus` creates a ZIP archive named `build/distributions/openMDM_application-${version}.zip` at `org.eclipse.mdm.nucleus/build/distributions`  
+ The ZIP archive contains the backend `org.eclipse.mdm.nucleus-${version}.war` and the configuration files in the `configuration` directory
+  
+3. Check that the database for the preference service is running, otherwise start it with `asadmin start-database` as described in the Getting Started Guide.
+
+4. Deploy the WAR file `org.eclipse.mdm.nucleuss-${version}.war` on your application server. Make sure to deploy the WAR file with application name `org.eclipse.mdm.nucleus`, otherwise the `LoginRealmModule` is not able to lookup the `ConnectorService` EJB.  
+ Additionally in the following examples, we assume that the context root is also set to `org.eclipse.mdm.nucleus`.  
+ When deploying from command line you can use `asadmin deploy --name org.eclipse.mdm.nucleus /path/to/org.eclipse.mdm.nucleus-${version}.war`
+ 
+5. Copy the content of the extracted `configuration` folder to `GLASSFISH_ROOT/glassfish/domains/domain1/config`.  
+ There is also a system property `org.eclipse.mdm.configPath`, which can be used to redefine the location of the folder to another location.
+ 
+6. Edit the `org.eclipse.mdm.connector/service.xml` file to configure the data sources
+
+7. Configure a `LoginModule` with name `MDMRealm` (See section **Configure LoginModule** for details)
+
+8. Restart the application server
+
+9. Visit the main page of the client to make sure everything works fine.  
+ The main page of the client should be available under `http://SERVER:PORT/{APPLICATIONROOT}` (eg: http://localhost:8080/org.eclipse.mdm.nucleus)
+
+## Configure LoginModule
+
+MDM 5 backend implements the delegated approach to roles and permissions, wherein the data sources (ASAM ODS server, PAK cloud)
+themselves can implement their own security scheme (which they already have) and then delegates the appropriate
+user data to the backends.
+
+In the case of ASAM ODS servers this is done using a technical user and the `for_user` attribute on the established
+connection, so it is a form of 'login on behalf'.
+
+In the case of PAK Cloud this is done by passing the user name along with a http header `X-Remote-User` which is then
+used by PAK Cloud to establish the users roles (from an internal database or an external authentication provider).
+
+Before the user is 'logged in on behalf' he is authenticated by a `LoginModule` within the Glassfish application server.
+There are different implementations available (e.g. LDAP, Certificate, JDBC, ...). To keep this guide simple, we will setup
+a `FileRealm`, which stores the user information in a flat file.
+
+The following command will create a `FileRealm` with name `MDMRealm` that stores the users in a file called `mdm-keyfile`
+```
+asadmin create-auth-realm --classname com.sun.enterprise.security.auth.realm.file.FileRealm --property file=${com.sun.aas.instanceRoot}/config/mdm-keyfile:jaas-context=MDMRealm:assign-groups=Guest MDMRealm
+```
+
+To be able to login you need to explicitly add users to the `MDMRealm`
+```
+asadmin create-file-user --authrealmname --groups MDMRealm Admin:DescriptiveDataAuthor:Guest
+```
+
+Currently three roles are supported by openMDM, adapt the users according to your needs
+* **Admin**: Administrator role allowed to access the Administration section in the web application
+* **DescriptiveDataAuthor**: Users allowed to edit context data
+* **Guest**: Default application users allowed to browse and read measurement data
+
+Keep in mind that the roles are mainly used to enable/disable certain actions in the web application.
+Authorization in openMDM is still done via the delegation approach, e.g. the adapters are responsible for handling authorization on data.
+
+Next you need to add the following snippet to your `login.conf` in `${com.sun.aas.instanceRoot}/config/`
+```
+MDMRealm {
+  com.sun.enterprise.security.auth.login.FileLoginModule required;
+};
+```
+
+As a last step you have to provide the credentials of the technical user in adapter configuration in `service.xml`. 
+For the ODS adapter you have to specify the parameters `user` and `password` of the technical user. For example
+```
+<service entityManagerFactoryClass="org.eclipse.mdm.api.odsadapter.ODSContextFactory">
+    ...
+	<param name="user">sa</param>
+	<param name="password">sa</param>
+	...
+</service>
+```
+
+Make sure to restart Glassfish afterwards.
+
+### Remove MDMLoginRealm from previous versions
+
+In versions 5.0.0M1, 0.10 and older the configuration of a custom login realm was necessary. If you configured your Glassfish server instance
+for one of these versions, you can remove the old configuration options and artifact, as they are no longer needed.
+
+#### Steps to delete the old configuration and artifacts
+
+* Delete the JAR file `org.eclipse.mdm.realm.login.glassfish-VERSION.jar` from `GLASSFISH_ROOT/glassfish/domains/domain1/lib`  
+* Open the Glassfish login **configuration file** at `GLASSFISH_ROOT/glassfish/domains/domain1/config/login.conf`
+* Delete custom MDM realm module entry to this config file  
+  ```   
+  MDMLoginRealm {
+    org.eclipse.mdm.realm.login.glassfish.LoginRealmModule required;
+  };
+  ```
+* Remove the `MDMLoginRealm` by executing `asadmin delete-auth-realm MDMLoginRealm` or by deleting it in the Glassfish web console  
+
+## Configure logging
+
+MDM 5 uses SLF4J and Logback for logging. The default configuration file can be found at `org.eclipse.mdm.nucleus/src/main/resources/logback.xml`.
+It logs INFO level messages to `mdm5.log` in the **logs** folder of the Glassfish domain.
+If you want to customize logging, you can either edit the file within the WAR file or preferably provide your own logging configuration via system parameter in the JVM settings in Glassfish `-Dlogback.configurationFile=/path/to/config.xml`
+
+## Available REST URLs
+
+Please use the generated OpenAPI Specification, which is generated at build time.
+The OpenAPI Specification is available in `org.eclipse.mdm.nucleus/build/openapi/openapi.json` or at runtime at `http://{SERVER}:{PORT}/{APPLICATIONROOT}/openapi.json`.
+Furthermore a Swagger UI is available at `http://{SERVER}:{PORT}/{APPLICATIONROOT}/swagger.html`
+
+### Structure of the URLs
+
+* `SERVER` the hostname of the Glassfish server
+* `PORT` the port of the Glassfish server
+* `APPLICATIONROOT` is the context root under which MDM is deployed
+* `SOURCENAME` is the source name the underlying data source
+
+#### Environment
+
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments`
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}`
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/localizations`
+
+#### Business objects
+
+The following parameters are recurring throughout the different URLs
+
+* `ID` the identifier of the business object
+
+* `CONTEXTTYPE` is one of
+  * `unitundertest`
+  * `testsequence`
+  * `testequipment`
+  
+* `DATATYPE` is one of
+  * `STRING`
+  * `STRING_SEQUENCE`
+  * `DATE, DATE_SEQUENCE`
+  * `BOOLEAN`
+  * `BOOLEAN_SEQUENCE`
+  * `BYTE`
+  * `BYTE_SEQUENCE`
+  * `SHORT`
+  * `SHORT_SEQUENCE`
+  * `INTEGER`
+  * `INTEGER_SEQUENCE`
+  * `LONG`
+  * `LONG_SEQUENCE`
+  * `FLOAT`
+  * `FLOAT_SEQUENCE`
+  * `DOUBLE`
+  * `DOUBLE_SEQUENCE`
+  * `BYTE_STREAM`
+  * `BYTE_STREAM_SEQUENCE`
+  * `FLOAT_COMPLEX`
+  * `FLOAT_COMPLEX_SEQUENCE`
+  * `DOUBLE_COMPLEX`
+  * `DOUBLE_COMPLEX_SEQUENCE`
+  * `FILE_LINK`
+  * `FILE_LINK_SEQUENCE`
+   
+* `FILTERSTRING` is a String defining a filter. For example `Test.Name eq "t*"` filters for all tests which names begin with `t`.  
+ Strings should be quoted with `"`. `"` characters within strings have to be escaped with a backslash. For backward compatibility `'` is also allowed to quote strings, but may be blocked in URLs in some environments, thus `"` should be preferred.
+ 
+* `REMOTE_PATH` is the remote path of a file link as it is returned in the attributes of type `FILE_LINK` and `FILE_LINK_SEQUENCE`  
+ Make sure to properly URL escape the value of the remote path. Especially slashes have to be escaped with `%2F`.
+ 
+##### Examples
+
+Most of the Business objects support the following calls (examples for **TestStep**)
+
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/teststeps?filter={FILTERSTRING}`
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/teststeps/searchattributes`
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/teststeps/localizations`
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/teststeps/{ID}`
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/teststeps/{ID}/contexts/{CONTEXTTYPE}`
+
+For **TestStep** and **Measurement** it is also possible to receive files
+
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/teststeps/{ID}/files/{REMOTE_PATH}`
+
+
+#### Query endpoint
+
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/query`   
+ Example: `curl -POST -H "Content-Type: application/json" -d '{"resultType": "test", "columns": ["Test.Name", "TestStep.Name"], "filters": { "sourceName": "SOURCENAME", "filter": "Test.Id gt 1", "searchString": ""}}'http://sa:sa@localhost:8080/org.eclipse.mdm.nucleus/mdm/query`
+ 
+* `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/suggestions`  
+ Example: `curl -POST -H "Content-Type: application/json" -d '{"sourceNames": ["SOURCENAME"], "type": "Test", "attrName": "Name"}' http://sa:sa@localhost:8080/org.eclipse.mdm.nucleus/mdm/suggestions`
+
+#### ATFX Import
+
+POST: `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/environments/{SOURCENAME}/import`
+
+Imports an ATFX file into the specified environment. The ATFX file must conform to the MDM 5 data model.
+
+> TODO Templates
+
+Three content types are accepted
+* `application/xml`: The ATFX file is sent in the body of the POST request.
+
+* `multipart/form-data`: The ATFX file and its binary files are provided as multipart form data. The field name represents the original file name and the field value the contents of the file.  
+ The ATFX file is detected by its file extension 'atfx' or the media type 'application/xml'. Only one ATFX file can be sent at a time.
+
+* `application/zip`: The ATFX file and its component files are provided as a zip file. The ATFX file is detected by its file extension 'atfx'. Only one ATFX file can be included in the zip file.
+
+The POST request returns a JSON-Object with the following properties
+* state: Status of the import. Either `OK` or `FAILED`.
+* message: Error message in case the import fails.
+* stacktrace: Stacktrace in case the import fails.
+
+The returned HTTP status is either `200`, if the imported succeeded or `400`, if the import failed. 
+
+
+#### ATFX Export
+
+POST: `http://{SERVER}:{PORT}/{APPLICATIONROOT}/mdm/export`
+
+Accepts a shopping basket XML file and exports the contained elements into an ATFX file. 
+Currently it is only supported to export objects from one environment. 
+
+Returned content types in response:
+* `application/xml`: The response body contains the exported ATFX file
+
+* `application/zip`: The response contains a zip file with the exported ATFX file and accompanying component files.
+
+### Example: File download
+
+* Login  
+ `curl -XPOST --cookie-jar cookie -H "Content-Type: application/x-www-form-urlencoded" -d j_username=sa -d j_password=sa http://localhost:8080/org.eclipse.mdm.nucleus/j_security_check`
+
+* Request a test and extract the remotePath from the first file reference  
+ `FILE_PATH="$(curl --cookie cookie -s http://localhost:8080/org.eclipse.mdm.nucleus/mdm/environments/MDMNVH/teststeps/10 | jq -r '.data[0].attributes[] | select (.name | contains("MDMLinks")) | .value[0].remotePath')"`
+
+* Urlescape remotePath if necessary  
+ `FILE_PATH="$(echo $FILE_PATH | python -c 'import sys,urllib;print urllib.quote(sys.stdin.read().strip(), "")')"`
+
+* Request the file content  
+ `curl --cookie cookie http://localhost:8080/org.eclipse.mdm.nucleus/mdm/environments/MDMNVH/teststeps/10/files/$FILE_PATH`
+
+
+## Preference Service
+Preference service stores its data to a relational database. The database connection is looked up by JNDI and the JNDI name and other database relevant parameters are specified in `src/main/resources/META-INF/persistence.xml`. The default JNDI name for the JDBC resource is set to `jdbc/openMDM`. This JDBC resource and its dependent JDBC Connection Pool has to be created and configured within the Glassfish web administration console or through `asadmin` command line tool.
+
+Furthermore the schema has to be created in the configured database. Therefore database DDL scripts are available for PostgreSQL and Apache Derby databases in the folder `schema/org.eclipse.mdm.preferences` of the distribution.
+Other databases supported by EclipseLink may also work, but is up to the user to adapt the DDL scripts.
+
+### Examples
+* Receive values  
+ `curl -GET -H "Content-Type: application/json" http://localhost:8080/org.eclipse.mdm.nucleus/mdm/preferences?scope=SYSTEM&key=ignoredAttributes`
+ 
+* Set value  
+ `curl -PUT -H "Content-Type: application/json" -d '{"scope": "SYSTEM", "key": "ignoredAttributes", "value": "[\"*.MimeType\"]"}' http://localhost:8080/org.eclipse.mdm.nucleus/mdm/preferences`
+ 
+* Delete entry  
+ `curl -DELETE http://localhost:8080/org.eclipse.mdm.nucleus/mdm/preferences/ID`
+
+
+## FreeTextSearch
+### Configuration
+1. Start ElasticSearch. ElasticSearch can be downloaded at https://www.elastic.co/products/elasticsearch. The minimum supported Elasticsearch version is 7. For testing purpose, it can be simply started by executing `bin/run.sh`
+
+2. Edit the configuration (`global.properties`) to fit your environment. You need an ODS Server which supports Notifications. All fields have to be there, but can be empty. However certain ODS Servers ignore some parameters (e.g. PeakODS ignores pollingIntervall since it pushes notifications).
+
+3. Start the application. At the first run it will index the database. This might take a while. After that MDM registers itself as `NotificationListener` and adapts all changes one-by-one.
+
+### Run on dedicated server
+
+The Indexing is completely independent from the searching. So the Indexer can be freely deployed at any other machine.
+In the simplest case, the same steps as in Configuration have to be done.
+The application can then be deployed on any other machine. All components besides the FreeTextIndexer and its dependencies are not user. Those can be left out, if desired.
+
+## Connector and service.xml
+
+The `service.xml` contains all information necessary for the Connector-Service to connect to the available datasources/adapter instances.
+Since this information includes secret information like passwords, it is possible to provide lookups, which gives you the possibility to specify tokens as references to properties defined elsewhere.
+
+There are different lookups available
+* `sys`: Looks up variables defined as system properties
+* `env`: Looks up variables defined as environment variables
+
+Example:
+
+`<param name="password">${env:odsPassword}</param>`
+
+
+## Known issues
+
+If you run into `java.lang.ClassNotFoundException: javax.xml.parsers.ParserConfigurationException not found by org.eclipse.persistence.moxy` this is a bug described in https://bugs.eclipse.org/bugs/show_bug.cgi?id=463169 and https://java.net/jira/browse/GLASSFISH-21440.
+This solution is to replace `GLASSFISH_HOME/glassfish/modules/org.eclipse.persistence.moxy.jar` with this file http://central.maven.org/maven2/org/eclipse/persistence/org.eclipse.persistence.moxy/2.6.1/org.eclipse.persistence.moxy-2.6.1.jar
+
+If you run into `java.lang.ClassNotFoundException: com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector not found by com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider` you have to download http://central.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.5.1/jackson-module-jaxb-annotations-2.5.1.jar and put in the `GLASSFISH_HOME/glassfish/domains/domain1/autodeploy/bundles` folder
+
+## Client preferences
+
+The applications preferences are managed in the administration section. This section can be accessed via the **Administration** button in the main navigation bar or via http://localhost:8080/org.eclipse.mdm.nucleus/administration
+
+A preference is a pair of a unique key and a value. The key is composed of a prefix defining the purpose of the preference followed by an arbitrary but unique identifier string.
+It is recommended to choose the identifier the same as the preferences `name` field, in case there is one. The value holds the preference's data in a JSON string.
+
+The following preferences, sorted by their scope, can be set
+
+* User
+  - Basket
+  - View
+  - Filter
+
+* System
+  - Node provider
+  - Shopping basket file extensions
+
+* Source
+  - Ignored attributes
+
+However, it might be necessary to reload the application before a newly defined preference is available or any changes on an existing preferences are applied.
+
+**WARNING**: Corrupted preferences can result in malfunctions of the application.
+
+### User scope
+
+A user scoped preference's area of effect is limited to the logged in user. All user scoped preferences can also be set in dialogs in the main application.
+
+1. Basket  
+ Basket preferences keys must start with the prefix `basket.nodes.`  
+ This preference has the fields `items` and `name` and holds all the information for saved baskets.  
+   * The field `items` holds an array of MDMItems, providing the relevant information of a related node, i.e. `source`, `type` and `id`.  
+   * The field `name` defines the name, which is provided in the main application to load this basket.
+   
+   Example  
+   ```
+   {
+     "items": [{"source":"MDMNVH","type":"Test","id":38}],
+     "name": "basketExample"
+   }
+   ```
+
+2. View  
+  View preferences keys must start with the prefix `tableview.view.`  
+  This preference has the fields `columns` and `name` and holds the layout information for the tables displaying the search results and the basket nodes.  
+    * The field `columns` holds an array of ViewColumn objects. A ViewColumn is an Object with the fields `type`, `name`, `sortOrder` and an optional field `style`.  
+    * The field `type` can be set to all available MDM data types, i.e. `Project`, `Pool`, `Test`, `TestStep`, `Measurement`, `ChannelGroup`, `Channel`.  
+    * The field `name` field specifies an attribute, which must be an searchable attribute for the given `type`.  
+    * The field `sortOrder` can be set by the number `1` (ascending), `-1` (descending), or null (unsorted). Only one column of the array can have a non-null value `sortOrder` at a time. The ViewColumn's style element can hold any CSS-style object. However, it is supposed to contain only the columns width. The column order in the array is identically with the appearance in the table.  
+    * The field `name` defines the name, which is provided in the main application to load this view.    
+
+    Example
+    ```
+    {
+     "columns": [
+       {
+         "type": "Test",
+         "name": "Id",
+         "style": {"width":"75px"},
+         "sortOrder": null
+       }
+     ],
+     "name": "viewExample" 
+    }
+    ```
+
+3. Filter  
+  Filter preferences keys must start with the prefix `filter.nodes.`  
+  This preference has the fields `conditions`, `name`, `environments`, `resultType` and `fulltextQuery`.  
+  It provides the information for the attribute based / advanced search.  
+    * The field `conditions` holds an array of Condition objects. A Condition specifies a search condition for attribute based search. It consists of the fields `type`, `name`, `operator`, `value` and `valueType`. The Condition's `type` can be set to all available MDM data types, i.e. `Project`, `Pool`, `Test`, `TestStep`, `Measurement`, `ChannelGroup`, `Channel`.
+      * The Condition's `name` field specifies an attribute, which must be an searchable attribute for the given `type`.  
+      * The Condition's `operator` field, holds on of the following numbers: `0`(=), `1`(<), `2`(>), `3`(like).
+      * The Condition's `value` field holds a string array containing input for the attribute based search.
+      * The Condition's `resultType` field should match the type corresponding to the attribute specified in the `'name` filed, e.g. `string`, `date` or `long`.
+    * The field `name` defines the name, which is provided in the main application to load this filter.
+    * The field `environments` holds an string array with the names of the sources that should be included in the search.
+    * The field `resultType` can be set to all available MDM data types (see above). Only nodes of this type will be included in the search.
+    * The field `fulltextQuery` holds a string containing full text search input.  
+  
+    Example
+    ```
+    { "conditions": [
+        {
+          "type": "Test",
+          "attribute": "Name",
+          "operator": 0,
+          "value": [],
+          "valueType":"string"
+        }
+      ],
+      "name": "filterExample",
+      "environments": ["sourceName"],
+      "resultType": "Test",
+      "fulltextQuery": ""
+    }
+    ```
+
+
+### System scope
+
+System scoped preference are applied globally.
+
+* Node provider  
+  The navigation tree structure can be defined via a node provider. The default node provider is set in `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/navigator/defaultnodeprovider.json`.  
+  It is recommended not to change the default node provider. Instead new node providers can be added as preferences.  
+  Their keys must start with the prefix `nodeprovider.`. Once a custom node provider is supplied it can be selected in the dropdown menu in the navigation tree header.  
+  
+  * Structure
+
+     * First layer/root nodes  
+      In the node provider each layer of nodes of the navigation tree is defined in a nested object.  
+      The first layer of nodes, is always the environment level. This is necessary due to the provided endpoints.  
+      The first layer consists of the fields `name`, `type`, and `children`.  
+       * The field `name` sets the name, which is displayed in the application to select the corresponding node provider.  
+       * The field `type` defines the data type of the nodes, which is always `Environments` on the first layer.
+         
+       The next layer of nodes are defined via the field `children`.
+
+     * Children  
+      A child object consists of the fields `type`, `query`, and `children`.  
+       * The field `type` sets the data type of this layer of nodes. It can be set to all available MDM data types, i.e. `Project`, `Pool`, `Test`, `TestStep`, `Measurement`, `ChannelGroup`, `Channel`.  
+       * The filed `query` holds the URL to load this layer of nodes. The first part of the query for each child object should be `/` plus the type of the layer in small letters followed by an `s`.  
+         For a nested child objected a filter is attached to the query in the form: `?filter=<parentType>.Id eq {<parentType>.Id}`. The placeholder <parentType> has to be replaced by the actual parent type (set in the field `type` in the parent child or root layer, see example below).  
+         At runtime the curly braces will be replaced by the Id of the parent node. Further child objects, and thereby more sublayers, can be nested via the field `children`.
+           
+       The children field does not need to be set for the last layer of nodes.
+  
+  * Examples
+
+    * Minimal node provider  
+      ```
+      { "name": "My name to display", "type": "Environment"}  
+      ```    
+
+    * Node provider with two child layers  
+      ```
+       {
+          "name": "My name to display",
+          "type": "Environment",
+          "children": {
+            "type": "Project",
+            "query": "/projects",
+            "children": {
+              "type": "Pool",
+              "query": "/pools?filter=Project.Id eq {Project.Id}"
+            }
+          }
+        }
+      ```
+
+* Shopping basket file extensions
+
+  When downloading the contents of a shopping basket, a file with extension `mdm` is generated.  
+  Additional file extensions can be adding by poviding a preference with key `shoppingbasket.fileextensions`.  
+  Here you can define a list of objects with attributes `label` and `extension`.  
+  For example: `[ { "label": "MyTool", "extension": "mdm-mytool" }, { "label": "OtherTool", "extension": "mdm-other" } ]`.  
+  If `MyTool` has a file handler registered for the extension `mdm-mytool`, the application will be launched if the browser automatically opens the file after download.
+
+### Source scope
+
+Source scoped preferences are applied at any user, but are limited to the specified source. The source can be specified in the **Add Preference** or **Edit Preference** dialog.
+
+* Ignored Attributes  
+  The ignore attributes preference must have the exact key `ignoredAttributes`. An identifier must not be added.  
+  The preference specifies all attributes, which are supposed to be ignored in the detail view. The preference is a simple JSON string holding a list of attributes in the form {"<type>.<AttributeName>"}.  
+  The placeholders <type> and <AttributeName> have to be replaced by the actual type and name of the attribute which should be ignored, respectively.
+
+  Example:  
+  `["*.MimeType", "TestStep.Sortindex"]`
+
+## Create a module for the Web application
+
+Any MDM module needs to be a valid [Angular module](https://angular.io/guide/architecture-modules) aka NgModule.  
+A NgModule consists of the module definition, components, services and other files that are in the scope of the module. 
+The component can hold any content. The component must be declared in a module definition to grant accessibility in the rest of the application.  
+All related files should be stored in a new module subfolder in the app folder `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app` (eg. `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/new-module`)
+
+### Example module
+
+An example for a new module can be found at `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/example-module`
+
+### Creating a MDM module
+
+1. Create a new folder eg. `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/new-module`
+
+2. Create an Angular component (eg. `mdm-new.component.ts`) inside that new folder   
+   ```typescript
+    import {Component} from '@angular/core';
+    @Component({template: '<h1>Example Module</h1>'})
+    export class MDMNewComponent {}
+   ```
+   A component is defined in a Typescript file with the `@Component()` decorator.  
+   Any HTML content can be provided here in an inline template or via a link to an external HTML resource. Thereafter the component itself, which is supposed to hold any logic needed, is defined and exported.  
+   For more details see https://angular.io/guide/architecture-components.
+   
+3. Create a minimal NgModule  (eg. `mdm-new.module.ts` ) inside that new folder    
+   ```typescript
+    import { NgModule } from '@angular/core';
+    import { MDMCoreModule } from '../core/mdm-core.module';
+    import { MDMNewComponent } from './mdm-new.component';
+    @NgModule({imports: [MDMCoreModule], declarations: [MDMNewComponent]})
+    export class MDMNewModule {}
+   ```
+   The `imports` array holds all modules from the application needed in this MDM module. It should always hold the `MDMCoreModule`, which provides basic functionalities.  
+   On the other hand a NgModule grants accessibility of components of this module in other directives (including the HTML template) within the module (in a `declaration` array) or even in other parts of the application (in an `export` array).  
+   For more details see https://angular.io/guide/architecture-modules.
+
+### Embedding a module (no lazy loading)
+
+To embed this new module in MDM you have to register this module in the `MDMModules` Module.
+* Import the new module at `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/modules/mdm-modules.module.ts`
+
+* Register a route to the new module at `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/modules/mdm-modules-routing.module.ts`  
+  ```
+  { path: 'new', component: MDMNewComponent}
+  ```
+
+ * Furthermore you have to define a display name for the registered route in the `links` array in `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/modules/mdm-modules.component.ts`    
+  ```
+  { path: 'new', name: 'New Module' }
+  ```
+
+For further information refer to the Angular documentation:
+* https://angular.io/guide/architecture-components
+* https://angular.io/guide/architecture-modules
+* https://angular.io/guide/router
+
+
+### Lazy loading and routing module
+
+For lazy-loading (recommended in case there is a high number of modules) embedding of the module is slightly different.
+```
+  { path: 'example', loadChildren: '../example-module/mdm-example.module#MDMExampleModule'}
+```
+
+Additionally, a NgModule, the so called routing module (eg. `mdm-new-routing.module.ts`), is needed to provide the routes to this modules components.
+```typescript
+  const moduleRoutes: Routes = [{ path: '', component: MDMExampleComponent }];
+  @NgModule({imports: [RouterModule.forChild(moduleRoutes)], exports: [RouterModule]})
+  export class MDMExampleRoutingModule {}
+```   
+
+### Filerelease module
+The filerelease module is stored in the following folder `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/filerelease`
+
+It can be embedded as any other module described above.  
+```
+{ path: 'filerelease', component: MDMFilereleaseComponent }
+```
+
+```
+{ name: 'MDM Files', path: 'filerelease'}
+```
+
+### Adding a module to the detail view (eg. filerelease module)
+To make the filerelease module available in the detail view it needs to be imported in the corresponding MDM Module `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/details/mdm-detail.module.ts`  
+Thereafter, the `MDMFilereleaseCreateComponent` can be imported to the `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/details/components/mdm-detail-view/mdm-detail-view.component.ts`.  
+Then the following has to be added to the `org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/app/details/components/mdm-detail-view/mdm-detail-view.component.html` file:
+```
+  <mdm-filerelease-create [node]=selectedNode [disabled]="isReleasable()"></mdm-filerelease-create>
+```
+
+It should be located right after the add to basket button:
+```
+<div class="btn-group pull-right" role="group">
+  <button type="button" class="btn btn-default" (click)="add2Basket()" [disabled]="isShopable()">In den Warenkorb</button>
+  <mdm-filerelease-create [node]=selectedNode [disabled]="isReleasable()"></mdm-filerelease-create>
+</div>
+```
+
+## Copyright and License
+Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
+
+ See the NOTICE file(s) distributed with this work for additional  
+ information regarding copyright ownership.
+
+ This program and the accompanying materials are made available under the  
+ terms of the Eclipse Public License v. 2.0 which is available at  
+ http://www.eclipse.org/legal/epl-2.0.  
+
+ SPDX-License-Identifier: EPL-2.0
\ No newline at end of file
diff --git a/org.eclipse.mdm.nucleus/WebContent/META-INF/MANIFEST.MF b/org.eclipse.mdm.nucleus/WebContent/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5e94951
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/WebContent/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0

+Class-Path: 

+

diff --git a/org.eclipse.mdm.nucleus/build.gradle b/org.eclipse.mdm.nucleus/build.gradle
new file mode 100644
index 0000000..e4b8154
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/build.gradle
@@ -0,0 +1,204 @@
+/********************************************************************************
+ * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+plugins {
+	id "org.sonarqube" version "2.5"
+	id "io.swagger.core.v3.swagger-gradle-plugin" version "2.0.8"
+}
+
+group = 'org.eclipse.mdm'
+version = '5.2.0M1-SNAPSHOT'
+
+description = 'mdm nucleus'
+apply plugin: 'war'
+apply plugin: 'maven'
+apply plugin: 'eclipse'
+apply plugin: 'jacoco'
+apply plugin: 'org.sonarqube'
+
+sourceCompatibility = 1.8
+
+repositories {
+	mavenLocal()
+	mavenCentral()
+}
+
+subprojects {
+	configurations.all {
+		resolutionStrategy.dependencySubstitution {
+			substitute module("de.rechner:openatfx") with project(":org.eclipse.mdm.openatfx")
+		}
+	}
+	
+	group = rootProject.group
+	version = rootProject.version
+	
+	apply plugin: 'eclipse'
+	apply plugin: 'java'
+	apply plugin: 'maven'
+	apply plugin: 'jacoco'
+
+	sourceCompatibility = 1.8
+
+	repositories {
+		mavenLocal()
+		mavenCentral()
+	}
+
+	dependencies {
+		compileOnly 'org.slf4j:slf4j-api:1.7.25'
+		compileOnly 'javax:javaee-api:7.0'
+		compile 'io.swagger.core.v3:swagger-annotations:2.0.8'
+		runtime 'ch.qos.logback:logback-classic:1.2.3'
+
+		testCompile 'junit:junit:4.12'
+		testCompile 'org.assertj:assertj-core:3.6.2'
+		testCompile 'org.mockito:mockito-core:2.13.0'
+		testCompile 'javax:javaee-api:7.0'
+	}
+	
+	task sourcesJar(type: Jar, dependsOn: classes) {
+		classifier = 'sources'
+		from sourceSets.main.allSource
+	}
+	
+	artifacts {
+		archives sourcesJar
+	}
+}
+
+clean {
+	dependsOn gradle.includedBuilds*.task(':clean')
+}
+
+configurations.runtime {
+	resolutionStrategy.dependencySubstitution {
+		substitute module("de.rechner:openatfx") with project(":org.eclipse.mdm.openatfx")
+	}
+	exclude group: 'com.sun.mail', module: 'javax.mail'
+	exclude group: 'javax.ws.rs', module: 'javax.ws.rs-api'
+	exclude group: 'javax.activation', module: 'activation'
+	exclude group: 'javax.annotation', module: 'javax.annotation-api'
+	exclude group: 'javax.inject', module: 'javax.inject'
+	exclude group: 'org.glassfish.hk2.external', module: 'javax.inject'
+	exclude group: 'commons-logging', module: 'commons-logging'
+	// exclude guava dependencies
+	exclude group: 'com.google.code.findbugs', module: 'jsr305'
+	exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
+	exclude group: 'com.google.j2objc', module: 'j2objc-annotations'
+	exclude group: 'org.codehaus.mojo', module: 'animal-sniffer-annotations'
+	exclude group: 'org.checkerframework', module: 'checker-compat-qual'
+}
+
+dependencies {
+	runtime project(':org.eclipse.mdm.application')
+	runtime project(':org.eclipse.mdm.apicopy')
+
+	compile 'org.webjars:swagger-ui:3.23.0'
+	// adapters
+	runtime project(':org.eclipse.mdm.api.atfxadapter')
+	runtime "org.eclipse.mdm:org.eclipse.mdm.api.odsadapter:${version}"
+}
+
+
+resolve {
+	outputPath = file('build/openapi')
+	outputFileName = 'openapi'
+	outputFormat = 'JSONANDYAML'
+	prettyPrint = 'TRUE'
+	classpath = sourceSets.main.runtimeClasspath
+	resourcePackages = ['org.eclipse.mdm']
+	openApiFile = file('src/main/openapi/openApiFile.json')
+}
+
+tasks.war.dependsOn("resolve")
+
+task collectConfiguration() {
+	doLast {
+		subprojects.each { subproject ->
+			copy {
+				from "${project.projectDir}/${subproject.name}/src/main/configuration/"
+				into "${project.projectDir}/build/tmp/openmdm_application/configuration/${subproject.name}"
+			}
+		}
+	}
+}
+
+task copySchema(dependsOn: ':org.eclipse.mdm.preferences:generateSchema') {
+	doLast {
+		copy {
+			from "${project.projectDir}/org.eclipse.mdm.preferences/build/generated-schema/"
+			into "${project.projectDir}/build/tmp/openmdm_application/schema/org.eclipse.mdm.preferences"
+		}
+		
+		copy {
+			from "${project.projectDir}/org.eclipse.mdm.preferences/src/main/sql/"
+			into "${project.projectDir}/build/tmp/openmdm_application/schema/update"
+		}
+	}
+}
+
+task distribute(type: Zip) {
+	archiveName = "openMDM_application-${version}.zip"
+
+	from "${project.projectDir}/LICENSE.txt"
+	from "${project.projectDir}/NOTICE.txt"
+	from "${project.projectDir}/CONTRIBUTING.md"
+	from "${project.projectDir}/readme.md"
+	from "${project.projectDir}/release_notes.md"
+
+	from "${project.projectDir}/doc/GettingStarted_mdmbl.pdf"
+	from "${project.projectDir}/doc/Installation Guide for the openMDM5 Application.pdf"
+
+	from "${project.projectDir}/build/tmp/openmdm_application"
+	from "${project.projectDir}/build/libs/"
+}
+distribute.dependsOn(collectConfiguration)
+distribute.dependsOn(copySchema)
+
+war {
+	from ('org.eclipse.mdm.application/build/node/dist') {
+		include('**/*')
+	}
+	from ("${project.projectDir}/build/openapi/") {
+		include('**/*')
+		filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [VERSION: version])
+	}
+	from ("${project.projectDir}/src/main/webapp/") {
+		include('**/*')
+	}
+
+
+	webXml = file('org.eclipse.mdm.application/src/main/webconfig/web.xml')
+	webInf  {from 'org.eclipse.mdm.application/src/main/webconfig/glassfish-web.xml'}
+
+	metaInf { from 'NOTICE.txt' }
+	metaInf { from 'LICENSE.txt' }
+	metaInf { from 'CONTRIBUTING.md' }
+}
+
+war.finalizedBy(distribute)
+
+jacoco {
+	toolVersion = "0.7.6.201602180812"
+	reportsDir = file("${project.buildDir}/jacoco/test.exec")
+}
+
+sonarqube {
+	properties {
+		property "sonar.java.coveragePlugin", "jacoco"
+		property "sonar.jacoco.reportPaths", "${project.buildDir}/jacoco/test.exec"
+	}
+}
+tasks["sonarqube"].dependsOn "org.eclipse.mdm.application:map_tslint"
\ No newline at end of file
diff --git a/org.eclipse.mdm.nucleus/doc/GettingStarted_mdmbl.pdf b/org.eclipse.mdm.nucleus/doc/GettingStarted_mdmbl.pdf
new file mode 100644
index 0000000..b194922
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/doc/GettingStarted_mdmbl.pdf
Binary files differ
diff --git a/org.eclipse.mdm.nucleus/eclipse_formatter.xml b/org.eclipse.mdm.nucleus/eclipse_formatter.xml
new file mode 100644
index 0000000..eb0b582
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/eclipse_formatter.xml
@@ -0,0 +1,347 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<profiles version="16">

+<profile kind="CodeFormatterProfile" name="openMDM 5 Formatter (Eclipse built-in 2019-3)" version="16">

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>

+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>

+<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>

+<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>

+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>

+<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>

+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>

+</profile>

+</profiles>

diff --git a/org.eclipse.mdm.nucleus/gradle/wrapper/gradle-wrapper.jar b/org.eclipse.mdm.nucleus/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..7a3265e
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/org.eclipse.mdm.nucleus/gradle/wrapper/gradle-wrapper.properties b/org.eclipse.mdm.nucleus/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..b82e006
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME

+distributionPath=wrapper/dists

+zipStoreBase=GRADLE_USER_HOME

+zipStorePath=wrapper/dists

+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip

diff --git a/org.eclipse.mdm.nucleus/gradlew b/org.eclipse.mdm.nucleus/gradlew
new file mode 100755
index 0000000..cccdd3d
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/org.eclipse.mdm.nucleus/gradlew.bat b/org.eclipse.mdm.nucleus/gradlew.bat
new file mode 100644
index 0000000..e95643d
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off

+@rem ##########################################################################

+@rem

+@rem  Gradle startup script for Windows

+@rem

+@rem ##########################################################################

+

+@rem Set local scope for the variables with windows NT shell

+if "%OS%"=="Windows_NT" setlocal

+

+set DIRNAME=%~dp0

+if "%DIRNAME%" == "" set DIRNAME=.

+set APP_BASE_NAME=%~n0

+set APP_HOME=%DIRNAME%

+

+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.

+set DEFAULT_JVM_OPTS=

+

+@rem Find java.exe

+if defined JAVA_HOME goto findJavaFromJavaHome

+

+set JAVA_EXE=java.exe

+%JAVA_EXE% -version >NUL 2>&1

+if "%ERRORLEVEL%" == "0" goto init

+

+echo.

+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

+echo.

+echo Please set the JAVA_HOME variable in your environment to match the

+echo location of your Java installation.

+

+goto fail

+

+:findJavaFromJavaHome

+set JAVA_HOME=%JAVA_HOME:"=%

+set JAVA_EXE=%JAVA_HOME%/bin/java.exe

+

+if exist "%JAVA_EXE%" goto init

+

+echo.

+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%

+echo.

+echo Please set the JAVA_HOME variable in your environment to match the

+echo location of your Java installation.

+

+goto fail

+

+:init

+@rem Get command-line arguments, handling Windows variants

+

+if not "%OS%" == "Windows_NT" goto win9xME_args

+

+:win9xME_args

+@rem Slurp the command line arguments.

+set CMD_LINE_ARGS=

+set _SKIP=2

+

+:win9xME_args_slurp

+if "x%~1" == "x" goto execute

+

+set CMD_LINE_ARGS=%*

+

+:execute

+@rem Setup the command line

+

+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

+

+@rem Execute Gradle

+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

+

+:end

+@rem End local scope for the variables with windows NT shell

+if "%ERRORLEVEL%"=="0" goto mainEnd

+

+:fail

+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of

+rem the _cmd.exe /c_ return code!

+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1

+exit /b 1

+

+:mainEnd

+if "%OS%"=="Windows_NT" endlocal

+

+:omega

diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/.gitignore b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/.gitignore
new file mode 100644
index 0000000..49678ad
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/.gitignore
@@ -0,0 +1,17 @@
+# eclipse
+.classpath
+.project
+.settings/
+bin/
+
+# gradle
+.gradle
+build/
+
+# intellij
+.idea/
+out/
+*.ipr
+*.iml
+*.iws
+/bin/
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/build.gradle b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/build.gradle
new file mode 100644
index 0000000..95dbed0
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/build.gradle
@@ -0,0 +1,41 @@
+/********************************************************************************
+ * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+description = 'MDM API - ATFXAdapter'
+
+configurations.all {
+	/* openatfx has a dependency on ODS corba interface classses, but we 
+	 * use the classes generated by org.eclipse.mdm.api.odsadapter and 
+	 * thus exclude the dependency from openatfx
+	 */ 
+	exclude group: 'org.asam', module: 'ods'
+}
+
+dependencies {
+	compile 'org.slf4j:slf4j-api:1.7.25'
+	compile project(':org.eclipse.mdm.openatfx')
+
+	// MDM5 API
+	compile "org.eclipse.mdm:org.eclipse.mdm.api.odsadapter:${version}"
+
+	testRuntime 'ch.qos.logback:logback-classic:1.2.3'
+	testCompile 'junit:junit:4.12'
+	testCompile 'org.assertj:assertj-core:3.6.2'
+	testCompile 'org.mockito:mockito-core:2.13.0'
+}
+
+jar {
+	metaInf { from 'NOTICE.txt' }
+	metaInf { from 'LICENSE.txt' }
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXContext.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXContext.java
new file mode 100644
index 0000000..13f000a
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXContext.java
@@ -0,0 +1,190 @@
+/********************************************************************************
+ * Copyright (c) 2015-2020 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+package org.eclipse.mdm.api.atfxadapter;
+
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import org.asam.ods.AoException;
+import org.asam.ods.AoSession;
+import org.asam.ods.ErrorCode;
+import org.asam.ods.SeverityFlag;
+import org.eclipse.mdm.api.atfxadapter.filetransfer.ATFXFileService;
+import org.eclipse.mdm.api.base.adapter.ModelManager;
+import org.eclipse.mdm.api.base.file.FileService;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.base.query.QueryService;
+import org.eclipse.mdm.api.dflt.ApplicationContext;
+import org.eclipse.mdm.api.dflt.EntityManager;
+import org.eclipse.mdm.api.dflt.model.EntityFactory;
+import org.eclipse.mdm.api.dflt.model.ExtSystemAttribute;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityFactory;
+import org.eclipse.mdm.api.odsadapter.query.ODSModelManager;
+import org.eclipse.mdm.api.odsadapter.query.ODSQueryService;
+import org.omg.CORBA.ORB;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * ATFXContext encapsulates a session to the ASAM ODS CORBA API of openATFX
+ *
+ */
+public class ATFXContext implements ApplicationContext {
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(ATFXContext.class);
+
+	private Map<String, String> parameters;
+
+	private ODSModelManager modelManager;
+	private ATFXEntityManager entityManager;
+
+	private File atfxFile;
+
+	private static final String INCLUDE_CATALOG = "includeCatalog";
+
+	/**
+	 * Creates a new ATFX application context.
+	 * 
+	 * @param orb               the CORBA ORB used to connect to the ODS API
+	 * @param aoSession
+	 * @param parameters
+	 * @param atfxFile
+	 * @param extSystemAttrList
+	 * @throws AoException
+	 */
+	public ATFXContext(ORB orb, AoSession aoSession, Map<String, String> parameters,
+			List<ExtSystemAttribute> extSystemAttrList, File atfxFile) throws AoException {
+		this.parameters = parameters;
+
+		boolean includeCatalog = Boolean.valueOf(parameters.getOrDefault(INCLUDE_CATALOG, "false"));
+
+		this.modelManager = new ODSModelManager(orb, aoSession, new ATFXEntityConfigRepositoryLoader(includeCatalog));
+		this.entityManager = new ATFXEntityManager(this, extSystemAttrList);
+		this.atfxFile = atfxFile;
+
+		LOGGER.debug("ATFXContext initialized.");
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Optional<EntityManager> getEntityManager() {
+		return Optional.of(entityManager);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Optional<ModelManager> getModelManager() {
+		return Optional.of(modelManager);
+	}
+
+	@Override
+	public Optional<EntityFactory> getEntityFactory() {
+		try {
+			return Optional.of(new ODSEntityFactory(modelManager, entityManager.loadLoggedOnUser()));
+		} catch (DataAccessException e) {
+			throw new IllegalStateException("Unable to load instance of the logged in user.");
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Optional<QueryService> getQueryService() {
+		return Optional.of(new ODSQueryService(modelManager));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Map<String, String> getParameters() {
+		return parameters;
+	}
+
+	/**
+	 * @returns the string "atfx"
+	 */
+	@Override
+	public String getAdapterType() {
+		return "atfx";
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void close() {
+		try {
+			modelManager.close();
+		} catch (AoException e) {
+			LOGGER.warn("Unable to close sesssion due to: " + e.reason, e);
+		}
+	}
+
+	/**
+	 * Returns the {@link ATFXModelManager} used for this context.
+	 * 
+	 * @return the {@link ATFXModelManager}
+	 */
+	public ODSModelManager getODSModelManager() {
+		return modelManager;
+	}
+
+	/**
+	 * Returns the {@link AoSession} used for this context.
+	 * 
+	 * @return {@link AoSession} used for this context.
+	 */
+	public AoSession getAoSession() {
+		return modelManager.getAoSession();
+	}
+
+	/**
+	 * Returns the ORB used for this context
+	 * 
+	 * @return ORB used for this context
+	 */
+	public ORB getORB() {
+		return modelManager.getORB();
+	}
+
+	/**
+	 * Returns a new {@link ATFXContext} with a new ODS co-session.
+	 *
+	 * @return The created {@code ODSContext} is returned.
+	 * @throws AoException Thrown on errors.
+	 */
+	public ATFXContext newContext() throws AoException {
+		throw new AoException(ErrorCode.AO_NOT_IMPLEMENTED, SeverityFlag.ERROR, 0,
+				"Method 'createCoSession' not implemented in openATFX");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.mdm.api.base.BaseApplicationContext#getFileService()
+	 */
+	@Override
+	public Optional<FileService> getFileService() {
+		return Optional.of(new ATFXFileService(this.atfxFile.getParentFile()));
+	}
+
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXContextFactory.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXContextFactory.java
new file mode 100644
index 0000000..0187ba0
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXContextFactory.java
@@ -0,0 +1,98 @@
+/********************************************************************************
+ * Copyright (c) 2015-2020 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+package org.eclipse.mdm.api.atfxadapter;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.asam.ods.AoException;
+import org.asam.ods.AoSession;
+import org.eclipse.mdm.api.base.ConnectionException;
+import org.eclipse.mdm.api.dflt.ApplicationContext;
+import org.eclipse.mdm.api.dflt.ApplicationContextFactory;
+import org.eclipse.mdm.api.dflt.EntityManager;
+import org.eclipse.mdm.api.dflt.model.ExtSystem;
+import org.eclipse.mdm.api.dflt.model.ExtSystemAttribute;
+import org.omg.CORBA.ORB;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Strings;
+
+import de.rechner.openatfx.AoServiceFactory;
+
+public class ATFXContextFactory implements ApplicationContextFactory {
+
+	private static final Logger LOG = LoggerFactory.getLogger(ATFXContextFactory.class);
+
+	private static final ORB orb = ORB.init(new String[] {}, System.getProperties());
+
+	private static final String PROP_EXTSYSTEMNAME = "extSystemName";
+
+	@Override
+	public ApplicationContext connect(Map<String, String> parameters) throws ConnectionException {
+		return initApplicationContext(parameters, null);
+	}
+
+	public ApplicationContext connect(Map<String, String> parameters, ApplicationContext targetContext)
+			throws ConnectionException {
+
+		EntityManager entityManager = targetContext.getEntityManager()
+				.orElseThrow(() -> new ConnectionException("TargetEntity manager not present!"));
+
+		String extSystemName = parameters.get(PROP_EXTSYSTEMNAME);
+
+		List<ExtSystemAttribute> extSystemAttrList = new ArrayList<>();
+
+		if (!Strings.isNullOrEmpty(extSystemName)) {
+			List<ExtSystem> extSystemList = entityManager.loadAll(ExtSystem.class, extSystemName);
+
+			if (extSystemList == null || extSystemList.isEmpty()) {
+				LOG.warn("External system with name '{}' nor found! Try to import file without mapping!",
+						extSystemName);
+			} else if (extSystemList.size() > 1) {
+				throw new ConnectionException(
+						String.format("More than one external system with name '%s' found!", extSystemName));
+			} else {
+				extSystemAttrList = entityManager.loadChildren(extSystemList.get(0), ExtSystemAttribute.class);
+			}
+		}
+
+		return initApplicationContext(parameters, extSystemAttrList);
+	}
+
+	private ApplicationContext initApplicationContext(Map<String, String> parameters,
+			List<ExtSystemAttribute> extSystemAttrList) throws ConnectionException {
+		File atfxFile = new File(parameters.get("atfxfile"));
+
+		try {
+			AoSession aoSession;
+			if (atfxFile.exists() && Files.size(atfxFile.toPath()) > 0L) {
+				aoSession = AoServiceFactory.getInstance().newAoSession(orb, atfxFile);
+			} else {
+				throw new ConnectionException(
+						"Cannot open session on a not existing or empty ATFX file: " + atfxFile.getAbsolutePath());
+			}
+			return new ATFXContext(orb, aoSession, parameters, extSystemAttrList, atfxFile);
+		} catch (AoException e) {
+			throw new ConnectionException("Error " + e.reason, e);
+		} catch (IOException e) {
+			throw new ConnectionException("Error reading ATFX file " + atfxFile.getAbsolutePath(), e);
+		}
+	}
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXEntityConfigRepositoryLoader.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXEntityConfigRepositoryLoader.java
new file mode 100644
index 0000000..341606e
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXEntityConfigRepositoryLoader.java
@@ -0,0 +1,225 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+package org.eclipse.mdm.api.atfxadapter;
+
+import java.util.Locale;
+
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.adapter.Relation;
+import org.eclipse.mdm.api.base.model.Channel;
+import org.eclipse.mdm.api.base.model.ChannelGroup;
+import org.eclipse.mdm.api.base.model.ContextComponent;
+import org.eclipse.mdm.api.base.model.ContextRoot;
+import org.eclipse.mdm.api.base.model.ContextSensor;
+import org.eclipse.mdm.api.base.model.ContextType;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.Environment;
+import org.eclipse.mdm.api.base.model.Measurement;
+import org.eclipse.mdm.api.base.model.Parameter;
+import org.eclipse.mdm.api.base.model.ParameterSet;
+import org.eclipse.mdm.api.base.model.PhysicalDimension;
+import org.eclipse.mdm.api.base.model.Quantity;
+import org.eclipse.mdm.api.base.model.Sortable;
+import org.eclipse.mdm.api.base.model.Test;
+import org.eclipse.mdm.api.base.model.TestStep;
+import org.eclipse.mdm.api.base.model.Unit;
+import org.eclipse.mdm.api.dflt.model.CatalogAttribute;
+import org.eclipse.mdm.api.dflt.model.CatalogComponent;
+import org.eclipse.mdm.api.dflt.model.CatalogSensor;
+import org.eclipse.mdm.api.dflt.model.Pool;
+import org.eclipse.mdm.api.dflt.model.Project;
+import org.eclipse.mdm.api.odsadapter.lookup.config.DefaultEntityConfigRepositoryLoader;
+import org.eclipse.mdm.api.odsadapter.lookup.config.EntityConfig;
+import org.eclipse.mdm.api.odsadapter.lookup.config.EntityConfig.Key;
+import org.eclipse.mdm.api.odsadapter.lookup.config.EntityConfigRepository;
+import org.eclipse.mdm.api.odsadapter.lookup.config.EntityConfigRepositoryLoader;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityType;
+import org.eclipse.mdm.api.odsadapter.query.ODSModelManager;
+import org.eclipse.mdm.api.odsadapter.utils.ODSUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ATFXEntityConfigRepositoryLoader implements EntityConfigRepositoryLoader {
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(DefaultEntityConfigRepositoryLoader.class);
+
+	EntityConfigRepository entityConfigRepository;
+
+	private final boolean includeCatalog;
+
+	public ATFXEntityConfigRepositoryLoader(boolean includeCatalog) {
+		this.includeCatalog = includeCatalog;
+	}
+
+	/**
+	 * Loads the {@link EntityConfig}s.
+	 * 
+	 * @return
+	 */
+	@Override
+	public EntityConfigRepository loadEntityConfigurations(ODSModelManager modelManager) {
+		LOGGER.debug("Loading entity configurations...");
+		long start = System.currentTimeMillis();
+
+		entityConfigRepository = new EntityConfigRepository();
+
+		// Environment | Project | Pool | PhysicalDimension | User | Measurement
+		// | ChannelGroup
+		entityConfigRepository.register(create(modelManager, new Key<>(Environment.class), "Environment", false));
+		entityConfigRepository.register(create(modelManager, new Key<>(Project.class), "Project", false));
+		entityConfigRepository.register(create(modelManager, new Key<>(Pool.class), "StructureLevel", true));
+		entityConfigRepository
+				.register(create(modelManager, new Key<>(PhysicalDimension.class), "PhysDimension", false));
+		entityConfigRepository.register(create(modelManager, new Key<>(Measurement.class), "MeaResult", false));
+		entityConfigRepository.register(create(modelManager, new Key<>(ChannelGroup.class), "SubMatrix", false));
+
+		// Unit
+		EntityConfig<Unit> unitConfig = create(modelManager, new Key<>(Unit.class), "Unit", false);
+		unitConfig.addMandatory(entityConfigRepository.findRoot(new Key<>(PhysicalDimension.class)));
+		entityConfigRepository.register(unitConfig);
+
+		// Quantity
+		EntityConfig<Quantity> quantityConfig = create(modelManager, new Key<>(Quantity.class), "Quantity", false);
+		quantityConfig.addMandatory(entityConfigRepository.findRoot(new Key<>(Unit.class)));
+		entityConfigRepository.register(quantityConfig);
+
+		// Channel
+		EntityConfig<Channel> channelConfig = create(modelManager, new Key<>(Channel.class), "MeaQuantity", false);
+		channelConfig.addMandatory(entityConfigRepository.findRoot(new Key<>(Unit.class)));
+		channelConfig.addMandatory(entityConfigRepository.findRoot(new Key<>(Quantity.class)));
+		entityConfigRepository.register(channelConfig);
+
+		// ParameterSet
+		EntityConfig<Parameter> parameterConfig = create(modelManager, new Key<>(Parameter.class), "ResultParameter",
+				true);
+		parameterConfig.addOptional(entityConfigRepository.findRoot(new Key<>(Unit.class)));
+		EntityConfig<ParameterSet> parameterSetConfig = create(modelManager, new Key<>(ParameterSet.class),
+				"ResultParameterSet", true);
+		parameterSetConfig.addChild(parameterConfig);
+		entityConfigRepository.register(parameterSetConfig);
+
+		if (includeCatalog) {
+			// CatalogComponents
+			registerCatalogComponent(modelManager, ContextType.UNITUNDERTEST);
+			registerCatalogComponent(modelManager, ContextType.TESTSEQUENCE);
+			registerCatalogComponent(modelManager, ContextType.TESTEQUIPMENT);
+		}
+
+		// TestStep
+		EntityConfig<TestStep> testStepConfig = create(modelManager, new Key<>(TestStep.class), "TestStep", true);
+		testStepConfig.setComparator(Sortable.COMPARATOR);
+		entityConfigRepository.register(testStepConfig);
+
+		// Test
+		EntityConfig<Test> testConfig = create(modelManager, new Key<>(Test.class), "Test", true);
+		entityConfigRepository.register(testConfig);
+
+		// ContextRoots
+		registerContextRoot(modelManager, ContextType.UNITUNDERTEST);
+		registerContextRoot(modelManager, ContextType.TESTSEQUENCE);
+		registerContextRoot(modelManager, ContextType.TESTEQUIPMENT);
+
+		LOGGER.debug("Entity configurations loaded in {} ms.", System.currentTimeMillis() - start);
+
+		return entityConfigRepository;
+	}
+
+	/**
+	 * Loads the {@link EntityConfig}s required for {@link ContextRoot} with given
+	 * {@link ContextType}.
+	 *
+	 * @param contextType The {@code ContextType}.
+	 */
+	private void registerContextRoot(ODSModelManager modelManager, ContextType contextType) {
+		EntityConfig<ContextRoot> contextRootConfig = create(modelManager, new Key<>(ContextRoot.class, contextType),
+				ODSUtils.CONTEXTTYPES.get(contextType), true);
+		for (Relation contextComponentRelation : contextRootConfig.getEntityType().getChildRelations()) {
+			EntityType contextComponentEntityType = contextComponentRelation.getTarget();
+			EntityConfig<ContextComponent> contextComponentConfig = create(modelManager,
+					new Key<>(ContextComponent.class, contextType), contextComponentEntityType.getName(), true);
+			contextRootConfig.addChild(contextComponentConfig);
+			if (contextType.isTestEquipment()) {
+				for (Relation contextSensorRelation : contextComponentEntityType.getChildRelations()) {
+					EntityType contextSensorEntityType = contextSensorRelation.getTarget();
+					EntityConfig<ContextSensor> contextSensorConfig = create(modelManager,
+							new Key<>(ContextSensor.class), contextSensorEntityType.getName(), true);
+					contextComponentConfig.addChild(contextSensorConfig);
+				}
+			}
+		}
+		entityConfigRepository.register(contextRootConfig);
+	}
+
+	/**
+	 * Creates a new {@link EntityConfig}.
+	 *
+	 * @param <T>        The entity type.
+	 * @param key        Used as identifier.
+	 * @param typeName   Name of the associated {@link EntityType}.
+	 * @param appendName Flag indicates whether to append the entity types base name
+	 *                   to the MIME type.
+	 * @return The created {@code EntityConfig} is returned.
+	 */
+	private <T extends Entity> EntityConfig<T> create(ODSModelManager modelManager, Key<T> key, String typeName,
+			boolean appendName) {
+		EntityConfig<T> entityConfig = new EntityConfig<>(key);
+		ODSEntityType entityType = (ODSEntityType) modelManager.getEntityType(typeName);
+		entityConfig.setEntityType(entityType);
+		entityConfig.setMimeType(buildDefaultMimeType(entityType, appendName));
+		return entityConfig;
+	}
+
+	/**
+	 * Loads the {@link EntityConfig}s required for {@link CatalogComponent} with
+	 * given {@link ContextType}.
+	 *
+	 * @param contextType The {@code ContextType}.
+	 */
+	private void registerCatalogComponent(ODSModelManager modelManager, ContextType contextType) {
+		String odsName = ODSUtils.CONTEXTTYPES.get(contextType);
+		EntityConfig<CatalogAttribute> catalogAttributeConfig = create(modelManager,
+				new Key<>(CatalogAttribute.class, contextType), "Cat" + odsName + "Attr", true);
+		catalogAttributeConfig.setComparator(Sortable.COMPARATOR);
+		EntityConfig<CatalogComponent> catalogComponentConfig = create(modelManager,
+				new Key<>(CatalogComponent.class, contextType), "Cat" + odsName + "Comp", true);
+		catalogComponentConfig.addChild(catalogAttributeConfig);
+		if (contextType.isTestEquipment()) {
+			EntityConfig<CatalogAttribute> catalogSensorAttributeConfig = create(modelManager,
+					new Key<>(CatalogAttribute.class), "CatSensorAttr", true);
+			EntityConfig<CatalogSensor> catalogSensorConfig = create(modelManager, new Key<>(CatalogSensor.class),
+					"CatSensor", true);
+			catalogSensorConfig.addChild(catalogSensorAttributeConfig);
+			catalogComponentConfig.addChild(catalogSensorConfig);
+		}
+		entityConfigRepository.register(catalogComponentConfig);
+	}
+
+	/**
+	 * Creates a default MIME type for given {@link EntityType}.
+	 *
+	 * @param entityType The {@code EntityType}.
+	 * @param appendName Flag indicates whether to append the entity types base name
+	 *                   to the MIME type.
+	 * @return The created MIME type {@code String} is returned.
+	 */
+	private String buildDefaultMimeType(ODSEntityType entityType, boolean appendName) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("application/x-asam.");
+		sb.append(entityType.getBaseName().toLowerCase(Locale.ROOT));
+		if (appendName) {
+			sb.append('.').append(entityType.getName().toLowerCase(Locale.ROOT));
+		}
+		return sb.toString();
+	}
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXEntityManager.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXEntityManager.java
new file mode 100644
index 0000000..06da146
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/ATFXEntityManager.java
@@ -0,0 +1,591 @@
+/********************************************************************************
+ * Copyright (c) 2015-2020 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+package org.eclipse.mdm.api.atfxadapter;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.management.ServiceNotFoundException;
+
+import org.asam.ods.AoException;
+import org.asam.ods.ApplicationStructure;
+import org.asam.ods.ElemId;
+import org.asam.ods.InstanceElement;
+import org.asam.ods.T_LONGLONG;
+import org.eclipse.mdm.api.atfxadapter.transaction.ATFXTransaction;
+import org.eclipse.mdm.api.base.ServiceNotProvidedException;
+import org.eclipse.mdm.api.base.Transaction;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.adapter.Relation;
+import org.eclipse.mdm.api.base.massdata.ReadRequest;
+import org.eclipse.mdm.api.base.model.Channel;
+import org.eclipse.mdm.api.base.model.ChannelGroup;
+import org.eclipse.mdm.api.base.model.ContextComponent;
+import org.eclipse.mdm.api.base.model.ContextDescribable;
+import org.eclipse.mdm.api.base.model.ContextRoot;
+import org.eclipse.mdm.api.base.model.ContextType;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.Environment;
+import org.eclipse.mdm.api.base.model.MeasuredValues;
+import org.eclipse.mdm.api.base.model.StatusAttachable;
+import org.eclipse.mdm.api.base.model.Test;
+import org.eclipse.mdm.api.base.model.TestStep;
+import org.eclipse.mdm.api.base.model.User;
+import org.eclipse.mdm.api.base.model.Value;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.base.query.Filter;
+import org.eclipse.mdm.api.base.query.JoinType;
+import org.eclipse.mdm.api.base.query.Query;
+import org.eclipse.mdm.api.base.query.QueryService;
+import org.eclipse.mdm.api.base.query.Record;
+import org.eclipse.mdm.api.base.query.Result;
+import org.eclipse.mdm.api.dflt.EntityManager;
+import org.eclipse.mdm.api.dflt.model.Classification;
+import org.eclipse.mdm.api.dflt.model.EntityFactory;
+import org.eclipse.mdm.api.dflt.model.ExtSystemAttribute;
+import org.eclipse.mdm.api.dflt.model.MDMAttribute;
+import org.eclipse.mdm.api.dflt.model.Status;
+import org.eclipse.mdm.api.dflt.model.TemplateTest;
+import org.eclipse.mdm.api.dflt.model.TemplateTestStep;
+import org.eclipse.mdm.api.odsadapter.ODSContext;
+import org.eclipse.mdm.api.odsadapter.ODSContextFactory;
+import org.eclipse.mdm.api.odsadapter.ODSEntityManager;
+import org.eclipse.mdm.api.odsadapter.ReadRequestHandler;
+import org.eclipse.mdm.api.odsadapter.lookup.EntityLoader;
+import org.eclipse.mdm.api.odsadapter.lookup.config.EntityConfig.Key;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityFactory;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityType;
+import org.eclipse.mdm.api.odsadapter.query.ODSModelManager;
+import org.eclipse.mdm.api.odsadapter.utils.ODSConverter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Strings;
+
+/**
+ * ASAM ODS implementation of the {@link EntityManager} interface.
+ *
+ * @see ODSEntityManager
+ */
+public class ATFXEntityManager implements EntityManager {
+	private static final String AA_ID = "Id";
+
+	private static final String AE_TESTSTEP = "TestStep";
+
+	private static final String AE_TEST = "Test";
+
+	private static final String AE_STRUCTURE_LEVEL = "StructureLevel";
+
+	private static final String AE_PROJECT = "Project";
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(ATFXEntityManager.class);
+
+	private static final String PROP_ASAMPATH = "org.eclipse.mdm.api.atfxadapter.asampath";
+
+	private static final Pattern EXTSYSTEMCOMP_REGEX = Pattern.compile("\\[(.+)\\].*", Pattern.DOTALL);
+	private static final Pattern EXTSYSTEMATTR_REGEX = Pattern.compile("\\[.*\\](.+)", Pattern.DOTALL);
+
+	private final ATFXContext context;
+	private final ODSModelManager odsModelManager;
+	private final QueryService queryService;
+	private final EntityLoader entityLoader;
+	private final List<ExtSystemAttribute> extSystemAttrList;
+
+	private NameHelper nameHelper;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param context           The {@link ODSContext}.
+	 * @param extSystemAttrList
+	 * @throws ServiceNotFoundException
+	 */
+	public ATFXEntityManager(ATFXContext context, List<ExtSystemAttribute> extSystemAttrList) {
+		this.context = context;
+		this.odsModelManager = context.getODSModelManager();
+		this.queryService = context.getQueryService()
+				.orElseThrow(() -> new ServiceNotProvidedException(QueryService.class));
+		this.extSystemAttrList = extSystemAttrList;
+
+		entityLoader = new EntityLoader(odsModelManager, queryService);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Environment loadEnvironment() throws DataAccessException {
+		List<Environment> environments = loadAll(Environment.class);
+		if (environments.size() != 1) {
+			throw new DataAccessException("Unable to laod the environment entity.");
+		}
+
+		return environments.get(0);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Optional<User> loadLoggedOnUser() throws DataAccessException {
+		return Optional.empty();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public <T extends Entity> List<T> load(Class<T> entityClass, Collection<String> instanceIDs)
+			throws DataAccessException {
+		return entityLoader.loadAll(new Key<>(entityClass), instanceIDs);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public <T extends Entity> List<T> load(Class<T> entityClass, ContextType contextType,
+			Collection<String> instanceIDs) throws DataAccessException {
+		return entityLoader.loadAll(new Key<>(entityClass, contextType), instanceIDs);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public <T extends Entity> Optional<T> loadParent(Entity child, Class<T> entityClass) throws DataAccessException {
+		EntityType parentEntityType = odsModelManager.getEntityType(entityClass);
+		EntityType childEntityType = odsModelManager.getEntityType(child);
+
+		Optional<String> instanceID = Optional.empty();
+
+		if (child instanceof Channel && ChannelGroup.class.equals(entityClass)) {
+			// this covers the gap between channel and channel group via local column
+			EntityType localColumnEntityType = odsModelManager.getEntityType("LocalColumn");
+
+			Relation relLocalColumnToChannel = localColumnEntityType.getRelation(childEntityType);
+			Relation relLocalColumnToChannelGroup = localColumnEntityType.getRelation(parentEntityType);
+
+			Optional<String> localColumnID = queryService.createQuery().select(localColumnEntityType.getIDAttribute())
+					.fetchSingleton(Filter.idOnly(relLocalColumnToChannel, child.getID()))
+					.map(r -> r.getRecord(localColumnEntityType)).map(r -> r.getID());
+
+			if (localColumnID.isPresent()) {
+				instanceID = queryService.createQuery().select(relLocalColumnToChannelGroup.getAttribute())
+						.fetchSingleton(Filter.idOnly(localColumnEntityType, localColumnID.get()))
+						.map(r -> r.getRecord(localColumnEntityType))
+						.map(r -> r.getID(relLocalColumnToChannelGroup).get());
+			}
+		} else {
+			Relation relationToParent = childEntityType.getRelation(parentEntityType);
+
+			Query query = queryService.createQuery().select(relationToParent.getAttribute());
+			instanceID = query.fetchSingleton(Filter.idOnly(childEntityType, child.getID()))
+					.map(r -> r.getRecord(childEntityType)).map(r -> r.getID(relationToParent).get());
+		}
+
+		if (instanceID.isPresent()) {
+			return Optional.of(entityLoader.load(new Key<>(entityClass), instanceID.get()));
+		}
+
+		return Optional.empty();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public <T extends Entity> List<T> loadAll(Class<T> entityClass, String pattern) throws DataAccessException {
+		return entityLoader.loadAll(new Key<>(entityClass), pattern);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public <T extends StatusAttachable> List<T> loadAll(Class<T> entityClass, Status status, String pattern)
+			throws DataAccessException {
+		EntityType entityType = odsModelManager.getEntityType(entityClass);
+		EntityType classificationType = odsModelManager.getEntityType(Classification.class);
+		EntityType statusEntityType = odsModelManager.getEntityType(status.getTypeName());
+
+		List<String> instanceIDs = queryService.createQuery().join(entityType, classificationType)
+				.join(classificationType, statusEntityType).selectID(entityType)
+				.fetch(Filter.and().id(statusEntityType, status.getID()).name(entityType, pattern)).stream()
+				.map(r -> r.getRecord(entityType)).map(Record::getID).collect(Collectors.toList());
+
+		return entityLoader.loadAll(new Key<>(entityClass), instanceIDs);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public <T extends Entity> List<T> loadAll(Class<T> entityClass, ContextType contextType, String pattern)
+			throws DataAccessException {
+		return entityLoader.loadAll(new Key<>(entityClass, contextType), pattern);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public <T extends Entity> List<T> loadChildren(Entity parent, Class<T> entityClass, String pattern)
+			throws DataAccessException {
+		if (!Strings.isNullOrEmpty(pattern) && !"*".equals(pattern)) {
+			throw new DataAccessException("Pattern not supported by ATFXAdapter");
+		}
+		EntityType parentEntityType = odsModelManager.getEntityType(parent);
+		EntityType childEntityType = odsModelManager.getEntityType(entityClass);
+
+		List<String> instanceIDs;
+
+		if (parent instanceof ChannelGroup && Channel.class.equals(entityClass)) {
+			// this covers the gap between channel and channel group via local column
+			EntityType localColumnEntityType = odsModelManager.getEntityType("LocalColumn");
+
+			Relation relLocalColumnToChannel = localColumnEntityType.getRelation(childEntityType);
+			Relation relLocalColumnToChannelGroup = localColumnEntityType.getRelation(parentEntityType);
+
+			instanceIDs = queryService.createQuery().select(relLocalColumnToChannel.getAttribute())
+					.fetch(Filter.and().id(relLocalColumnToChannelGroup, parent.getID()).name(localColumnEntityType,
+							pattern))
+					.stream().map(r -> r.getRecord(localColumnEntityType))
+					.map(r -> r.getID(relLocalColumnToChannel).get()).collect(Collectors.toList());
+
+			return entityLoader.loadAll(new Key<>(entityClass), instanceIDs);
+		} else {
+			Relation relationToParent = childEntityType.getRelation(parentEntityType);
+
+			instanceIDs = queryService.createQuery().selectID(childEntityType).select(relationToParent.getAttribute())
+					.fetch(Filter.and().id(relationToParent, parent.getID()).name(childEntityType, pattern)).stream()
+					.map(r -> r.getRecord(childEntityType)).map(Record::getID).collect(Collectors.toList());
+		}
+
+		return entityLoader.loadAll(new Key<>(entityClass), instanceIDs);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public List<ContextType> loadContextTypes(ContextDescribable contextDescribable) throws DataAccessException {
+		EntityType contextDescribableEntityType = odsModelManager.getEntityType(contextDescribable);
+		Query query = queryService.createQuery();
+
+		Map<ContextType, EntityType> contextRootEntityTypes = new EnumMap<>(ContextType.class);
+		for (ContextType contextType : ContextType.values()) {
+			EntityType entityType = odsModelManager.getEntityType(ContextRoot.class, contextType);
+			contextRootEntityTypes.put(contextType, entityType);
+			query.join(contextDescribableEntityType.getRelation(entityType), JoinType.OUTER).selectID(entityType);
+		}
+
+		Optional<Result> result = query
+				.fetchSingleton(Filter.idOnly(contextDescribableEntityType, contextDescribable.getID()));
+		if (result.isPresent()) {
+			List<ContextType> contextTypes = new ArrayList<>();
+			for (Entry<ContextType, EntityType> entry : contextRootEntityTypes.entrySet()) {
+				Optional<String> instanceID = result.map(r -> r.getRecord(entry.getValue())).map(Record::getID);
+				if (instanceID.isPresent()) {
+					contextTypes.add(entry.getKey());
+				}
+			}
+
+			return contextTypes;
+		}
+
+		return Collections.emptyList();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Map<ContextType, ContextRoot> loadContexts(ContextDescribable contextDescribable,
+			ContextType... contextTypes) throws DataAccessException {
+		EntityType contextDescribableEntityType = odsModelManager.getEntityType(contextDescribable);
+
+		Map<ContextType, EntityType> contextRootEntityTypes = new EnumMap<>(ContextType.class);
+		Map<ContextType, ContextRoot> contextRoots = new EnumMap<>(ContextType.class);
+		for (ContextType contextType : contextTypes.length == 0 ? ContextType.values() : contextTypes) {
+
+			EntityType entityType = odsModelManager.getEntityType(ContextRoot.class, contextType);
+			contextRootEntityTypes.put(contextType, entityType);
+
+			// openATFX does not support joins in queries, thus we have to retrive the
+			// ContextRoots one by one by ID
+			ElemId elemId = new ElemId(((ODSEntityType) contextDescribableEntityType).getODSID(),
+					ODSConverter.toODSID(contextDescribable.getID()));
+			try {
+				Optional<Relation> relation = getRelation(contextDescribableEntityType, entityType);
+
+				if (relation.isPresent()) {
+					T_LONGLONG[] contextRootIds = odsModelManager.getApplElemAccess().getRelInst(elemId,
+							relation.get().getName());
+
+					if (contextRootIds != null && contextRootIds.length > 0) {
+						// There can only be one result per ContextType, thus we take the first one and
+						// ignore the rest
+						String instanceID = Long.toString(ODSConverter.fromODSLong(contextRootIds[0]));
+
+						contextRoots.put(contextType,
+								entityLoader.load(new Key<>(ContextRoot.class, contextType), instanceID));
+					}
+				}
+			} catch (AoException e) {
+				throw new DataAccessException("Cannot load contextRoot '" + entityType.getName() + "' for ID '"
+						+ contextDescribable.getID() + "': " + e.reason, e);
+			}
+		}
+
+		if (extSystemAttrList != null) {
+			contextRoots = mapAttributesWithExtSystem(contextRoots);
+		}
+
+		return contextRoots;
+	}
+
+	private Optional<Relation> getRelation(EntityType contextDescribableEntityType, EntityType entityType) {
+		try {
+			return Optional.of(contextDescribableEntityType.getRelation(entityType));
+		} catch (IllegalArgumentException e) {
+			return Optional.empty();
+		}
+	}
+
+	private Map<ContextType, ContextRoot> mapAttributesWithExtSystem(Map<ContextType, ContextRoot> contextRoots) {
+
+		EntityFactory entityFactory = this.context.getEntityFactory()
+				.orElseThrow(() -> new DataAccessException("ATFX EntityFactory not found!"));
+
+		Map<ContextType, ContextRoot> returnVal = contextRoots;
+
+		for (ExtSystemAttribute extSystemAttr : extSystemAttrList) {
+
+			String compName = getExtAttrComp(extSystemAttr.getName());
+			String attrName = getExtAttrAttr(extSystemAttr.getName());
+
+			if (!Strings.isNullOrEmpty(compName) && !Strings.isNullOrEmpty(attrName)) {
+				for (ContextRoot root : returnVal.values()) {
+					Optional<ContextComponent> contextComponentExt = root.getContextComponent(compName);
+
+					if (contextComponentExt.isPresent()) {
+
+						Value value = contextComponentExt.get().getValues().get(attrName);
+
+						if (value != null) {
+							for (MDMAttribute mdmAttr : extSystemAttr.getAttributes()) {
+								ContextRoot contextRootMDMAttr = returnVal
+										.get(ContextType.valueOf(mdmAttr.getComponentType().toUpperCase()));
+
+								if (contextRootMDMAttr != null) {
+									Optional<ContextComponent> contextComponentOptional = contextRootMDMAttr
+											.getContextComponent(mdmAttr.getComponentName());
+
+									ContextComponent contextComponent = null;
+
+									if (contextComponentOptional.isPresent()) {
+										contextComponent = contextComponentOptional.get();
+									} else {
+										contextComponent = entityFactory
+												.createContextComponent(mdmAttr.getComponentName(), contextRootMDMAttr);
+									}
+
+									Value valueMDMAttr = value.getValueType().create(mdmAttr.getAttributeName());
+									valueMDMAttr.set(value.extract(value.getValueType()));
+									ODSEntityFactory.extract(contextComponent).getValues()
+											.put(mdmAttr.getAttributeName(), valueMDMAttr);
+								}
+
+							}
+
+							break;
+						}
+
+					}
+
+				}
+			}
+		}
+
+		return returnVal;
+	}
+
+	private void writeValueToMDMAttribute(Map<ContextType, ContextRoot> contextRoots, Value value,
+			MDMAttribute mdmAttr) {
+		EntityFactory entityFactory = this.context.getEntityFactory()
+				.orElseThrow(() -> new DataAccessException("ATFX EntityFactory not found!"));
+
+		ContextRoot contextRootMDMAttr = contextRoots
+				.get(ContextType.valueOf(mdmAttr.getComponentType().toUpperCase()));
+
+		if (contextRootMDMAttr != null) {
+			Optional<ContextComponent> contextComponentOptional = contextRootMDMAttr
+					.getContextComponent(mdmAttr.getComponentName());
+
+			ContextComponent contextComponent = null;
+
+			if (contextComponentOptional.isPresent()) {
+				contextComponent = contextComponentOptional.get();
+			} else {
+
+				contextComponent = entityFactory.createContextComponent(mdmAttr.getComponentName(), contextRootMDMAttr);
+			}
+
+			Value valueMDMAttr = value.getValueType().create(mdmAttr.getAttributeName());
+			valueMDMAttr.set(value.extract(value.getValueType()));
+			ODSEntityFactory.extract(contextComponent).getValues().put(mdmAttr.getAttributeName(), valueMDMAttr);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public List<MeasuredValues> readMeasuredValues(ReadRequest readRequest) throws DataAccessException {
+		return new ReadRequestHandler(odsModelManager, queryService).execute(readRequest);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Transaction startTransaction() throws DataAccessException {
+		try {
+			return new ATFXTransaction(context);
+		} catch (AoException e) {
+			throw new DataAccessException("Unable to start transaction due to: " + e.reason, e);
+		}
+	}
+
+	/**
+	 * Retrives the ASAM paths for the given entities. The ASAM paths are prefixed
+	 * with a servicename, in the form
+	 * <code>corbaloc:[iop|ssliop]:1.2@HOSTNAME:PORT/NameService/MDM.ASAM-ODS/</code>
+	 * 
+	 * @returns returns a map with the ASAM paths to the given entities. If a entity
+	 *          is not found in the ODS server the entity is not included in the
+	 *          result map.
+	 * @throws DataAccessException      if links could not be loaded for the given
+	 *                                  entities
+	 * @throws IllegalArgumentException if a the source or typeName of an entity is
+	 *                                  invalid
+	 * @see org.eclipse.mdm.api.base.BaseEntityManager#getLinks(Collection)
+	 */
+	@Override
+	public Map<Entity, String> getLinks(Collection<Entity> entities) throws DataAccessException {
+
+		Map<Entity, String> linkMap = new HashMap<>();
+
+		ApplicationStructure appStructure;
+		try {
+			appStructure = odsModelManager.getAoSession().getApplicationStructure();
+		} catch (AoException e) {
+			throw new DataAccessException("Could not load application structure! Reason: " + e.reason, e);
+		}
+
+		String serverRoot = context.getParameters().get(ODSContextFactory.PARAM_NAMESERVICE) + "/"
+				+ context.getParameters().get(ODSContextFactory.PARAM_SERVICENAME);
+
+		Map<String, List<Entity>> entitiesByTypeName = entities.stream().filter(e -> e.getTypeName() != null)
+				.collect(Collectors.groupingBy(Entity::getTypeName));
+
+		for (Map.Entry<String, List<Entity>> entry : entitiesByTypeName.entrySet()) {
+			ODSEntityType et = (ODSEntityType) odsModelManager.getEntityType(entry.getKey());
+
+			List<ElemId> elemIds = entry.getValue().stream()
+					.map(e -> new ElemId(et.getODSID(), ODSConverter.toODSLong(Long.parseLong(e.getID()))))
+					.collect(Collectors.toList());
+
+			try {
+				InstanceElement[] instances = appStructure.getInstancesById(elemIds.toArray(new ElemId[0]));
+
+				for (InstanceElement ie : instances) {
+					String id = Long.toString(ODSConverter.fromODSLong(ie.getId()));
+					String asamPath = serverRoot + ie.getAsamPath();
+					entry.getValue().stream().filter(e -> e.getID().equals(id)).findFirst()
+							.ifPresent(e -> linkMap.put(e, asamPath));
+				}
+			} catch (AoException e) {
+				LOGGER.debug("Could not load links for entities: " + entities + ". Reason: " + e.reason, e);
+			}
+		}
+
+		return linkMap;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public <T extends Entity> List<T> loadRelatedEntities(Entity entity, String relationName, Class<T> relatedClass) {
+		ODSEntityType entityType = ((ODSEntityType) context.getODSModelManager().getEntityType(entity));
+		ElemId elemId = new ElemId(entityType.getODSID(), ODSConverter.toODSID(entity.getID()));
+
+		try {
+			T_LONGLONG[] instanceIds = context.getAoSession().getApplElemAccess().getRelInst(elemId, relationName);
+			List<String> instanceIDs = Stream.of(instanceIds).map(ODSConverter::fromODSLong).map(Object::toString)
+					.collect(Collectors.toList());
+			return entityLoader.loadAll(new Key<>(relatedClass), instanceIDs);
+		} catch (AoException e) {
+			throw new DataAccessException("Cannot load related instances: " + e.reason, e);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Optional<TemplateTest> loadTemplate(Test test) {
+		return Optional.of(ODSEntityFactory.extract(test).getMutableStore().get(TemplateTest.class));
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public Optional<TemplateTestStep> loadTemplate(TestStep testStep) {
+		return Optional.of(ODSEntityFactory.extract(testStep).getMutableStore().get(TemplateTestStep.class));
+	}
+
+	private static String getExtAttrComp(final String str) {
+		String returnVal = null;
+
+		Matcher matcher = EXTSYSTEMCOMP_REGEX.matcher(str);
+		if (matcher.matches()) {
+			returnVal = matcher.group(1);
+		}
+		return returnVal;
+	}
+
+	private static String getExtAttrAttr(final String str) {
+		String returnVal = null;
+
+		Matcher matcher = EXTSYSTEMATTR_REGEX.matcher(str);
+		if (matcher.matches()) {
+			returnVal = matcher.group(1);
+		}
+		return returnVal;
+	}
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/NameHelper.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/NameHelper.java
new file mode 100644
index 0000000..97a3967
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/NameHelper.java
@@ -0,0 +1,89 @@
+/*******************************************************************************

+ * Copyright (c) 2020 Contributors to the Eclipse Foundation

+ *

+ * See the NOTICE file(s) distributed with this work for additional

+ * information regarding copyright ownership.

+ *

+ * This program and the accompanying materials are made available under the

+ * terms of the Eclipse Public License v. 2.0 which is available at

+ * http://www.eclipse.org/legal/epl-2.0.

+ *

+ * SPDX-License-Identifier: EPL-2.0

+ *******************************************************************************/

+

+package org.eclipse.mdm.api.atfxadapter;

+

+import java.util.ArrayList;

+import java.util.HashMap;

+import java.util.List;

+import java.util.Map;

+import java.util.regex.Pattern;

+

+import org.asam.ods.AoException;

+import org.asam.ods.AoSession;

+import org.asam.ods.ApplicationElement;

+import org.asam.ods.InstanceElement;

+import org.asam.ods.InstanceElementIterator;

+import org.asam.ods.Relationship;

+

+/**

+ * @author akn

+ *

+ */

+public class NameHelper {

+

+	private static final Pattern PATTERN_TESTSTEP_ASAM_PATH = Pattern.compile(

+			"\\/\\[Environment\\].+\\/\\[Project\\](.+)\\/\\[StructureLevel\\](.+)\\/\\[Test\\](.+)\\/\\[TestStep\\](.+)");

+

+	private final AoSession aoSession;

+	private final String compName;

+	private final String attrName;

+

+	private Map<String, String> asamAttrCache = new HashMap<>();

+

+	/**

+	 * @param aoSession

+	 * @param property

+	 * @throws AoException

+	 */

+	public NameHelper(AoSession aoSession, String compName, String attrName) throws AoException {

+		super();

+		this.aoSession = aoSession;

+		this.compName = compName;

+		this.attrName = attrName;

+		initCache();

+

+	}

+

+	private void initCache() throws AoException {

+		ApplicationElement testStep = this.aoSession.getApplicationStructure().getElementByName("TestStep");

+

+		InstanceElementIterator testStepInstances = testStep.getInstances("*");

+

+		List<InstanceElement> relatedIE = new ArrayList<>();

+

+		for (InstanceElement ie : testStepInstances.nextN(testStepInstances.getCount())) {

+			relatedIE.add(ie);

+			relatedIE.addAll(getParentIntances(ie));

+		}

+

+		int i = 0;

+

+	}

+

+	private List<InstanceElement> getParentIntances(InstanceElement ie) throws AoException {

+		List<InstanceElement> returnVal = new ArrayList<>();

+

+		InstanceElementIterator ieIterator = ie.getRelatedInstancesByRelationship(Relationship.FATHER, "*");

+

+		if (ieIterator != null && ieIterator.getCount() > 0) {

+			for (InstanceElement ieParent : ieIterator.nextN(ieIterator.getCount())) {

+				returnVal.add(ie);

+				returnVal.addAll(getParentIntances(ie));

+			}

+		}

+

+		return returnVal;

+	}

+

+}

diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/filetransfer/ATFXFileService.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/filetransfer/ATFXFileService.java
new file mode 100644
index 0000000..5a00ee6
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/filetransfer/ATFXFileService.java
@@ -0,0 +1,229 @@
+/*******************************************************************************

+ * Copyright (c) 2020 Contributors to the Eclipse Foundation

+ *

+ * See the NOTICE file(s) distributed with this work for additional

+ * information regarding copyright ownership.

+ *

+ * This program and the accompanying materials are made available under the

+ * terms of the Eclipse Public License v. 2.0 which is available at

+ * http://www.eclipse.org/legal/epl-2.0.

+ *

+ * SPDX-License-Identifier: EPL-2.0

+ *******************************************************************************/

+

+package org.eclipse.mdm.api.atfxadapter.filetransfer;

+

+import java.io.File;

+import java.io.FileInputStream;

+import java.io.IOException;

+import java.io.InputStream;

+import java.nio.file.Files;

+import java.nio.file.Path;

+import java.time.Duration;

+import java.time.LocalTime;

+import java.util.Collection;

+import java.util.List;

+import java.util.Map;

+import java.util.UUID;

+import java.util.concurrent.atomic.AtomicLong;

+import java.util.stream.Collectors;

+

+import org.eclipse.mdm.api.base.file.FileService;

+import org.eclipse.mdm.api.base.model.Entity;

+import org.eclipse.mdm.api.base.model.FileLink;

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+

+/**

+ * @author akn

+ *

+ */

+public class ATFXFileService implements FileService {

+

+	private static final Logger LOGGER = LoggerFactory.getLogger(ATFXFileService.class);

+

+	private final Path parentDirectory;

+

+	public ATFXFileService(File parentDirectory) {

+		this.parentDirectory = parentDirectory.toPath();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#downloadSequential(org.eclipse.mdm.

+	 * api.base.model.Entity, java.nio.file.Path, java.util.Collection,

+	 * org.eclipse.mdm.api.base.file.FileService.ProgressListener)

+	 */

+	@Override

+	public void downloadSequential(Entity entity, Path target, Collection<FileLink> fileLinks,

+			ProgressListener progressListener) throws IOException {

+		Map<String, List<FileLink>> groups = fileLinks.stream().filter(FileLink::isRemote)

+				.collect(Collectors.groupingBy(FileLink::getRemotePath));

+

+		long totalSize = calculateDownloadSize(groups);

+		final AtomicLong transferred = new AtomicLong();

+		LocalTime start = LocalTime.now();

+		UUID id = UUID.randomUUID();

+		LOGGER.debug("Sequential download of {} file(s) with id '{}' started.", groups.size(), id);

+		for (List<FileLink> group : groups.values()) {

+			FileLink fileLink = group.get(0);

+

+			download(entity, target, fileLink, (b, p) -> {

+				double tranferredBytes = transferred.addAndGet(b);

+				if (progressListener != null) {

+					progressListener.progress(b, (float) (tranferredBytes / totalSize));

+				}

+			});

+

+			for (FileLink other : group.subList(1, group.size())) {

+				other.setLocalStream(fileLink.getLocalStream());

+			}

+		}

+		LOGGER.debug("Sequential download with id '{}' finished in {}.", id, Duration.between(start, LocalTime.now()));

+

+	}

+

+	private long calculateDownloadSize(Map<String, List<FileLink>> groups) {

+		List<FileLink> links = groups.values().stream().map(l -> l.get(0)).collect(Collectors.toList());

+		long totalSize = 0;

+		for (FileLink fileLink : links) {

+			File f = new File(fileLink.getRemotePath());

+			// overflow may occur in case of total size exceeds 9223 PB!

+			totalSize = Math.addExact(totalSize, f.length());

+		}

+

+		return totalSize;

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#downloadParallel(org.eclipse.mdm.

+	 * api.base.model.Entity, java.nio.file.Path, java.util.Collection,

+	 * org.eclipse.mdm.api.base.file.FileService.ProgressListener)

+	 */

+	@Override

+	public void downloadParallel(Entity entity, Path target, Collection<FileLink> fileLinks,

+			ProgressListener progressListener) throws IOException {

+		// TODO Auto-generated method stub

+

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#download(org.eclipse.mdm.api.base.

+	 * model.Entity, java.nio.file.Path, org.eclipse.mdm.api.base.model.FileLink,

+	 * org.eclipse.mdm.api.base.file.FileService.ProgressListener)

+	 */

+	@Override

+	public void download(Entity entity, Path target, FileLink fileLink, ProgressListener progressListener)

+			throws IOException {

+		if (Files.exists(target)) {

+			if (!Files.isDirectory(target)) {

+				throw new IllegalArgumentException("Target path is not a directory.");

+			}

+		} else {

+			Files.createDirectory(target);

+		}

+

+		try (InputStream inputStream = openStream(entity, fileLink)) {

+			Path absolutePath = target.resolve(fileLink.getFileName()).toAbsolutePath();

+			String remotePath = fileLink.getRemotePath();

+			LOGGER.debug("Starting download of file '{}' to '{}'.", remotePath, absolutePath);

+			LocalTime start = LocalTime.now();

+			Files.copy(inputStream, absolutePath);

+			LOGGER.debug("File '{}' successfully downloaded in {} to '{}'.", remotePath,

+					Duration.between(start, LocalTime.now()), absolutePath);

+		}

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#openStream(org.eclipse.mdm.api.base

+	 * .model.Entity, org.eclipse.mdm.api.base.model.FileLink,

+	 * org.eclipse.mdm.api.base.file.FileService.ProgressListener)

+	 */

+	@Override

+	public InputStream openStream(Entity entity, FileLink fileLink, ProgressListener progressListener)

+			throws IOException {

+

+		return new FileInputStream(parentDirectory.resolve(fileLink.getRemotePath()).toFile());

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#loadSize(org.eclipse.mdm.api.base.

+	 * model.Entity, org.eclipse.mdm.api.base.model.FileLink)

+	 */

+	@Override

+	public void loadSize(Entity entity, FileLink fileLink) throws IOException {

+		// TODO Auto-generated method stub

+

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#uploadSequential(org.eclipse.mdm.

+	 * api.base.model.Entity, java.util.Collection,

+	 * org.eclipse.mdm.api.base.file.FileService.ProgressListener)

+	 */

+	@Override

+	public void uploadSequential(Entity entity, Collection<FileLink> fileLinks, ProgressListener progressListener)

+			throws IOException {

+		// TODO Auto-generated method stub

+

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#uploadParallel(org.eclipse.mdm.api.

+	 * base.model.Entity, java.util.Collection,

+	 * org.eclipse.mdm.api.base.file.FileService.ProgressListener)

+	 */

+	@Override

+	public void uploadParallel(Entity entity, Collection<FileLink> fileLinks, ProgressListener progressListener)

+			throws IOException {

+		// TODO Auto-generated method stub

+

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#delete(org.eclipse.mdm.api.base.

+	 * model.Entity, java.util.Collection)

+	 */

+	@Override

+	public void delete(Entity entity, Collection<FileLink> fileLinks) {

+		// TODO Auto-generated method stub

+

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.eclipse.mdm.api.base.file.FileService#delete(org.eclipse.mdm.api.base.

+	 * model.Entity, org.eclipse.mdm.api.base.model.FileLink)

+	 */

+	@Override

+	public void delete(Entity entity, FileLink fileLink) {

+		// TODO Auto-generated method stub

+

+	}

+

+}

diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/ATFXTransaction.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/ATFXTransaction.java
new file mode 100644
index 0000000..253d027
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/ATFXTransaction.java
@@ -0,0 +1,426 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+package org.eclipse.mdm.api.atfxadapter.transaction;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.UUID;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import org.asam.ods.AoException;
+import org.eclipse.mdm.api.atfxadapter.ATFXContext;
+import org.eclipse.mdm.api.base.Transaction;
+import org.eclipse.mdm.api.base.adapter.Core;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.massdata.WriteRequest;
+import org.eclipse.mdm.api.base.model.BaseEntity;
+import org.eclipse.mdm.api.base.model.Channel;
+import org.eclipse.mdm.api.base.model.ContextRoot;
+import org.eclipse.mdm.api.base.model.Deletable;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.Measurement;
+import org.eclipse.mdm.api.base.model.ScalarType;
+import org.eclipse.mdm.api.base.model.TestStep;
+import org.eclipse.mdm.api.base.model.Value;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.dflt.model.CatalogAttribute;
+import org.eclipse.mdm.api.dflt.model.CatalogComponent;
+import org.eclipse.mdm.api.dflt.model.CatalogSensor;
+import org.eclipse.mdm.api.dflt.model.TemplateAttribute;
+import org.eclipse.mdm.api.dflt.model.TemplateComponent;
+import org.eclipse.mdm.api.dflt.model.TemplateRoot;
+import org.eclipse.mdm.api.dflt.model.TemplateSensor;
+import org.eclipse.mdm.api.dflt.model.TemplateTest;
+import org.eclipse.mdm.api.dflt.model.TemplateTestStep;
+import org.eclipse.mdm.api.odsadapter.ODSContext;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityFactory;
+import org.eclipse.mdm.api.odsadapter.query.ODSModelManager;
+import org.eclipse.mdm.api.odsadapter.utils.ODSUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * ODS implementation of the {@link Transaction} interface.
+ *
+ * @see org.eclipse.mdm.api.odsadapter.transaction.ODSTransaction
+ */
+public final class ATFXTransaction implements Transaction {
+
+	// TODO: it should be possible to a attach a progress listener
+	// -> progress notification updates while uploading files
+	// -> any other useful informations?!
+	// -> splitting of tasks into subtasks may be required...
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(ATFXTransaction.class);
+
+	// this one is used to access the application model and execute queries
+	// instance is decoupled from its parent
+	private final ATFXContext context;
+
+	// only for logging
+	private final String id = UUID.randomUUID().toString();
+
+	// need to write version == instanceID -> update after create
+	private final List<ContextRoot> contextRoots = new ArrayList<>();
+
+	// reset instance IDs on abort
+	private final List<Core> created = new ArrayList<>();
+
+	// apply changes
+	private final List<Core> modified = new ArrayList<>();
+
+	private CatalogManager catalogManager;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param parentModelManager Used to access the persistence.
+	 * @param entity             Used for security checks
+	 * @param transfer           The file transfer type.
+	 * @throws AoException Thrown if unable to start a co-session.
+	 */
+	public ATFXTransaction(ATFXContext context) throws AoException {
+		this.context = context;
+		this.context.getAoSession().startTransaction();
+		LOGGER.debug("Transaction '{}' started.", id);
+	}
+
+	<T extends Entity> T removeReferencesToTemplates(T e) {
+		for (Class<? extends Entity> clazz : Arrays.asList(TemplateTest.class, TemplateTestStep.class,
+				TemplateRoot.class, TemplateComponent.class, TemplateAttribute.class, TemplateSensor.class)) {
+			ODSEntityFactory.getMutableStore((BaseEntity) e).remove(clazz);
+			ODSEntityFactory.extract((BaseEntity) e).apply();
+		}
+		return e;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	@SuppressWarnings("unchecked")
+	public <T extends Entity> void create(Collection<T> entities) throws DataAccessException {
+		if (entities.isEmpty()) {
+			return;
+		} else if (entities.stream().filter(e -> ODSUtils.isValidID(e.getID())).findAny().isPresent()) {
+			throw new IllegalArgumentException("At least one given entity is already persisted.");
+		}
+
+		entities = entities.stream().map(this::removeReferencesToTemplates).collect(Collectors.toList());
+
+		try {
+			Map<Class<?>, List<T>> entitiesByClassType = entities.stream()
+					.collect(Collectors.groupingBy(e -> e.getClass()));
+
+			List<CatalogComponent> catalogComponents = (List<CatalogComponent>) entitiesByClassType
+					.get(CatalogComponent.class);
+			if (catalogComponents != null) {
+				getCatalogManager().createCatalogComponents(catalogComponents);
+			}
+
+			List<CatalogSensor> catalogSensors = (List<CatalogSensor>) entitiesByClassType.get(CatalogSensor.class);
+			if (catalogSensors != null) {
+				// TODO anehmer on 2017-11-16: avalon 4.3b throws an exception in
+				// AoSession.commitTransaction() if multiple
+				// catalog sensors have been deleted and leaves the application
+				// model in a broken state. This is also stated in the documentation. This
+				// comment should be removed later.
+				getCatalogManager().createCatalogSensors(catalogSensors);
+			}
+
+			List<CatalogAttribute> catalogAttributes = (List<CatalogAttribute>) entitiesByClassType
+					.get(CatalogAttribute.class);
+			if (catalogAttributes != null) {
+				getCatalogManager().createCatalogAttributes(catalogAttributes);
+			}
+
+			List<TestStep> testSteps = (List<TestStep>) entitiesByClassType.get(TestStep.class);
+			if (testSteps != null) {
+				create(testSteps.stream().map(ContextRoot::of).collect(ArrayList::new, List::addAll, List::addAll));
+			}
+
+			List<Measurement> measurements = (List<Measurement>) entitiesByClassType.get(Measurement.class);
+			if (measurements != null) {
+				// Use set here, since measurement siblings point to the same
+				// context roots. Only create those ContextRoots that haven't been created yet:
+				create(measurements.stream().map(ContextRoot::of)
+						.collect(HashSet<ContextRoot>::new, Set<ContextRoot>::addAll, Set<ContextRoot>::addAll).stream()
+						.filter(cr -> !ODSUtils.isValidID(cr.getID())).collect(Collectors.toSet()));
+			}
+
+			executeStatements(et -> new InsertStatement(this, et), entities);
+
+			List<ContextRoot> roots = (List<ContextRoot>) entitiesByClassType.get(ContextRoot.class);
+			if (roots != null) {
+				roots.forEach(contextRoot -> {
+					contextRoot.setVersion(contextRoot.getID().toString());
+				});
+
+				// this will restore the ASAM path of each context root
+				executeStatements(et -> new UpdateStatement(this, et, true), roots);
+				contextRoots.addAll(roots);
+			}
+		} catch (AoException e) {
+			throw new DataAccessException("Unable to write new entities due to: " + e.reason, e);
+		} catch (IOException e) {
+			throw new DataAccessException("Unable to write new entities due to: " + e.getMessage(), e);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	@SuppressWarnings("unchecked")
+	public <T extends Entity> void update(Collection<T> entities) throws DataAccessException {
+		if (entities.isEmpty()) {
+			return;
+		} else if (entities.stream().filter(e -> !ODSUtils.isValidID(e.getID())).findAny().isPresent()) {
+			throw new IllegalArgumentException("At least one given entity is not yet persisted.");
+		}
+
+		entities = entities.stream().map(this::removeReferencesToTemplates).collect(Collectors.toList());
+
+		try {
+			Map<Class<?>, List<T>> entitiesByClassType = entities.stream()
+					.collect(Collectors.groupingBy(e -> e.getClass()));
+			List<CatalogAttribute> catalogAttributes = (List<CatalogAttribute>) entitiesByClassType
+					.get(CatalogAttribute.class);
+			if (catalogAttributes != null) {
+				getCatalogManager().updateCatalogAttributes(catalogAttributes);
+			}
+
+			executeStatements(et -> new UpdateStatement(this, et, false), entities);
+		} catch (AoException e) {
+			throw new DataAccessException("Unable to update entities due to: " + e.reason, e);
+		} catch (IOException e) {
+			throw new DataAccessException("Unable to update entities due to: " + e.getMessage(), e);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	@SuppressWarnings("unchecked")
+	public <T extends Deletable> void delete(Collection<T> entities) throws DataAccessException {
+		if (entities.isEmpty()) {
+			return;
+		}
+
+		entities = entities.stream().map(this::removeReferencesToTemplates).collect(Collectors.toList());
+
+		List<T> filteredEntities = entities.stream().filter(e -> ODSUtils.isValidID(e.getID()))
+				.collect(Collectors.toList());
+
+		try {
+			Map<Class<?>, List<T>> entitiesByClassType = filteredEntities.stream()
+					.collect(Collectors.groupingBy(e -> e.getClass()));
+
+			List<CatalogComponent> catalogComponents = (List<CatalogComponent>) entitiesByClassType
+					.get(CatalogComponent.class);
+			if (catalogComponents != null) {
+				getCatalogManager().deleteCatalogComponents(catalogComponents);
+			}
+
+			List<CatalogSensor> catalogSensors = (List<CatalogSensor>) entitiesByClassType.get(CatalogSensor.class);
+			if (catalogSensors != null) {
+				// TODO anehmer on 2017-11-16: avalon 4.3b throws an exception in
+				// AoSession.commitTransaction() if multiple
+				// catalog sensors have been deleted and leaves the application
+				// model in a broken state. This is also stated in the documentation. This
+				// comment should be removed later.
+				getCatalogManager().deleteCatalogSensors(catalogSensors);
+			}
+
+			List<CatalogAttribute> catalogAttributes = (List<CatalogAttribute>) entitiesByClassType
+					.get(CatalogAttribute.class);
+			if (catalogAttributes != null) {
+				getCatalogManager().deleteCatalogAttributes(catalogAttributes);
+			}
+
+			/*
+			 * TODO: for any template that has to be deleted it is required to ensure there
+			 * are no links to it...
+			 */
+
+			executeStatements(et -> new DeleteStatement(this, et, true), filteredEntities);
+		} catch (AoException e) {
+			throw new DataAccessException("Unable to delete entities due to: " + e.reason, e);
+		} catch (IOException e) {
+			throw new DataAccessException("Unable to delete entities due to: " + e.getMessage(), e);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void writeMeasuredValues(Collection<WriteRequest> writeRequests) throws DataAccessException {
+		if (writeRequests.isEmpty()) {
+			return;
+		}
+
+		try {
+			Map<ScalarType, List<WriteRequest>> writeRequestsByRawType = writeRequests.stream()
+					.collect(Collectors.groupingBy(WriteRequest::getRawScalarType));
+
+			for (List<WriteRequest> writeRequestGroup : writeRequestsByRawType.values()) {
+				WriteRequestHandler writeRequestHandler = new WriteRequestHandler(this);
+				List<Channel> channels = new ArrayList<>();
+
+				for (WriteRequest writeRequest : writeRequestGroup) {
+					Channel channel = writeRequest.getChannel();
+					channel.setScalarType(writeRequest.getCalculatedScalarType());
+					// TODO it might be required to change relation to another
+					// unit?!??
+					channels.add(channel);
+					writeRequestHandler.addRequest(writeRequest);
+				}
+
+				update(channels);
+				writeRequestHandler.execute();
+			}
+		} catch (AoException e) {
+			throw new DataAccessException("Unable to write measured values due to: " + e.reason, e);
+		} catch (IOException e) {
+			throw new DataAccessException("Unable to write measured values due to: " + e.getMessage(), e);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void commit() throws DataAccessException {
+		try {
+			context.getAoSession().commitTransaction();
+
+			// commit succeed -> apply changes in entity cores
+			modified.forEach(Core::apply);
+
+			if (catalogManager != null) {
+				// application model has been modified -> reload
+				// context.getODSModelManager().reloadApplicationModel();
+				// TODO
+			}
+
+			LOGGER.debug("Transaction '{}' committed.", id);
+		} catch (AoException e) {
+			throw new DataAccessException("Unable to commit transaction '" + id + "' due to: " + e.reason, e);
+		}
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void abort() {
+		try {
+			// reset version, since creation failed or was aborted
+			contextRoots.forEach(cr -> cr.setVersion(null));
+
+			// reset instance IDs
+			String virtualID = "0";
+			created.forEach(c -> c.setID(virtualID));
+
+			context.getAoSession().abortTransaction();
+
+			LOGGER.debug("Transaction '{}' aborted.", id);
+		} catch (AoException e) {
+			LOGGER.error("Unable to abort transaction '" + id + "' due to: " + e.reason, e);
+		}
+	}
+
+	/**
+	 * Once {@link #abort()} is called instance ID of given {@link Core} will be
+	 * reset to {@code 0} which indicates a virtual {@link Entity}, not yet
+	 * persisted, entity.
+	 *
+	 * @param core The {@code Core} of a newly written {@code Entity}.
+	 */
+	void addCreated(Core core) {
+		created.add(core);
+	}
+
+	/**
+	 * Once {@link #commit()} is {@link Core#apply()} will be called to apply
+	 * modified {@link Value} contents and removed related entities.
+	 *
+	 * @param core The {@code Core} of an updated {@code Entity}.
+	 */
+	void addModified(Core core) {
+		modified.add(core);
+	}
+
+	/**
+	 * Returns the {@link ODSContext}.
+	 *
+	 * @return The {@code ODSContext} is returned.
+	 */
+	ATFXContext getContext() {
+		return context;
+	}
+
+	/**
+	 * Returns the {@link ODSModelManager}.
+	 *
+	 * @return The {@code ODSModelManager} is returned.
+	 */
+	ODSModelManager getModelManager() {
+		return context.getODSModelManager();
+	}
+
+	/**
+	 * Returns the {@link CatalogManager}.
+	 *
+	 * @return The {@code CatalogManager} is returned.
+	 */
+	private CatalogManager getCatalogManager() {
+		if (catalogManager == null) {
+			catalogManager = new CatalogManager(this);
+		}
+
+		return catalogManager;
+	}
+
+	/**
+	 * Executes statements for given entities by using given statement factory.
+	 *
+	 * @param <T>              The entity type.
+	 * @param statementFactory Used to create a new statement for a given
+	 *                         {@link EntityType}.
+	 * @param entities         The processed {@code Entity}s.
+	 * @throws AoException         Thrown if the execution fails.
+	 * @throws DataAccessException Thrown if the execution fails.
+	 * @throws IOException         Thrown if a file transfer operation fails.
+	 */
+	private <T extends Entity> void executeStatements(Function<EntityType, BaseStatement> statementFactory,
+			Collection<T> entities) throws AoException, DataAccessException, IOException {
+		Map<EntityType, List<Entity>> entitiesByType = entities.stream()
+				.collect(Collectors.groupingBy(context.getODSModelManager()::getEntityType));
+		for (Entry<EntityType, List<Entity>> entry : entitiesByType.entrySet()) {
+			statementFactory.apply(entry.getKey()).execute(entry.getValue());
+		}
+	}
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/BaseStatement.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/BaseStatement.java
new file mode 100644
index 0000000..4e28895
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/BaseStatement.java
@@ -0,0 +1,108 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+package org.eclipse.mdm.api.atfxadapter.transaction;
+
+import java.io.IOException;
+import java.util.Collection;
+
+import org.asam.ods.AoException;
+import org.asam.ods.ApplElemAccess;
+import org.eclipse.mdm.api.base.ServiceNotProvidedException;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.base.query.QueryService;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityType;
+import org.eclipse.mdm.api.odsadapter.query.ODSModelManager;
+
+/**
+ * A base implementation for execution statements (CREATE, UPDATE, DELETE).
+ *
+ * @see org.eclipse.mdm.api.odsadapter.transaction.BaseStatement
+ */
+abstract class BaseStatement {
+
+	private final ATFXTransaction transaction;
+	private final ODSEntityType entityType;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param transaction The owning {@link ATFXTransaction}.
+	 * @param entityType  The associated {@link EntityType}.
+	 */
+	protected BaseStatement(ATFXTransaction transaction, EntityType entityType) {
+		this.transaction = transaction;
+		this.entityType = (ODSEntityType) entityType;
+	}
+
+	/**
+	 * Executes this statement for given {@link Entity}s.
+	 *
+	 * @param entities The processed {@code Entity}s.
+	 * @throws AoException         Thrown if the execution fails.
+	 * @throws DataAccessException Thrown if the execution fails.
+	 * @throws IOException         Thrown if a file transfer operation fails.
+	 */
+	public abstract void execute(Collection<Entity> entities) throws AoException, DataAccessException, IOException;
+
+	/**
+	 * Returns the {@link ATFXTransaction}.
+	 *
+	 * @return The {@code ODSTransaction} is returned.
+	 */
+	protected ATFXTransaction getTransaction() {
+		return transaction;
+	}
+
+	/**
+	 * Returns the {@link ODSModelManager}.
+	 *
+	 * @return The {@code ODSModelManager} is returned.
+	 */
+	protected ODSModelManager getModelManager() {
+		return transaction.getModelManager();
+	}
+
+	/**
+	 * Returns the {@link QueryService}.
+	 *
+	 * @return The {@code QueryService} is returned.
+	 */
+	protected QueryService getQueryService() {
+		return transaction.getContext().getQueryService()
+				.orElseThrow(() -> new ServiceNotProvidedException(QueryService.class));
+	}
+
+	/**
+	 * Returns the {@link ApplElemAccess}.
+	 *
+	 * @return The {@code ApplElemAccess} is returned.
+	 * @throws AoException Thrown in case of errors.
+	 */
+	protected ApplElemAccess getApplElemAccess() throws AoException {
+		return transaction.getContext().getODSModelManager().getApplElemAccess();
+	}
+
+	/**
+	 * Returns the associated {@link EntityType}.
+	 *
+	 * @return The associated {@code EntityType} is returned.
+	 */
+	protected ODSEntityType getEntityType() {
+		return entityType;
+	}
+
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/CatalogManager.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/CatalogManager.java
new file mode 100644
index 0000000..612c083
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/CatalogManager.java
@@ -0,0 +1,548 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+package org.eclipse.mdm.api.atfxadapter.transaction;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import org.asam.ods.AoException;
+import org.asam.ods.ApplicationAttribute;
+import org.asam.ods.ApplicationElement;
+import org.asam.ods.ApplicationRelation;
+import org.asam.ods.ApplicationStructure;
+import org.asam.ods.BaseAttribute;
+import org.asam.ods.BaseElement;
+import org.asam.ods.BaseStructure;
+import org.asam.ods.DataType;
+import org.asam.ods.RelationRange;
+import org.eclipse.mdm.api.base.ServiceNotProvidedException;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.model.ContextType;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.Unit;
+import org.eclipse.mdm.api.base.query.ComparisonOperator;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.base.query.Filter;
+import org.eclipse.mdm.api.base.query.Query;
+import org.eclipse.mdm.api.base.query.QueryService;
+import org.eclipse.mdm.api.base.query.Result;
+import org.eclipse.mdm.api.dflt.model.CatalogAttribute;
+import org.eclipse.mdm.api.dflt.model.CatalogComponent;
+import org.eclipse.mdm.api.dflt.model.CatalogSensor;
+import org.eclipse.mdm.api.odsadapter.utils.ODSConverter;
+import org.eclipse.mdm.api.odsadapter.utils.ODSEnumerations;
+import org.eclipse.mdm.api.odsadapter.utils.ODSUtils;
+
+/**
+ * Used to create, update or delete {@link CatalogComponent},
+ * {@link CatalogSensor} and {@link CatalogAttribute} entities. Modifications of
+ * the listed types results in modifications of the application model.
+ *
+ * @see org.eclipse.mdm.api.odsadapter.transaction.CatalogManager
+ */
+final class CatalogManager {
+
+	private final ATFXTransaction transaction;
+
+	private ApplicationStructure applicationStructure;
+	private BaseStructure baseStructure;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param transaction The {@link ATFXTransaction}.
+	 */
+	CatalogManager(ATFXTransaction transaction) {
+		this.transaction = transaction;
+	}
+
+	/**
+	 * Creates for each given {@link CatalogComponent} a corresponding application
+	 * element including all required application relations.
+	 *
+	 * @param catalogComponents The {@code CatalogComponent}s.
+	 * @throws AoException Thrown in case of errors.
+	 */
+	public void createCatalogComponents(Collection<CatalogComponent> catalogComponents) throws AoException {
+		Map<ContextType, List<CatalogComponent>> catalogComponentsByContextType = catalogComponents.stream()
+				.collect(Collectors.groupingBy(CatalogComponent::getContextType));
+
+		for (Entry<ContextType, List<CatalogComponent>> entry : catalogComponentsByContextType.entrySet()) {
+			String odsContextTypeName = ODSUtils.CONTEXTTYPES.get(entry.getKey());
+			ApplicationElement contextRootApplicationElement = getApplicationStructure()
+					.getElementByName(odsContextTypeName);
+			BaseElement contextRootBaseElement = contextRootApplicationElement.getBaseElement();
+			ApplicationElement contextTemplateComponentApplicationElement = getApplicationStructure()
+					.getElementByName("Tpl" + odsContextTypeName + "Comp");
+			BaseElement baseElement = getBaseStructure().getElementByType("Ao" + odsContextTypeName + "Part");
+
+			for (CatalogComponent catalogComponent : entry.getValue()) {
+				ApplicationElement applicationElement = createApplicationElement(catalogComponent.getName(),
+						baseElement);
+
+				// relation context root to context component
+				ApplicationRelation applicationRelation = getApplicationStructure().createRelation();
+				applicationRelation.setElem1(contextRootApplicationElement);
+				applicationRelation.setElem2(applicationElement);
+				applicationRelation.setRelationName(catalogComponent.getName());
+				applicationRelation.setInverseRelationName(odsContextTypeName);
+				applicationRelation
+						.setBaseRelation(getBaseStructure().getRelation(contextRootBaseElement, baseElement));
+				applicationRelation._release();
+
+				// relation template component to context component
+				applicationRelation = getApplicationStructure().createRelation();
+				applicationRelation.setElem1(contextTemplateComponentApplicationElement);
+				applicationRelation.setElem2(applicationElement);
+				applicationRelation.setRelationName(catalogComponent.getName());
+				applicationRelation.setInverseRelationName("Tpl" + odsContextTypeName + "Comp");
+				applicationRelation.setRelationRange(new RelationRange((short) 0, (short) -1));
+				applicationRelation.setInverseRelationRange(new RelationRange((short) 1, (short) 1));
+
+				// release resources
+				applicationElement._release();
+				applicationRelation._release();
+			}
+
+			// release resources
+			contextTemplateComponentApplicationElement._release();
+			contextRootApplicationElement._release();
+			contextRootBaseElement._release();
+			baseElement._release();
+		}
+	}
+
+	/**
+	 * Creates for each given {@link CatalogSensor} a corresponding application
+	 * element including all required application relations.
+	 *
+	 * @param catalogSensors The {@code CatalogSensor}s.
+	 * @throws AoException Thrown in case of errors.
+	 */
+	public void createCatalogSensors(Collection<CatalogSensor> catalogSensors) throws AoException {
+		Map<String, List<CatalogSensor>> catalogSensorsByCatalogComponent = catalogSensors.stream()
+				.collect(Collectors.groupingBy(cs -> cs.getCatalogComponent().getName()));
+
+		ApplicationElement channelApplicationElement = getApplicationStructure().getElementByName("MeaQuantity");
+		BaseElement channelBaseElement = channelApplicationElement.getBaseElement();
+
+		for (Entry<String, List<CatalogSensor>> entry : catalogSensorsByCatalogComponent.entrySet()) {
+			ApplicationElement contextComponentApplicationElement = getApplicationStructure()
+					.getElementByName(entry.getKey());
+			BaseElement contextComponentBaseElement = contextComponentApplicationElement.getBaseElement();
+			ApplicationElement contextTemplateSensorApplicationElement = getApplicationStructure()
+					.getElementByName("TplSensor");
+			BaseElement baseElement = getBaseStructure().getElementByType("AoTestEquipmentPart");
+
+			for (CatalogSensor catalogSensor : entry.getValue()) {
+				ApplicationElement applicationElement = createApplicationElement(catalogSensor.getName(), baseElement);
+
+				// relation context component to context sensor
+				ApplicationRelation applicationRelation = getApplicationStructure().createRelation();
+				applicationRelation.setElem1(contextComponentApplicationElement);
+				applicationRelation.setElem2(applicationElement);
+				applicationRelation.setRelationName(catalogSensor.getName());
+				applicationRelation.setInverseRelationName(entry.getKey());
+				applicationRelation
+						.setBaseRelation(getBaseStructure().getRelation(contextComponentBaseElement, baseElement));
+				applicationRelation._release();
+
+				// relation template sensor to context sensor
+				applicationRelation = getApplicationStructure().createRelation();
+				applicationRelation.setElem1(contextTemplateSensorApplicationElement);
+				applicationRelation.setElem2(applicationElement);
+				applicationRelation.setRelationName(catalogSensor.getName());
+				applicationRelation.setInverseRelationName("TplSensor");
+				applicationRelation.setRelationRange(new RelationRange((short) 0, (short) -1));
+				applicationRelation.setInverseRelationRange(new RelationRange((short) 1, (short) 1));
+				applicationRelation._release();
+
+				// relation channel to context sensor
+				applicationRelation = getApplicationStructure().createRelation();
+				applicationRelation.setElem1(channelApplicationElement);
+				applicationRelation.setElem2(applicationElement);
+				applicationRelation.setRelationName(catalogSensor.getName());
+				applicationRelation.setInverseRelationName("MeaQuantity");
+				applicationRelation.setBaseRelation(getBaseStructure().getRelation(channelBaseElement, baseElement));
+
+				// release resources
+				applicationElement._release();
+				applicationRelation._release();
+			}
+
+			// release resources
+			contextComponentApplicationElement._release();
+			contextTemplateSensorApplicationElement._release();
+			contextComponentBaseElement._release();
+			baseElement._release();
+		}
+
+		// release resources
+		channelApplicationElement._release();
+		channelBaseElement._release();
+	}
+
+	/**
+	 * Creates for each given {@link CatalogAttribute} a corresponding application
+	 * attribute.
+	 *
+	 * @param catalogAttributes The {@code CatalogAttribute}s.
+	 * @throws AoException Thrown in case of errors.
+	 */
+	public void createCatalogAttributes(Collection<CatalogAttribute> catalogAttributes) throws AoException {
+		Map<String, List<CatalogAttribute>> catalogAttributesByCatalogComponent = catalogAttributes.stream()
+				.collect(Collectors.groupingBy(CatalogManager::getParentName));
+
+		for (Entry<String, List<CatalogAttribute>> entry : catalogAttributesByCatalogComponent.entrySet()) {
+			ApplicationElement applicationElement = getApplicationStructure().getElementByName(entry.getKey());
+
+			for (CatalogAttribute catalogAttribute : entry.getValue()) {
+
+				ApplicationAttribute applicationAttribute = applicationElement.createAttribute();
+				DataType dataType = ODSUtils.VALUETYPES.get(catalogAttribute.getValueType());
+				applicationAttribute.setDataType(dataType);
+				applicationAttribute.setName(catalogAttribute.getName());
+				if (dataType == DataType.DT_ENUM) {
+					applicationAttribute.setEnumerationDefinition(getApplicationStructure().getEnumerationDefinition(
+							ODSEnumerations.getEnumName(catalogAttribute.getEnumerationObject())));
+				}
+				Optional<Unit> unit = catalogAttribute.getUnit();
+				if (unit.isPresent()) {
+					applicationAttribute.setUnit(ODSConverter.toODSID(unit.get().getID()));
+				}
+
+				// release resources
+				applicationAttribute._release();
+			}
+
+			// release resources
+			applicationElement._release();
+		}
+	}
+
+	/**
+	 * Updates the application attribute for each given {@link CatalogAttribute}.
+	 *
+	 * @param catalogAttributes The {@code CatalogAttribute}s.
+	 * @throws AoException Thrown in case of errors.
+	 */
+	public void updateCatalogAttributes(List<CatalogAttribute> catalogAttributes) throws AoException {
+		Map<String, List<CatalogAttribute>> catalogAttributesByCatalogComponent = catalogAttributes.stream()
+				.collect(Collectors.groupingBy(CatalogManager::getParentName));
+
+		for (Entry<String, List<CatalogAttribute>> entry : catalogAttributesByCatalogComponent.entrySet()) {
+			ApplicationElement applicationElement = getApplicationStructure().getElementByName(entry.getKey());
+
+			for (CatalogAttribute catalogAttribute : entry.getValue()) {
+
+				ApplicationAttribute applicationAttribute = applicationElement
+						.getAttributeByName(catalogAttribute.getName());
+
+				Optional<Unit> unit = catalogAttribute.getUnit();
+				if (unit.isPresent()) {
+					applicationAttribute.setUnit(ODSConverter.toODSID(unit.get().getID()));
+				}
+
+				// release resources
+				applicationAttribute._release();
+			}
+
+			// release resources
+			applicationElement._release();
+		}
+	}
+
+	/**
+	 * Deletes the corresponding application element for each given
+	 * {@link CatalogComponent}. Deleting a {@code CatalogComponent} is only allowed
+	 * if it is not used in templates and all of its children could be deleted. So
+	 * at first it is tried to delete its {@link CatalogAttribute}s and
+	 * {@link CatalogSensor}s. On success it is ensured none of the given {@code
+	 * CatalogComponent}s is used in templates. Finally the corresponding
+	 * application elements are deleted.
+	 *
+	 * @param catalogComponents The {@code CatalogComponent}s.
+	 * @throws AoException         Thrown in case of errors.
+	 * @throws DataAccessException Thrown in case of errors.
+	 */
+	public void deleteCatalogComponents(Collection<CatalogComponent> catalogComponents)
+			throws AoException, DataAccessException {
+		List<CatalogAttribute> attributes = new ArrayList<>();
+		List<CatalogSensor> sensors = new ArrayList<>();
+		for (CatalogComponent catalogComponent : catalogComponents) {
+			attributes.addAll(catalogComponent.getCatalogAttributes());
+			sensors.addAll(catalogComponent.getCatalogSensors());
+		}
+		transaction.delete(sensors);
+		transaction.delete(attributes);
+
+		if (areReferencedInTemplates(catalogComponents)) {
+			throw new DataAccessException(
+					"Unable to delete given catalog components since at least " + "one is used in templates.");
+		}
+
+		for (CatalogComponent catalogComponent : catalogComponents) {
+			ApplicationElement applicationElement = getApplicationStructure()
+					.getElementByName(catalogComponent.getName());
+			for (ApplicationRelation applicationRelation : applicationElement.getAllRelations()) {
+				getApplicationStructure().removeRelation(applicationRelation);
+
+				// release resources
+				applicationRelation._release();
+			}
+			getApplicationStructure().removeElement(applicationElement);
+
+			// release resources
+			applicationElement._release();
+		}
+	}
+
+	/**
+	 * Deletes the corresponding application element for each given
+	 * {@link CatalogSensor}. Deleting a {@code CatalogSensor} is only allowed if it
+	 * is not used in templates and all of its children could be deleted. So at
+	 * first it is tried to delete its {@link CatalogAttribute}s. On success it is
+	 * ensured none of the given {@code CatalogSensor}s is used in templates.
+	 * Finally the corresponding application elements are deleted.
+	 *
+	 * @param catalogSensors The {@code CatalogSensor}s.
+	 * @throws AoException         Thrown in case of errors.
+	 * @throws DataAccessException Thrown in case of errors.
+	 */
+	public void deleteCatalogSensors(Collection<CatalogSensor> catalogSensors) throws AoException, DataAccessException {
+		List<CatalogAttribute> attributes = new ArrayList<>();
+		for (CatalogSensor catalogSensor : catalogSensors) {
+			attributes.addAll(catalogSensor.getCatalogAttributes());
+		}
+		transaction.delete(attributes);
+
+		if (areReferencedInTemplates(catalogSensors)) {
+			throw new DataAccessException(
+					"Unable to delete given catalog sensors since at " + "least one is used in templates.");
+		}
+
+		for (CatalogSensor catalogSensor : catalogSensors) {
+			ApplicationElement applicationElement = getApplicationStructure().getElementByName(catalogSensor.getName());
+			for (ApplicationRelation applicationRelation : applicationElement.getAllRelations()) {
+				getApplicationStructure().removeRelation(applicationRelation);
+
+				// release resources
+				applicationRelation._release();
+			}
+			getApplicationStructure().removeElement(applicationElement);
+
+			// release resources
+			applicationElement._release();
+		}
+
+	}
+
+	/**
+	 * Deletes the corresponding application attributes for each given
+	 * {@link CatalogAttribute}. Deleting a {@code CatalogAttribute} is only allowed
+	 * if it is not used in templates. So at first it is ensured none of the given
+	 * {@code CatalogAttribute}s is used in templates and finally the corresponding
+	 * application attributes are deleted.
+	 *
+	 * @param catalogAttributes The {@code CatalogAttribute}s.
+	 * @throws AoException         Thrown in case of errors.
+	 * @throws DataAccessException Thrown in case of errors.
+	 */
+	public void deleteCatalogAttributes(Collection<CatalogAttribute> catalogAttributes)
+			throws AoException, DataAccessException {
+		if (areReferencedInTemplates(catalogAttributes)) {
+			throw new DataAccessException(
+					"Unable to delete given catalog attributes since at least " + "one is used in templates.");
+		}
+
+		Map<String, List<CatalogAttribute>> catalogAttributesByParent = catalogAttributes.stream()
+				.collect(Collectors.groupingBy(CatalogManager::getParentName));
+
+		for (Entry<String, List<CatalogAttribute>> entry : catalogAttributesByParent.entrySet()) {
+			ApplicationElement applicationElement = getApplicationStructure().getElementByName(entry.getKey());
+
+			for (CatalogAttribute catalogAttribute : entry.getValue()) {
+				ApplicationAttribute applicationAttribute = applicationElement
+						.getAttributeByName(catalogAttribute.getName());
+				applicationElement.removeAttribute(applicationAttribute);
+
+				// release resources
+				applicationAttribute._release();
+			}
+
+			// release resources
+			applicationElement._release();
+		}
+	}
+
+	/**
+	 * Releases cached resources.
+	 */
+	public void clear() {
+		if (applicationStructure != null) {
+			applicationStructure._release();
+		}
+
+		if (baseStructure != null) {
+			baseStructure._release();
+		}
+	}
+
+	/**
+	 * Creates a new {@link ApplicationElement} with given name and
+	 * {@link BaseElement}. The returned {@code ApplicationElement} will be created
+	 * with the three mandatory {@link ApplicationAttribute}s for 'Id', 'Name' and
+	 * 'MimeType'.
+	 *
+	 * @param name        The name of the application element.
+	 * @param baseElement The {@code BaseElement} the created {@code
+	 * 		ApplicationElement} will be derived from.
+	 * @return The created {@code ApplicationElement} is returned.
+	 * @throws AoException Thrown in case of errors.
+	 */
+	private ApplicationElement createApplicationElement(String name, BaseElement baseElement) throws AoException {
+		ApplicationElement applicationElement = getApplicationStructure().createElement(baseElement);
+		applicationElement.setName(name);
+
+		// Id
+		ApplicationAttribute idApplicationAttribute = applicationElement.getAttributeByBaseName("id");
+		idApplicationAttribute.setName("Id");
+		idApplicationAttribute.setDataType(DataType.DT_LONGLONG);
+		idApplicationAttribute.setIsAutogenerated(true);
+
+		// Name
+		ApplicationAttribute nameApplicationAttribute = applicationElement.getAttributeByBaseName("name");
+		nameApplicationAttribute.setName("Name");
+		nameApplicationAttribute.setLength(50);
+
+		// MimeType
+		BaseAttribute mimeTypeBaseAttribute = baseElement.getAttributes("mime_type")[0];
+		ApplicationAttribute mimeTypeApplicationAttribute = applicationElement.createAttribute();
+		mimeTypeApplicationAttribute.setBaseAttribute(mimeTypeBaseAttribute);
+		mimeTypeApplicationAttribute.setName("MimeType");
+		mimeTypeApplicationAttribute.setDataType(DataType.DT_STRING);
+		mimeTypeApplicationAttribute.setLength(256);
+		mimeTypeApplicationAttribute.setIsObligatory(true);
+
+		// release resources
+		idApplicationAttribute._release();
+		nameApplicationAttribute._release();
+		mimeTypeApplicationAttribute._release();
+		mimeTypeBaseAttribute._release();
+
+		return applicationElement;
+	}
+
+	/**
+	 * Returns the cached {@link ApplicationStructure}.
+	 *
+	 * @return The {@code ApplicationStructure} is returned.
+	 * @throws AoException Thrown if unable to access the {@code
+	 * 		ApplicationStructure}.
+	 */
+	private ApplicationStructure getApplicationStructure() throws AoException {
+		if (applicationStructure == null) {
+			applicationStructure = transaction.getModelManager().getAoSession().getApplicationStructure();
+		}
+
+		return applicationStructure;
+	}
+
+	/**
+	 * Returns the cached {@link BaseStructure}.
+	 *
+	 * @return The {@code BaseStructure} is returned.
+	 * @throws AoException Thrown if unable to access the {@code
+	 * 		BaseStructure}.
+	 */
+	private BaseStructure getBaseStructure() throws AoException {
+		if (baseStructure == null) {
+			baseStructure = transaction.getModelManager().getAoSession().getBaseStructure();
+		}
+
+		return baseStructure;
+	}
+
+	/**
+	 * Checks whether given {@link Entity}s are referenced in templates.
+	 *
+	 * @param entities The checked entities ({@link CatalogComponent},
+	 *                 {@link CatalogSensor} or {@link CatalogAttribute}).
+	 * @return Returns {@code true} if at least one entity is referenced in a
+	 *         template.
+	 * @throws AoException         Thrown on errors.
+	 * @throws DataAccessException Thrown on errors.
+	 */
+	private boolean areReferencedInTemplates(Collection<? extends Entity> entities)
+			throws AoException, DataAccessException {
+		Map<EntityType, List<Entity>> entitiesByEntityType = entities.stream()
+				.collect(Collectors.groupingBy(transaction.getModelManager()::getEntityType));
+
+		for (Entry<EntityType, List<Entity>> entry : entitiesByEntityType.entrySet()) {
+			EntityType source = entry.getKey();
+			EntityType target = transaction.getModelManager().getEntityType(source.getName().replace("Cat", "Tpl"));
+
+			Query query = transaction.getContext().getQueryService()
+					.orElseThrow(() -> new ServiceNotProvidedException(QueryService.class)).createQuery()
+					.selectID(target).join(source, target);
+
+			List<Result> results = query.fetch(Filter.and().add(
+					ComparisonOperator.IN_SET.create(source.getIDAttribute(), collectInstanceIDs(entry.getValue()))));
+			if (results.size() > 0) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Collect the instance IDs of all given {@link Entity}s.
+	 *
+	 * @param entities The {@link Entity}s.
+	 * @return The instance IDs a {@code String[]} are turned.
+	 */
+	private static String[] collectInstanceIDs(List<Entity> entities) {
+		String[] ids = new String[entities.size()];
+
+		for (int i = 0; i < ids.length; i++) {
+			ids[i] = entities.get(i).getID();
+		}
+
+		return ids;
+	}
+
+	/**
+	 * Returns the parent name for given {@link CatalogAttribute}.
+	 *
+	 * @param catalogAttribute The {@code CatalogAttribute}.
+	 * @return The parent name is returned.
+	 */
+	private static String getParentName(CatalogAttribute catalogAttribute) {
+		Optional<CatalogComponent> catalogComponent = catalogAttribute.getCatalogComponent();
+		if (catalogComponent.isPresent()) {
+			return catalogComponent.get().getName();
+		}
+
+		return catalogAttribute.getCatalogSensor()
+				.orElseThrow(() -> new IllegalStateException("Parent entity is unknown.")).getName();
+	}
+
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/DeleteStatement.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/DeleteStatement.java
new file mode 100644
index 0000000..08b7fdf
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/DeleteStatement.java
@@ -0,0 +1,227 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+package org.eclipse.mdm.api.atfxadapter.transaction;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.asam.ods.AoException;
+import org.asam.ods.T_LONGLONG;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.adapter.Relation;
+import org.eclipse.mdm.api.base.model.Channel;
+import org.eclipse.mdm.api.base.model.ContextRoot;
+import org.eclipse.mdm.api.base.model.ContextType;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.FilesAttachable;
+import org.eclipse.mdm.api.base.model.Measurement;
+import org.eclipse.mdm.api.base.model.ParameterSet;
+import org.eclipse.mdm.api.base.model.TestStep;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.base.query.Filter;
+import org.eclipse.mdm.api.base.query.JoinType;
+import org.eclipse.mdm.api.base.query.Query;
+import org.eclipse.mdm.api.base.query.Result;
+import org.eclipse.mdm.api.odsadapter.lookup.config.EntityConfig;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityType;
+import org.eclipse.mdm.api.odsadapter.utils.ODSConverter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Delete statement is used to delete entities with their children.
+ *
+ * @see org.eclipse.mdm.api.odsadapter.transaction.DeleteStatement
+ */
+final class DeleteStatement extends BaseStatement {
+
+	private static final List<String> AUTO_DELETABLE = Arrays.asList("MeaQuantity", "SubMatrix", "LocalColumn",
+			"ExternalComponent");
+	private static final Logger LOGGER = LoggerFactory.getLogger(DeleteStatement.class);
+
+	private final boolean useAutoDelete;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param transaction   The owning {@link ATFXTransaction}.
+	 * @param entityType    The associated {@link EntityType}.
+	 * @param useAutoDelete If {@code true} child relations of {@link Measurement}
+	 *                      entities are not followed.
+	 */
+	DeleteStatement(ATFXTransaction transaction, EntityType entityType, boolean useAutoDelete) {
+		super(transaction, entityType);
+		this.useAutoDelete = useAutoDelete;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void execute(Collection<Entity> entities) throws AoException, DataAccessException {
+		if (entities.stream().filter(e -> !e.getTypeName().equals(getEntityType().getName())).findAny().isPresent()) {
+			throw new IllegalArgumentException("At least one given entity is of incompatible type.");
+		}
+
+		long start = System.currentTimeMillis();
+		int amount = delete(getEntityType(), entities.stream().map(Entity::getID).collect(Collectors.toSet()), false);
+		LOGGER.debug("{} instances deleted in {} ms.", amount, System.currentTimeMillis() - start);
+	}
+
+	/**
+	 * Recursively follows child relations of given entities and deletes all child
+	 * entities before deleting parent entities.
+	 *
+	 * @param entityType     {@link EntityType} of the deleted entities.
+	 * @param instanceIDs    Instance IDs of entities which have to be deleted.
+	 * @param ignoreSiblings Is it required to check whether {@link Measurement}
+	 *                       siblings share a common {@link ContextRoot}s.
+	 * @return Returns the total number of deleted instances.
+	 * @throws AoException         Thrown if unable to delete entities.
+	 * @throws DataAccessException Thrown if unable to query child entities.
+	 */
+	private int delete(EntityType entityType, Collection<String> instanceIDs, boolean ignoreSiblings)
+			throws AoException, DataAccessException {
+		if (instanceIDs.isEmpty()) {
+			return 0;
+		}
+
+		Query query = getQueryService().createQuery().selectID(entityType);
+		for (Relation relation : entityType.getChildRelations()) {
+			if (useAutoDelete && AUTO_DELETABLE.contains(relation.getTarget().getName())) {
+				continue;
+			}
+
+			if (!relation.getTarget().equals(relation.getSource())) {
+				query.join(relation, JoinType.OUTER).selectID(relation.getTarget());
+			}
+		}
+
+		// select attributes containing file links only for entity types
+		// implementing FilesAttachable
+		EntityConfig<?> entityConfig = getModelManager().getEntityConfig(entityType);
+		if (FilesAttachable.class.isAssignableFrom(entityConfig.getEntityClass())) {
+			entityType.getAttributes().stream().filter(a -> a.getValueType().isFileLinkType()).forEach(query::select);
+		}
+
+		EntityType testStep = getModelManager().getEntityType(TestStep.class);
+		EntityType measurement = getModelManager().getEntityType(Measurement.class);
+		EntityType channel = getModelManager().getEntityType(Channel.class);
+
+		EntityType unitUnderTest = getModelManager().getEntityType(ContextRoot.class, ContextType.UNITUNDERTEST);
+		EntityType testSequence = getModelManager().getEntityType(ContextRoot.class, ContextType.TESTSEQUENCE);
+		EntityType testEquipment = getModelManager().getEntityType(ContextRoot.class, ContextType.TESTEQUIPMENT);
+
+		// type in this list must be deleted AFTER this this instances have been
+		// deleted
+		// informative relation is considered as a child relation
+		List<EntityType> delayedDelete = new ArrayList<>();
+
+		// join context roots
+		if (measurement.equals(entityType) || testStep.equals(entityType)) {
+			query.join(entityType.getRelation(unitUnderTest), JoinType.OUTER).selectID(unitUnderTest);
+			query.join(entityType.getRelation(testSequence), JoinType.OUTER).selectID(testSequence);
+			query.join(entityType.getRelation(testEquipment), JoinType.OUTER).selectID(testEquipment);
+			delayedDelete.addAll(Arrays.asList(unitUnderTest, testSequence, testEquipment));
+		}
+
+		// join parameter sets
+		if (measurement.equals(entityType) || channel.equals(entityType)) {
+			EntityType parameterSet = getModelManager().getEntityType(ParameterSet.class);
+			query.join(entityType.getRelation(parameterSet), JoinType.OUTER).selectID(parameterSet);
+		}
+
+		Filter filter = Filter.or().ids(entityType, instanceIDs);
+		entityType.getParentRelations().stream().filter(r -> r.getTarget().equals(entityType))
+				.forEach(relation -> filter.ids(relation, instanceIDs));
+
+		// query child IDs
+		Map<EntityType, Set<String>> children = new HashMap<>();
+		for (Result result : query.fetch(filter)) {
+			// load children of other types
+			result.stream().filter(r -> r.getID() != null && r.getID().length() > 0).forEach(r -> {
+				children.computeIfAbsent(r.getEntityType(), k -> new HashSet<>()).add(r.getID());
+			});
+		}
+
+		// omit context roots with references to not removed measurements
+		if (!ignoreSiblings && measurement.equals(entityType)) {
+			for (EntityType contextRoot : Arrays.asList(unitUnderTest, testSequence, testEquipment)) {
+				Set<String> contextRootIDs = children.getOrDefault(contextRoot, Collections.emptySet());
+				if (contextRootIDs.isEmpty()) {
+					continue;
+				}
+
+				Query contextQuery = getQueryService().createQuery();
+				contextQuery.selectID(contextRoot, measurement);
+				contextQuery.join(contextRoot, measurement);
+
+				for (Result result : contextQuery.fetch(Filter.idsOnly(contextRoot, contextRootIDs))) {
+					if (instanceIDs.contains(result.getRecord(measurement).getID())) {
+						continue;
+					}
+
+					// context root references a not removed measurement
+					contextRootIDs.remove(result.getRecord(contextRoot).getID());
+				}
+			}
+		}
+
+		int amount = 0;
+		// delete real children
+		List<Entry<EntityType, Set<String>>> consideredChildren = new ArrayList<>();
+		for (Entry<EntityType, Set<String>> entry : children.entrySet()) {
+			EntityType childType = entry.getKey();
+			Set<String> childInstanceIDs = entry.getValue();
+			if (entityType.equals(childType)) {
+				childInstanceIDs.removeAll(instanceIDs);
+			} else if (delayedDelete.contains(entry.getKey())) {
+				consideredChildren.add(entry);
+				continue;
+			}
+			amount += delete(entry.getKey(), childInstanceIDs, true);
+		}
+
+		getApplElemAccess().deleteInstances(((ODSEntityType) entityType).getODSID(), toODSIDs(instanceIDs));
+
+		// delete considered children (informative relation)
+		for (Entry<EntityType, Set<String>> entry : consideredChildren) {
+			amount += delete(entry.getKey(), entry.getValue(), true);
+		}
+
+		return amount + instanceIDs.size();
+	}
+
+	/**
+	 * Converts given {@code Collection} of instance IDs to ODS a {@link T_LONGLONG}
+	 * array.
+	 *
+	 * @param instanceIDs The instance IDs.
+	 * @return The corresponding ODS {@code T_LONGLONG[]} is returned.
+	 */
+	private T_LONGLONG[] toODSIDs(Collection<String> instanceIDs) {
+		return instanceIDs.stream().map(ODSConverter::toODSID).toArray(T_LONGLONG[]::new);
+	}
+
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/InsertStatement.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/InsertStatement.java
new file mode 100644
index 0000000..f71916c
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/InsertStatement.java
@@ -0,0 +1,277 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+package org.eclipse.mdm.api.atfxadapter.transaction;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.asam.ods.AIDName;
+import org.asam.ods.AIDNameValueSeqUnitId;
+import org.asam.ods.AoException;
+import org.asam.ods.ElemId;
+import org.asam.ods.T_LONGLONG;
+import org.eclipse.mdm.api.base.adapter.Attribute;
+import org.eclipse.mdm.api.base.adapter.Core;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.adapter.Relation;
+import org.eclipse.mdm.api.base.model.Deletable;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.FileLink;
+import org.eclipse.mdm.api.base.model.Sortable;
+import org.eclipse.mdm.api.base.model.Test;
+import org.eclipse.mdm.api.base.model.TestStep;
+import org.eclipse.mdm.api.base.model.Value;
+import org.eclipse.mdm.api.base.query.Aggregation;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.base.query.Filter;
+import org.eclipse.mdm.api.base.query.Query;
+import org.eclipse.mdm.api.base.query.Record;
+import org.eclipse.mdm.api.base.query.Result;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityFactory;
+import org.eclipse.mdm.api.odsadapter.utils.ODSConverter;
+import org.eclipse.mdm.api.odsadapter.utils.ODSUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Insert statement is used to write new entities and their children.
+ *
+ * @see org.eclipse.mdm.api.odsadapter.transaction.InsertStatement
+ */
+final class InsertStatement extends BaseStatement {
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(InsertStatement.class);
+
+	private final Map<Class<? extends Entity>, List<Entity>> childrenMap = new HashMap<>();
+	private final List<Core> cores = new ArrayList<>();
+	private final Map<String, List<Value>> insertMap = new HashMap<>();
+
+	private final List<FileLink> fileLinkToUpload = new ArrayList<>();
+
+	private final Map<String, SortIndexTestSteps> sortIndexTestSteps = new HashMap<>();
+	private boolean loadSortIndex;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param transaction The owning {@link ATFXTransaction}.
+	 * @param entityType  The associated {@link EntityType}.
+	 */
+	InsertStatement(ATFXTransaction transaction, EntityType entityType) {
+		super(transaction, entityType);
+
+		loadSortIndex = getModelManager().getEntityType(TestStep.class).equals(getEntityType());
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void execute(Collection<Entity> entities) throws AoException, DataAccessException, IOException {
+		entities.stream().map(ODSEntityFactory::extract).forEach(this::readEntityCore);
+		execute();
+	}
+
+	/**
+	 * Executes this statement for given {@link Core}s.
+	 *
+	 * @param cores The processed {@code Core}s.
+	 * @throws AoException         Thrown if the execution fails.
+	 * @throws DataAccessException Thrown if the execution fails.
+	 * @throws IOException         Thrown if a file transfer operation fails.
+	 */
+	public void executeWithCores(Collection<Core> cores) throws AoException, DataAccessException, IOException {
+		cores.forEach(this::readEntityCore);
+		execute();
+	}
+
+	/**
+	 * Uploads new {@link FileLink}s, adjusts sort indices for new {@link TestStep}
+	 * entities and writes collected insertion data at once. Once new entities are
+	 * written their children are created by delegation to the
+	 * {@link ATFXTransaction}.
+	 *
+	 * @throws AoException         Thrown if the execution fails.
+	 * @throws DataAccessException Thrown if the execution fails.
+	 * @throws IOException         Thrown if a file transfer operation fails.
+	 */
+	private void execute() throws AoException, DataAccessException, IOException {
+		List<AIDNameValueSeqUnitId> anvsuList = new ArrayList<>();
+		T_LONGLONG aID = getEntityType().getODSID();
+
+		// TODO tracing progress in this method...
+
+		if (loadSortIndex && !sortIndexTestSteps.isEmpty()) {
+			adjustMissingSortIndices();
+		}
+
+		for (Entry<String, List<Value>> entry : insertMap.entrySet()) {
+			Attribute attribute = getEntityType().getAttribute(entry.getKey());
+
+			AIDNameValueSeqUnitId anvsu = new AIDNameValueSeqUnitId();
+			anvsu.attr = new AIDName(aID, entry.getKey());
+			anvsu.unitId = ODSConverter.toODSLong(0);
+			anvsu.values = ODSConverter.toODSValueSeq(attribute, entry.getValue());
+			anvsuList.add(anvsu);
+		}
+
+		long start = System.currentTimeMillis();
+		ElemId[] elemIds = getApplElemAccess()
+				.insertInstances(anvsuList.toArray(new AIDNameValueSeqUnitId[anvsuList.size()]));
+		for (int i = 0; i < elemIds.length; i++) {
+			cores.get(i).setID(Long.toString(ODSConverter.fromODSLong(elemIds[i].iid)));
+		}
+		long stop = System.currentTimeMillis();
+
+		LOGGER.debug("{} " + getEntityType() + " instances created in {} ms.", elemIds.length, stop - start);
+
+		for (List<Entity> children : childrenMap.values()) {
+			getTransaction().create(children);
+		}
+	}
+
+	/**
+	 * Reads given {@link Core} and prepares its data to be written:
+	 *
+	 * <ul>
+	 * <li>collect new {@link FileLink}s</li>
+	 * <li>trace missing sort indices of TestSteps</li>
+	 * <li>collect property {@link Value}s</li>
+	 * <li>collect foreign key {@code Value}s</li>
+	 * <li>collect child entities for recursive creation</li>
+	 * </ul>
+	 *
+	 * @param core The {@code Core}.
+	 */
+	private void readEntityCore(Core core) {
+		if (!core.getTypeName().equals(getEntityType().getName())) {
+			throw new IllegalArgumentException("Entity core '" + core.getTypeName()
+					+ "' is incompatible with current insert statement for entity type '" + getEntityType() + "'.");
+		}
+
+		cores.add(core);
+
+		if (loadSortIndex) {
+			if ((Integer) core.getValues().get(Sortable.ATTR_SORT_INDEX).extract() < 0) {
+				sortIndexTestSteps.computeIfAbsent(core.getPermanentStore().get(Test.class).getID(),
+						k -> new SortIndexTestSteps()).testStepCores.add(core);
+			}
+		}
+
+		// add all entity values
+		for (Value value : core.getAllValues().values()) {
+			insertMap.computeIfAbsent(value.getName(), k -> new ArrayList<>()).add(value);
+		}
+
+		// collect file links
+		fileLinkToUpload.addAll(core.getAddedFileLinks());
+
+		// define "empty" values for informative relations
+		for (Relation relation : getEntityType().getInfoRelations()) {
+			insertMap.computeIfAbsent(relation.getName(), k -> new ArrayList<>()).add(relation.createValue());
+		}
+
+		// define "empty" values for parent relations
+		for (Relation relation : getEntityType().getParentRelations()) {
+			insertMap.computeIfAbsent(relation.getName(), k -> new ArrayList<>()).add(relation.createValue());
+		}
+
+		// replace "empty" relation values with corresponding instance IDs
+		setRelationIDs(core.getMutableStore().getCurrent());
+		setRelationIDs(core.getPermanentStore().getCurrent());
+
+		for (Entry<Class<? extends Deletable>, List<? extends Deletable>> entry : core.getChildrenStore().getCurrent()
+				.entrySet()) {
+			childrenMap.computeIfAbsent(entry.getKey(), k -> new ArrayList<>()).addAll(entry.getValue());
+		}
+
+		getTransaction().addModified(core);
+		getTransaction().addCreated(core);
+	}
+
+	/**
+	 * Overwrites empty foreign key {@link Value} containers.
+	 *
+	 * @param relatedEntities The related {@link Entity}s.
+	 */
+	private void setRelationIDs(Collection<Entity> relatedEntities) {
+		for (Entity relatedEntity : relatedEntities) {
+			if (!ODSUtils.isValidID(relatedEntity.getID())) {
+				throw new IllegalArgumentException("Related entity must be a persited entity.");
+			}
+
+			Relation relation = getEntityType().getRelation(getModelManager().getEntityType(relatedEntity));
+			List<Value> relationValues = insertMap.get(relation.getName());
+			if (relationValues == null) {
+				throw new IllegalStateException("Relation '" + relation + "' is incompatible with insert statement "
+						+ "for entity type '" + getEntityType() + "'");
+			}
+			relationValues.get(relationValues.size() - 1).set(relatedEntity.getID());
+		}
+	}
+
+	/**
+	 * Adjusts missing sort indices for {@link TestStep}s by querying last used max
+	 * sort index.
+	 *
+	 * @throws DataAccessException Thrown if unable to query used sort indices.
+	 */
+	private void adjustMissingSortIndices() throws DataAccessException {
+		EntityType testStep = getEntityType();
+		EntityType test = getModelManager().getEntityType(Test.class);
+		Relation parentRelation = testStep.getRelation(test);
+
+		Attribute attrSortIndex = testStep.getAttribute(Sortable.ATTR_SORT_INDEX);
+		Query query = getQueryService().createQuery().select(parentRelation.getAttribute())
+				.select(attrSortIndex, Aggregation.MAXIMUM).group(parentRelation.getAttribute());
+
+		Filter filter = Filter.idsOnly(parentRelation, sortIndexTestSteps.keySet());
+		for (Result result : query.fetch(filter)) {
+			Record record = result.getRecord(testStep);
+			int sortIndex = result.getValue(attrSortIndex, Aggregation.MAXIMUM).extract();
+			sortIndexTestSteps.remove(record.getID(parentRelation).get()).setIndices(sortIndex + 1);
+		}
+
+		// start at 1 for all remaining
+		sortIndexTestSteps.values().forEach(tss -> tss.setIndices(0));
+	}
+
+	/**
+	 * Utility class to write missing sort index of new {@link TestStep}s.
+	 */
+	private static final class SortIndexTestSteps {
+
+		private List<Core> testStepCores = new ArrayList<>();
+
+		/**
+		 * Assigns sort indices to {@link Core}s starting at given index.
+		 *
+		 * @param startIndex The start index.
+		 */
+		private void setIndices(int startIndex) {
+			int index = startIndex;
+			for (Core core : testStepCores) {
+				core.getValues().get(Sortable.ATTR_SORT_INDEX).set(index++);
+			}
+		}
+
+	}
+
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/UpdateStatement.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/UpdateStatement.java
new file mode 100644
index 0000000..c8b0a28
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/UpdateStatement.java
@@ -0,0 +1,225 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+package org.eclipse.mdm.api.atfxadapter.transaction;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
+
+import org.asam.ods.AIDName;
+import org.asam.ods.AIDNameValueSeqUnitId;
+import org.asam.ods.AoException;
+import org.asam.ods.T_LONGLONG;
+import org.eclipse.mdm.api.base.adapter.Attribute;
+import org.eclipse.mdm.api.base.adapter.Core;
+import org.eclipse.mdm.api.base.adapter.EntityStore;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.adapter.Relation;
+import org.eclipse.mdm.api.base.model.Deletable;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.FileLink;
+import org.eclipse.mdm.api.base.model.Value;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.odsadapter.query.ODSEntityFactory;
+import org.eclipse.mdm.api.odsadapter.utils.ODSConverter;
+import org.eclipse.mdm.api.odsadapter.utils.ODSUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Insert statement is used to update entities and their children.
+ *
+ * @see org.eclipse.mdm.api.odsadapter.transaction.UpdateStatement
+ */
+final class UpdateStatement extends BaseStatement {
+
+	private static final Logger LOGGER = LoggerFactory.getLogger(UpdateStatement.class);
+
+	private final Map<Class<? extends Entity>, List<Entity>> childrenToCreate = new HashMap<>();
+	private final Map<Class<? extends Entity>, List<Entity>> childrenToUpdate = new HashMap<>();
+	private final Map<Class<? extends Deletable>, List<Deletable>> childrenToRemove = new HashMap<>();
+	private Map<String, List<Value>> updateMap = new HashMap<>();
+
+	private final List<String> nonUpdatableRelationNames;
+	private final boolean ignoreChildren;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param transaction    The owning {@link ATFXTransaction}.
+	 * @param entityType     The associated {@link EntityType}.
+	 * @param ignoreChildren If {@code true}, then child entities won't be
+	 *                       processed.
+	 */
+	UpdateStatement(ATFXTransaction transaction, EntityType entityType, boolean ignoreChildren) {
+		super(transaction, entityType);
+
+		nonUpdatableRelationNames = entityType.getInfoRelations().stream().map(Relation::getName)
+				.collect(Collectors.toList());
+		this.ignoreChildren = ignoreChildren;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void execute(Collection<Entity> entities) throws AoException, DataAccessException, IOException {
+		for (Entity entity : entities) {
+			readEntityCore(ODSEntityFactory.extract(entity));
+		}
+
+		// TODO tracing progress in this method...
+
+		List<AIDNameValueSeqUnitId> anvsuList = new ArrayList<>();
+		T_LONGLONG aID = getEntityType().getODSID();
+
+		for (Entry<String, List<Value>> entry : updateMap.entrySet()) {
+			if (nonUpdatableRelationNames.contains(entry.getKey())) {
+				// skip "empty" informative relation sequence
+				continue;
+			}
+
+			Attribute attribute = getEntityType().getAttribute(entry.getKey());
+
+			AIDNameValueSeqUnitId anvsu = new AIDNameValueSeqUnitId();
+			anvsu.attr = new AIDName(aID, entry.getKey());
+			anvsu.unitId = ODSConverter.toODSLong(0);
+			anvsu.values = ODSConverter.toODSValueSeq(attribute, entry.getValue());
+			anvsuList.add(anvsu);
+		}
+
+		long start = System.currentTimeMillis();
+		getApplElemAccess().updateInstances(anvsuList.toArray(new AIDNameValueSeqUnitId[anvsuList.size()]));
+		long stop = System.currentTimeMillis();
+
+		LOGGER.debug("{} " + getEntityType() + " instances updated in {} ms.", entities.size(), stop - start);
+
+		// delete first to make sure naming collisions do not occur!
+		for (List<Deletable> children : childrenToRemove.values()) {
+			getTransaction().delete(children);
+		}
+		for (List<Entity> children : childrenToCreate.values()) {
+			getTransaction().create(children);
+		}
+		for (List<Entity> children : childrenToUpdate.values()) {
+			getTransaction().update(children);
+		}
+	}
+
+	/**
+	 * Reads given {@link Core} and prepares its data to be written:
+	 *
+	 * <ul>
+	 * <li>collect new and removed {@link FileLink}s</li>
+	 * <li>collect property {@link Value}s</li>
+	 * <li>collect foreign key {@code Value}s</li>
+	 * <li>collect child entities for recursive create/update/delete</li>
+	 * </ul>
+	 *
+	 * @param core The {@code Core}.
+	 * @throws DataAccessException Thrown in case of errors.
+	 */
+	private void readEntityCore(Core core) throws DataAccessException {
+		if (!core.getTypeName().equals(getEntityType().getName())) {
+			throw new IllegalArgumentException("Entity core '" + core.getTypeName()
+					+ "' is incompatible with current update statement for entity type '" + getEntityType() + "'.");
+		}
+
+		// add all entity values
+		for (Value value : core.getAllValues().values()) {
+			updateMap.computeIfAbsent(value.getName(), k -> new ArrayList<>()).add(value);
+		}
+
+		updateMap.computeIfAbsent(getEntityType().getIDAttribute().getName(), k -> new ArrayList<>())
+				.add(getEntityType().getIDAttribute().createValue(core.getID()));
+
+		// define "empty" values for ALL informative relations
+		for (Relation relation : getEntityType().getInfoRelations()) {
+			updateMap.computeIfAbsent(relation.getName(), k -> new ArrayList<>()).add(relation.createValue());
+		}
+
+		// preserve "empty" relation values for removed related entities
+		EntityStore mutableStore = core.getMutableStore();
+		mutableStore.getRemoved().stream().map(e -> getModelManager().getEntityType(e))
+				.map(getEntityType()::getRelation).map(Relation::getName).forEach(nonUpdatableRelationNames::remove);
+
+		// replace "empty" relation values with corresponding instance IDs
+		setRelationIDs(mutableStore.getCurrent());
+
+		collectChildEntities(core);
+
+		getTransaction().addModified(core);
+	}
+
+	/**
+	 * Collects child entities for recursive processing.
+	 *
+	 * @param core The {@link Core}.
+	 */
+	private void collectChildEntities(Core core) {
+		if (ignoreChildren) {
+			return;
+		}
+
+		for (Entry<Class<? extends Deletable>, List<? extends Deletable>> entry : core.getChildrenStore().getCurrent()
+				.entrySet()) {
+			Map<Boolean, List<Entity>> partition = entry.getValue().stream()
+					.collect(Collectors.partitioningBy(e -> ODSUtils.isValidID(e.getID())));
+			List<Entity> virtualEntities = partition.get(Boolean.FALSE);
+			if (virtualEntities != null && !virtualEntities.isEmpty()) {
+				childrenToCreate.computeIfAbsent(entry.getKey(), k -> new ArrayList<>()).addAll(virtualEntities);
+			}
+			List<Entity> existingEntities = partition.get(Boolean.TRUE);
+			if (existingEntities != null && !existingEntities.isEmpty()) {
+				childrenToUpdate.computeIfAbsent(entry.getKey(), k -> new ArrayList<>()).addAll(existingEntities);
+			}
+		}
+
+		for (Entry<Class<? extends Deletable>, List<? extends Deletable>> entry : core.getChildrenStore().getRemoved()
+				.entrySet()) {
+			List<Deletable> toDelete = entry.getValue().stream().filter(e -> ODSUtils.isValidID(e.getID()))
+					.collect(Collectors.toList());
+			childrenToRemove.computeIfAbsent(entry.getKey(), k -> new ArrayList<>()).addAll(toDelete);
+		}
+	}
+
+	/**
+	 * Overwrites empty foreign key {@link Value} containers.
+	 *
+	 * @param relatedEntities The related {@link Entity}s.
+	 */
+	private void setRelationIDs(Collection<Entity> relatedEntities) {
+		for (Entity relatedEntity : relatedEntities) {
+			if (!ODSUtils.isValidID(relatedEntity.getID())) {
+				throw new IllegalArgumentException("Related entity must be a persited entity.");
+			}
+
+			Relation relation = getEntityType().getRelation(getModelManager().getEntityType(relatedEntity));
+			List<Value> relationValues = updateMap.get(relation.getName());
+			if (relationValues == null) {
+				throw new IllegalStateException("Relation '" + relation
+						+ "' is incompatible with update statement for entity type '" + getEntityType() + "'");
+			}
+			relationValues.get(relationValues.size() - 1).set(relatedEntity.getID());
+			nonUpdatableRelationNames.remove(relation.getName());
+		}
+	}
+
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/WriteRequestHandler.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/WriteRequestHandler.java
new file mode 100644
index 0000000..61cd5a0
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/main/java/org/eclipse/mdm/api/atfxadapter/transaction/WriteRequestHandler.java
@@ -0,0 +1,147 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+
+package org.eclipse.mdm.api.atfxadapter.transaction;
+
+import java.io.IOException;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.IntStream;
+
+import org.asam.ods.AoException;
+import org.eclipse.mdm.api.base.adapter.Core;
+import org.eclipse.mdm.api.base.adapter.DefaultCore;
+import org.eclipse.mdm.api.base.adapter.EntityType;
+import org.eclipse.mdm.api.base.massdata.WriteRequest;
+import org.eclipse.mdm.api.base.model.Entity;
+import org.eclipse.mdm.api.base.model.Value;
+import org.eclipse.mdm.api.base.model.ValueType;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.odsadapter.utils.ODSConverter;
+
+/**
+ * Writes mass data specified in {@link WriteRequest}s.
+ *
+ * @see org.eclipse.mdm.api.odsadapter.transaction.WriteRequestHandler
+ */
+public final class WriteRequestHandler {
+
+	private static final String AE_LC_ATTR_INDEPENDENT = "IndependentFlag";
+	private static final String AE_LC_ATTR_REPRESENTATION = "SequenceRepresentation";
+	private static final String AE_LC_ATTR_PARAMETERS = "GenerationParameters";
+	private static final String AE_LC_ATTR_RAWDATATYPE = "RawDatatype";
+	private static final String AE_LC_ATTR_AXISTYPE = "axistype";
+	private static final String AE_LC_ATTR_VALUES = "Values";
+	private static final String AE_LC_ATTR_FLAGS = "Flags";
+	private static final String AE_LC_ATTR_GLOBAL_FLAG = "GlobalFlag";
+
+	private final List<Core> cores = new ArrayList<>();
+	private final EntityType localColumnEntityType;
+	private final InsertStatement insertStatement;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param transaction The owning {@link ATFXTransaction}.
+	 */
+	public WriteRequestHandler(ATFXTransaction transaction) {
+		localColumnEntityType = transaction.getModelManager().getEntityType("LocalColumn");
+		insertStatement = new InsertStatement(transaction, localColumnEntityType);
+	}
+
+	/**
+	 * Adds given {@link WriteRequest} to be processed.
+	 *
+	 * @param writeRequest The {@code WriteRequest}.
+	 */
+	public void addRequest(WriteRequest writeRequest) {
+		cores.add(createCore(writeRequest));
+	}
+
+	/**
+	 * Imports given mass data configurations.
+	 *
+	 * @throws AoException         Thrown if the execution fails.
+	 * @throws DataAccessException Thrown if the execution fails.
+	 * @throws IOException         Thrown if a file transfer operation fails.
+	 */
+	public void execute() throws AoException, DataAccessException, IOException {
+		insertStatement.executeWithCores(cores);
+	}
+
+	/**
+	 * Reads given {@link WriteRequest} and prepares a corresponding {@link Core}
+	 * for import.
+	 *
+	 * @param writeRequest The mass data configuration.
+	 * @return The created {@code Core} is returned.
+	 */
+	private Core createCore(WriteRequest writeRequest) {
+		Core core = new DefaultCore(localColumnEntityType);
+
+		core.getPermanentStore().set(writeRequest.getChannelGroup());
+		core.getMutableStore().set(writeRequest.getChannel());
+
+		Map<String, Value> values = core.getValues();
+		values.get(Entity.ATTR_NAME).set(writeRequest.getChannel().getName());
+		values.get(Entity.ATTR_MIMETYPE).set("application/x-asam.aolocalcolumn");
+		values.get(AE_LC_ATTR_INDEPENDENT).set((short) (writeRequest.isIndependent() ? 1 : 0));
+		values.get(AE_LC_ATTR_RAWDATATYPE).set(writeRequest.getRawScalarType());
+		values.get(AE_LC_ATTR_REPRESENTATION).set(writeRequest.getSequenceRepresentation());
+		values.get(AE_LC_ATTR_AXISTYPE).set(writeRequest.getAxisType());
+		values.get(AE_LC_ATTR_PARAMETERS).set(writeRequest.getGenerationParameters());
+
+		if (writeRequest.hasValues()) {
+			ValueType<?> valueType = writeRequest.getRawScalarType().toValueType();
+			String unitName = writeRequest.getChannel().getUnit().getName();
+			values.put(AE_LC_ATTR_VALUES,
+					valueType.create(AE_LC_ATTR_VALUES, unitName, true, writeRequest.getValues()));
+
+			// OpenATFX issue: For "implicit" columns, if no value for the
+			// GenerationParameters attribute is present,
+			// it is attempted to transfer the local column values (through which the
+			// generation parameters are
+			// available in these cases) to the GenerationParameters attribute without
+			// converting them to the
+			// correct DS_DOUBLE data type first (unless it is a DOUBLE or LONG column),
+			// resulting in an exception.
+			// Hence, supply correctly converted generation parameters as a workaround:
+			if (writeRequest.getSequenceRepresentation().isImplicit()) {
+				Object genParamValues = writeRequest.getValues();
+				double[] genParamD = new double[Array.getLength(genParamValues)];
+				IntStream.range(0, genParamD.length)
+						.forEach(i -> genParamD[i] = ((Number) Array.get(genParamValues, i)).doubleValue());
+				values.get(AE_LC_ATTR_PARAMETERS).set(genParamD);
+			}
+
+			// flags
+			if (writeRequest.areAllValid()) {
+				values.get(AE_LC_ATTR_GLOBAL_FLAG).set((short) 15);
+			} else {
+				short[] flags = ODSConverter.toODSValidFlagSeq(writeRequest.getFlags());
+				values.get(AE_LC_ATTR_FLAGS).set(flags);
+			}
+		} else if (writeRequest.hasExternalComponents()) {
+			// TODO
+			throw new UnsupportedOperationException("NOT YET IMPLEMENTED.");
+		} else {
+			throw new IllegalStateException("Given write request neither has measured values nor external components");
+		}
+
+		return core;
+	}
+
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdaperTest.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdaperTest.java
new file mode 100644
index 0000000..10aec8a
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdaperTest.java
@@ -0,0 +1,225 @@
+/********************************************************************************

+ * Copyright (c) 2015-2020 Contributors to the Eclipse Foundation

+ *

+ * See the NOTICE file(s) distributed with this work for additional

+ * information regarding copyright ownership.

+ *

+ * This program and the accompanying materials are made available under the

+ * terms of the Eclipse Public License v. 2.0 which is available at

+ * http://www.eclipse.org/legal/epl-2.0.

+ *

+ * SPDX-License-Identifier: EPL-2.0

+ *

+ ********************************************************************************/
+package org.eclipse.mdm.api.atfxadapter;

+

+import static org.assertj.core.api.Assertions.assertThat;

+

+import java.util.List;

+import java.util.Map;

+

+import org.assertj.core.api.Assertions;

+import org.assertj.core.groups.Tuple;

+import org.eclipse.mdm.api.base.ConnectionException;

+import org.eclipse.mdm.api.base.massdata.ReadRequest;

+import org.eclipse.mdm.api.base.model.Channel;

+import org.eclipse.mdm.api.base.model.ChannelGroup;

+import org.eclipse.mdm.api.base.model.ContextRoot;

+import org.eclipse.mdm.api.base.model.ContextType;

+import org.eclipse.mdm.api.base.model.FileLink;

+import org.eclipse.mdm.api.base.model.MeasuredValues;

+import org.eclipse.mdm.api.base.model.Measurement;

+import org.eclipse.mdm.api.base.model.MimeType;

+import org.eclipse.mdm.api.base.model.Test;

+import org.eclipse.mdm.api.base.model.TestStep;

+import org.eclipse.mdm.api.base.model.ValueType;

+import org.eclipse.mdm.api.base.query.DataAccessException;

+import org.eclipse.mdm.api.dflt.ApplicationContext;

+import org.eclipse.mdm.api.dflt.EntityManager;

+import org.eclipse.mdm.api.dflt.model.Project;

+import org.junit.AfterClass;

+import org.junit.BeforeClass;

+

+import com.google.common.collect.ImmutableMap;

+

+public class AtfxAdaperTest {

+

+	public static final String ATFX_FILE = "src/test/resources/Right_Acc.atfx";

+

+	public static ApplicationContext context;

+

+	@BeforeClass

+	public static void init() throws ConnectionException {

+		Map<String, String> map = ImmutableMap.of("atfxfile", ATFX_FILE, "freetext.active", "false");

+

+		context = new ATFXContextFactory().connect(map);

+	}

+

+	@AfterClass

+	public static void teardown() throws ConnectionException {

+		context.close();

+	}

+

+	@org.junit.Test

+	public void testLoadLoggedOnUser() {

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.loadLoggedOnUser()).isNotNull();

+		;

+	}

+

+	@org.junit.Test

+	public void testLoadEnvironment() {

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.loadEnvironment().getName()).isEqualTo("MDM");

+	}

+

+	@org.junit.Test

+	public void testLoadAllProjects() {

+

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.loadAll(Project.class)).extracting(Project::getName).contains("PMV Model P");

+	}

+

+	@org.junit.Test

+	public void testLoadAllTests() {

+

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.loadAll(Test.class)).extracting(Test::getName).contains("PBN_UNECE_R51_20140314170907");

+	}

+

+	@org.junit.Test

+	public void testLoadAllTestSteps() {

+

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.loadAll(TestStep.class)).extracting(TestStep::getName).contains("PBN_UNECE_R51_Right_Acc_70");

+	}

+

+	@org.junit.Test

+	public void testLoadTestStepWithExtRef() {

+

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.load(TestStep.class, "1").getFileLinks())

+				.extracting(FileLink::getFileName, FileLink::getDescription, FileLink::getMimeType)

+				.contains(Tuple.tuple("extref.txt", "a simple text file", new MimeType("text/plain")),

+						Tuple.tuple("openmdm.png", "openMDM Logo", new MimeType("image/png")));

+	}

+

+	@org.junit.Test

+	public void testLoadAllMeasurements() {

+

+		EntityManager em = context.getEntityManager().get();

+		assertThat(em.loadAll(Measurement.class)).extracting(Measurement::getName).contains("Channel");

+	}

+

+	@org.junit.Test

+	public void testLoadParent() {

+

+		EntityManager em = context.getEntityManager().get();

+		Measurement meaResult = em.loadAll(Measurement.class).get(0);

+

+		assertThat(em.loadParent(meaResult, TestStep.class).get()).extracting(TestStep::getName)

+				.contains("PBN_UNECE_R51_Right_Acc_70");

+	}

+

+	@org.junit.Test

+	public void testLoadChildren() {

+

+		EntityManager em = context.getEntityManager().get();

+		Test test = em.loadAll(Test.class).get(0);

+

+		assertThat(em.loadChildren(test, TestStep.class).get(0)).extracting(TestStep::getName)

+				.contains("PBN_UNECE_R51_Right_Acc_70");

+	}

+

+	@org.junit.Test

+	public void testLoadChildrenForChannelGroup() {

+

+		EntityManager em = context.getEntityManager().get();

+		ChannelGroup channelGroup = em.loadAll(ChannelGroup.class).get(0);

+

+		assertThat(em.loadChildren(channelGroup, Channel.class)).extracting(Channel::getName).contains("X-Axis",

+				"CHANNEL01", "CHANNEL02", "CHANNEL03", "CHANNEL04", "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08",

+				"CHANNEL09", "CHANNEL10");

+	}

+

+	@org.junit.Test

+	public void testLoadChildrenForChannelGroupWithPattern() {

+

+		EntityManager em = context.getEntityManager().get();

+		ChannelGroup channelGroup = em.loadAll(ChannelGroup.class).get(0);

+

+		Assertions.assertThatThrownBy(() -> em.loadChildren(channelGroup, Channel.class, "*Axis"))

+				.isInstanceOf(DataAccessException.class).hasMessageContaining("not supported");

+

+		// assertThat(em.loadChildren(channelGroup, Channel.class,

+		// "*Axis")).extracting(Channel::getName)

+		// .contains("X-Axis", "CHANNEL01", "CHANNEL02", "CHANNEL03", "CHANNEL04",

+		// "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08", "CHANNEL09",

+		// "CHANNEL10");

+	}

+

+	@org.junit.Test

+	public void testLoadParentForChannel() {

+

+		EntityManager em = context.getEntityManager().get();

+		Channel channel = em.loadAll(Channel.class).get(0);

+

+		assertThat(em.loadParent(channel, ChannelGroup.class).get()).extracting(ChannelGroup::getName)

+				.contains("Channel");

+	}

+

+	@org.junit.Test

+	public void testLoadAllChannelGroups() {

+

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.loadAll(ChannelGroup.class)).extracting(ChannelGroup::getName).contains("Channel");

+	}

+

+	@org.junit.Test

+	public void testLoadAllChannels() {

+

+		EntityManager em = context.getEntityManager().get();

+

+		assertThat(em.loadAll(Channel.class)).extracting(Channel::getName).contains("X-Axis", "CHANNEL01", "CHANNEL02",

+				"CHANNEL03", "CHANNEL04", "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08", "CHANNEL09", "CHANNEL10");

+	}

+

+	@org.junit.Test

+	public void testLoadAllContext() {

+

+		EntityManager em = context.getEntityManager().get();

+

+		List<Measurement> measurements = em.loadAll(Measurement.class);

+		assertThat(measurements).hasSize(1);

+

+		Map<ContextType, ContextRoot> context = em.loadContexts(measurements.get(0));

+		assertThat(context.get(ContextType.UNITUNDERTEST).getContextComponents()).extracting(cc -> cc.getName())

+				.contains("FL_tyre");

+

+		assertThat(context.get(ContextType.UNITUNDERTEST).getContextComponents().get(0).getValues()).hasSize(7)

+				.containsEntry("Name", ValueType.STRING.create("Name", "FL_tyre"))

+				.containsEntry("axle", ValueType.SHORT.create("axle", (short) 1))

+				.containsEntry("side", ValueType.STRING.create("side", "Left"))

+				.containsEntry("manufacturer", ValueType.STRING.create("manufacturer", "Tunnelsand"));

+

+	}

+

+	@org.junit.Test

+	public void testReadMeasuredValues() {

+		EntityManager em = context.getEntityManager().get();

+

+		List<ChannelGroup> listCg = em.loadAll(ChannelGroup.class);

+		assertThat(listCg).hasSize(1);

+

+		List<MeasuredValues> values = em

+				.readMeasuredValues(ReadRequest.create(listCg.get(0)).allChannels().allValues());

+		assertThat(values).extracting(mv -> mv.getLength()).containsOnly(3001);

+	}

+}

diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdapterTest.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdapterTest.java
new file mode 100644
index 0000000..2ded697
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdapterTest.java
@@ -0,0 +1,211 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+package org.eclipse.mdm.api.atfxadapter;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.List;
+import java.util.Map;
+
+import org.assertj.core.api.Assertions;
+import org.eclipse.mdm.api.base.ConnectionException;
+import org.eclipse.mdm.api.base.massdata.ReadRequest;
+import org.eclipse.mdm.api.base.model.Channel;
+import org.eclipse.mdm.api.base.model.ChannelGroup;
+import org.eclipse.mdm.api.base.model.ContextRoot;
+import org.eclipse.mdm.api.base.model.ContextType;
+import org.eclipse.mdm.api.base.model.MeasuredValues;
+import org.eclipse.mdm.api.base.model.Measurement;
+import org.eclipse.mdm.api.base.model.Test;
+import org.eclipse.mdm.api.base.model.TestStep;
+import org.eclipse.mdm.api.base.model.ValueType;
+import org.eclipse.mdm.api.base.query.DataAccessException;
+import org.eclipse.mdm.api.dflt.ApplicationContext;
+import org.eclipse.mdm.api.dflt.EntityManager;
+import org.eclipse.mdm.api.dflt.model.Project;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+
+import com.google.common.collect.ImmutableMap;
+
+public class AtfxAdapterTest {
+
+	public static final String ATFX_FILE = "src/test/resources/Right_Acc.atfx";
+
+	public static ApplicationContext context;
+
+	@BeforeClass
+	public static void init() throws ConnectionException {
+		Map<String, String> map = ImmutableMap.of("atfxfile", ATFX_FILE, "freetext.active", "false");
+
+		context = new ATFXContextFactory().connect(map);
+	}
+
+	@AfterClass
+	public static void teardown() throws ConnectionException {
+		context.close();
+	}
+
+	@org.junit.Test
+	public void testLoadLoggedOnUser() {
+		EntityManager em = context.getEntityManager().get();
+
+		assertThat(em.loadLoggedOnUser()).isNotNull();
+		;
+	}
+
+	@org.junit.Test
+	public void testLoadEnvironment() {
+		EntityManager em = context.getEntityManager().get();
+
+		assertThat(em.loadEnvironment().getName()).isEqualTo("MDM");
+	}
+
+	@org.junit.Test
+	public void testLoadAllProjects() {
+
+		EntityManager em = context.getEntityManager().get();
+
+		assertThat(em.loadAll(Project.class)).extracting(Project::getName).contains("PMV Model P");
+	}
+
+	@org.junit.Test
+	public void testLoadAllTests() {
+
+		EntityManager em = context.getEntityManager().get();
+
+		assertThat(em.loadAll(Test.class)).extracting(Test::getName).contains("PBN_UNECE_R51_20140314170907");
+	}
+
+	@org.junit.Test
+	public void testLoadAllTestSteps() {
+
+		EntityManager em = context.getEntityManager().get();
+
+		assertThat(em.loadAll(TestStep.class)).extracting(TestStep::getName).contains("PBN_UNECE_R51_Right_Acc_70");
+	}
+
+	@org.junit.Test
+	public void testLoadAllMeasurements() {
+
+		EntityManager em = context.getEntityManager().get();
+		assertThat(em.loadAll(Measurement.class)).extracting(Measurement::getName).contains("Channel");
+	}
+
+	@org.junit.Test
+	public void testLoadParent() {
+
+		EntityManager em = context.getEntityManager().get();
+		Measurement meaResult = em.loadAll(Measurement.class).get(0);
+
+		assertThat(em.loadParent(meaResult, TestStep.class).get()).extracting(TestStep::getName)
+				.contains("PBN_UNECE_R51_Right_Acc_70");
+	}
+
+	@org.junit.Test
+	public void testLoadChildren() {
+
+		EntityManager em = context.getEntityManager().get();
+		Test test = em.loadAll(Test.class).get(0);
+
+		assertThat(em.loadChildren(test, TestStep.class).get(0)).extracting(TestStep::getName)
+				.contains("PBN_UNECE_R51_Right_Acc_70");
+	}
+
+	@org.junit.Test
+	public void testLoadChildrenForChannelGroup() {
+
+		EntityManager em = context.getEntityManager().get();
+		ChannelGroup channelGroup = em.loadAll(ChannelGroup.class).get(0);
+
+		assertThat(em.loadChildren(channelGroup, Channel.class)).extracting(Channel::getName).contains("X-Axis",
+				"CHANNEL01", "CHANNEL02", "CHANNEL03", "CHANNEL04", "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08",
+				"CHANNEL09", "CHANNEL10");
+	}
+
+	@org.junit.Test
+	public void testLoadChildrenForChannelGroupWithPattern() {
+
+		EntityManager em = context.getEntityManager().get();
+		ChannelGroup channelGroup = em.loadAll(ChannelGroup.class).get(0);
+
+		Assertions.assertThatThrownBy(() -> em.loadChildren(channelGroup, Channel.class, "*Axis"))
+				.isInstanceOf(DataAccessException.class).hasMessageContaining("not supported");
+
+		// assertThat(em.loadChildren(channelGroup, Channel.class,
+		// "*Axis")).extracting(Channel::getName)
+		// .contains("X-Axis", "CHANNEL01", "CHANNEL02", "CHANNEL03", "CHANNEL04",
+		// "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08", "CHANNEL09",
+		// "CHANNEL10");
+	}
+
+	@org.junit.Test
+	public void testLoadParentForChannel() {
+
+		EntityManager em = context.getEntityManager().get();
+		Channel channel = em.loadAll(Channel.class).get(0);
+
+		assertThat(em.loadParent(channel, ChannelGroup.class).get()).extracting(ChannelGroup::getName)
+				.contains("Channel");
+	}
+
+	@org.junit.Test
+	public void testLoadAllChannelGroups() {
+
+		EntityManager em = context.getEntityManager().get();
+
+		assertThat(em.loadAll(ChannelGroup.class)).extracting(ChannelGroup::getName).contains("Channel");
+	}
+
+	@org.junit.Test
+	public void testLoadAllChannels() {
+
+		EntityManager em = context.getEntityManager().get();
+
+		assertThat(em.loadAll(Channel.class)).extracting(Channel::getName).contains("X-Axis", "CHANNEL01", "CHANNEL02",
+				"CHANNEL03", "CHANNEL04", "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08", "CHANNEL09", "CHANNEL10");
+	}
+
+	@org.junit.Test
+	public void testLoadAllContext() {
+
+		EntityManager em = context.getEntityManager().get();
+
+		List<Measurement> measurements = em.loadAll(Measurement.class);
+		assertThat(measurements).hasSize(1);
+
+		Map<ContextType, ContextRoot> context = em.loadContexts(measurements.get(0));
+		assertThat(context.get(ContextType.UNITUNDERTEST).getContextComponents()).extracting(cc -> cc.getName())
+				.contains("FL_tyre");
+
+		assertThat(context.get(ContextType.UNITUNDERTEST).getContextComponents().get(0).getValues()).hasSize(7)
+				.containsEntry("Name", ValueType.STRING.create("Name", "FL_tyre"))
+				.containsEntry("axle", ValueType.SHORT.create("axle", (short) 1))
+				.containsEntry("side", ValueType.STRING.create("side", "Left"))
+				.containsEntry("manufacturer", ValueType.STRING.create("manufacturer", "Tunnelsand"));
+
+	}
+
+	@org.junit.Test
+	public void testReadMeasuredValues() {
+		EntityManager em = context.getEntityManager().get();
+
+		List<ChannelGroup> listCg = em.loadAll(ChannelGroup.class);
+		assertThat(listCg).hasSize(1);
+
+		List<MeasuredValues> values = em
+				.readMeasuredValues(ReadRequest.create(listCg.get(0)).allChannels().allValues());
+		assertThat(values).extracting(mv -> mv.getLength()).containsOnly(3001);
+	}
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdapterWriteTest.java b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdapterWriteTest.java
new file mode 100644
index 0000000..182a5e5
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/java/org/eclipse/mdm/api/atfxadapter/AtfxAdapterWriteTest.java
@@ -0,0 +1,69 @@
+/********************************************************************************
+ * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ ********************************************************************************/
+package org.eclipse.mdm.api.atfxadapter;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Map;
+
+import org.eclipse.mdm.api.base.ConnectionException;
+import org.eclipse.mdm.api.base.Transaction;
+import org.eclipse.mdm.api.base.model.ContextType;
+import org.eclipse.mdm.api.dflt.ApplicationContext;
+import org.eclipse.mdm.api.dflt.model.CatalogComponent;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.rules.TemporaryFolder;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.io.Files;
+
+public class AtfxAdapterWriteTest {
+
+	public static final String ATFX_FILE = "src/test/resources/mdm_complete_application_model_500.xml";
+
+	public static ApplicationContext context;
+
+	@ClassRule
+	public static TemporaryFolder tmpFolder = new TemporaryFolder();
+
+	@BeforeClass
+	public static void init() throws ConnectionException, IOException {
+
+		File f = tmpFolder.newFile("open.atfx");
+		Files.copy(new File(ATFX_FILE), f);
+
+		Map<String, String> map = ImmutableMap.of("atfxfile", f.getAbsolutePath(), "freetext.active", "false",
+				"includeCatalog", "true");
+
+		context = new ATFXContextFactory().connect(map);
+	}
+
+	@AfterClass
+	public static void teardown() throws ConnectionException {
+		context.close();
+	}
+
+	@org.junit.Test
+	public void test() {
+		CatalogComponent catComp = context.getEntityFactory().get().createCatalogComponent(ContextType.UNITUNDERTEST,
+				"MyComp");
+
+		Transaction t = context.getEntityManager().get().startTransaction();
+		t.create(Arrays.asList(catComp));
+		t.commit();
+	}
+}
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/Right_Acc.atfx b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/Right_Acc.atfx
new file mode 100644
index 0000000..f9594cc
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/Right_Acc.atfx
@@ -0,0 +1,3509 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<atfx_file version="atfx_file: V1.2.0" xmlns="http://www.asam.net/ODS/5.2.0/Schema">
+  <documentation>
+    <exported_by>openATFX</exported_by>
+    <exporter>openATFX</exporter>
+    <export_date_time>20140317155010</export_date_time>
+    <exporter_version>0.4.3</exporter_version>
+  </documentation>
+  <base_model_version>asam30</base_model_version>
+  <application_model>
+    <application_enumeration>
+      <name>valid_enum</name>
+      <item>
+        <name>editing</name>
+        <value>0</value>
+      </item>
+      <item>
+        <name>valid</name>
+        <value>1</value>
+      </item>
+      <item>
+        <name>archive</name>
+        <value>2</value>
+      </item>
+    </application_enumeration>
+    <application_enumeration>
+      <name>axistype</name>
+      <item>
+        <name>Xaxis</name>
+        <value>0</value>
+      </item>
+      <item>
+        <name>Yaxis</name>
+        <value>1</value>
+      </item>
+      <item>
+        <name>Both</name>
+        <value>2</value>
+      </item>
+    </application_enumeration>
+    <application_element>
+      <name>Environment</name>
+      <basetype>AoEnvironment</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DateCreated</name>
+        <base_attribute>version_date</base_attribute>
+        <obligatory>true</obligatory>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Max_test_level</name>
+        <base_attribute>max_test_level</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Base_model_version</name>
+        <base_attribute>base_model_version</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>AppModelType</name>
+        <base_attribute>application_model_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>100</length>
+      </application_attribute>
+      <application_attribute>
+        <name>AppModelVersion</name>
+        <base_attribute>application_model_version</base_attribute>
+        <obligatory>true</obligatory>
+        <length>20</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Timezone</name>
+        <base_attribute>timezone</base_attribute>
+        <obligatory>true</obligatory>
+        <length>20</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MeaningOfAliases</name>
+        <base_attribute>meaning_of_aliases</base_attribute>
+        <obligatory>true</obligatory>
+        <length>20</length>
+      </application_attribute>
+    </application_element>
+    <application_element>
+      <name>Project</name>
+      <basetype>AoTest</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>StructureLevel</name>
+        <ref_to>StructureLevel</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>Project</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>StructureLevel</name>
+      <basetype>AoSubTest</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>Tests</name>
+        <ref_to>Test</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>StructureLevel</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>Project</name>
+        <ref_to>Project</ref_to>
+        <base_relation>parent_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>StructureLevel</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>Test</name>
+      <basetype>AoSubTest</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>100</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DateCreated</name>
+        <base_attribute>version_date</base_attribute>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DateClosed</name>
+        <datatype>DT_DATE</datatype>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MDMLinks</name>
+        <base_attribute>external_references</base_attribute>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>ResponsiblePerson</name>
+        <ref_to>User</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>Tests</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>StructureLevel</name>
+        <ref_to>StructureLevel</ref_to>
+        <base_relation>parent_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>Tests</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>TestSteps</name>
+        <ref_to>TestStep</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>Test</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>TestStep</name>
+      <basetype>AoSubTest</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>100</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DateCreated</name>
+        <base_attribute>version_date</base_attribute>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Optional</name>
+        <datatype>DT_BOOLEAN</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>Sortindex</name>
+        <datatype>DT_LONG</datatype>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MDMLinks</name>
+        <base_attribute>external_references</base_attribute>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>Test</name>
+        <ref_to>Test</ref_to>
+        <base_relation>parent_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>TestSteps</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaResults</name>
+        <ref_to>MeaResult</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestStep</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>MeaResult</name>
+      <basetype>AoMeasurement</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>100</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DateCreated</name>
+        <base_attribute>version_date</base_attribute>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MeasurementBegin</name>
+        <base_attribute>measurement_begin</base_attribute>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MeasurementEnd</name>
+        <base_attribute>measurement_end</base_attribute>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MDMLinks</name>
+        <base_attribute>external_references</base_attribute>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>TestEquipment</name>
+        <ref_to>TestEquipment</ref_to>
+        <base_relation>equipments</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaResults</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>units_under_test</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaResults</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantities</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>MeaResult</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>TestStep</name>
+        <ref_to>TestStep</ref_to>
+        <base_relation>test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaResults</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>SubMatrices</name>
+        <ref_to>SubMatrix</ref_to>
+        <base_relation>submatrices</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>MeaResult</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>ResultParameterSet</name>
+        <ref_to>ResultParameterSet</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>MeaResult</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>TestSequence</name>
+        <ref_to>TestSequence</ref_to>
+        <base_relation>sequences</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaResults</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>UnitUnderTest</name>
+      <basetype>AoUnitUnderTest</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>100</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Version</name>
+        <base_attribute>version</base_attribute>
+        <obligatory>true</obligatory>
+        <length>20</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>engine</name>
+        <ref_to>engine</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>gearbox</name>
+        <ref_to>gearbox</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>tyre</name>
+        <ref_to>tyre</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>noise_reduction_system</name>
+        <ref_to>noise_reduction_system</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>vehicle</name>
+        <ref_to>vehicle</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>exhaust_piping</name>
+        <ref_to>exhaust_piping</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>expansion_chamber</name>
+        <ref_to>expansion_chamber</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>air_filter</name>
+        <ref_to>air_filter</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaResults</name>
+        <ref_to>MeaResult</ref_to>
+        <base_relation>measurement</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>silencer</name>
+        <ref_to>silencer</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>UnitUnderTest</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>engine</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>power</name>
+        <datatype>DT_SHORT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>manufacturer</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>type</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>model</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>engine</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>gearbox</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>no_forward_gears</name>
+        <datatype>DT_SHORT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>transmission</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>gearbox</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>noise_reduction_system</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>design_family</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>noise_reduction_system</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>tyre</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>axle</name>
+        <datatype>DT_SHORT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>side</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>size</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>manufacturer</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>tread_depth</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>tyre</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>air_filter</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>min_bulk_material_density</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>air_filter</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>expansion_chamber</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>volume</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>expansion_chamber</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>exhaust_piping</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>material</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>length</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>exhaust_piping</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>vehicle</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>maximum_authorized_mass</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>vehicle_type</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>vehicle_category</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>manufacturer</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>model</name>
+        <datatype>DT_STRING</datatype>
+        <obligatory>true</obligatory>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>length</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>reference_point</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>mass_in_running_order</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>vehicle</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>silencer</name>
+      <basetype>AoUnitUnderTestPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>location</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>manufacturer</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>model</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>type</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>fibre_type</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>UnitUnderTest</name>
+        <ref_to>UnitUnderTest</ref_to>
+        <base_relation>parent_unit_under_test</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>silencer</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>TestEquipment</name>
+      <basetype>AoTestEquipment</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>100</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Version</name>
+        <base_attribute>version</base_attribute>
+        <obligatory>true</obligatory>
+        <length>20</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>vehicle_measurement</name>
+        <ref_to>vehicle_measurement</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestEquipment</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>meteorological_measurement</name>
+        <ref_to>meteorological_measurement</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestEquipment</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>sound_measurement</name>
+        <ref_to>sound_measurement</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestEquipment</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaResults</name>
+        <ref_to>MeaResult</ref_to>
+        <base_relation>measurement</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestEquipment</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>vehicle_measurement</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>speed</name>
+        <ref_to>speed</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>vehicle_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>TestEquipment</name>
+        <ref_to>TestEquipment</ref_to>
+        <base_relation>parent_equipment</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>vehicle_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>rotational_speed</name>
+        <ref_to>rotational_speed</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>vehicle_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>acceleration</name>
+        <ref_to>acceleration</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>vehicle_measurement</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>speed</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>direction</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>vehicle_measurement</name>
+        <ref_to>vehicle_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>speed</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>speed</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>rotational_speed</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>vehicle_measurement</name>
+        <ref_to>vehicle_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>rotational_speed</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>rotational_speed</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>acceleration</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>manufacturer</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>type_code</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>last_calibration</name>
+        <datatype>DT_DATE</datatype>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>location</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>direction</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>vehicle_measurement</name>
+        <ref_to>vehicle_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>acceleration</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>acceleration</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>meteorological_measurement</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>temperature</name>
+        <ref_to>temperature</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>meteorological_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>barometric_pressure</name>
+        <ref_to>barometric_pressure</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>meteorological_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>TestEquipment</name>
+        <ref_to>TestEquipment</ref_to>
+        <base_relation>parent_equipment</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>meteorological_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>relative_humidity</name>
+        <ref_to>relative_humidity</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>meteorological_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>wind_speed</name>
+        <ref_to>wind_speed</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>meteorological_measurement</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>barometric_pressure</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>manufacturer</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>type_code</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>last_calibration</name>
+        <datatype>DT_DATE</datatype>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>height_above_ground</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>meteorological_measurement</name>
+        <ref_to>meteorological_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>barometric_pressure</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>barometric_pressure</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>temperature</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>meteorological_measurement</name>
+        <ref_to>meteorological_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>temperature</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>temperature</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>relative_humidity</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>meteorological_measurement</name>
+        <ref_to>meteorological_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>relative_humidity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>relative_humidity</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>wind_speed</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>wind_direction</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>meteorological_measurement</name>
+        <ref_to>meteorological_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>wind_speed</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>wind_speed</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>sound_measurement</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>microphone</name>
+        <ref_to>microphone</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>sound_measurement</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>TestEquipment</name>
+        <ref_to>TestEquipment</ref_to>
+        <base_relation>parent_equipment</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>sound_measurement</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>microphone</name>
+      <basetype>AoTestEquipmentPart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>manufacturer</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>type_code</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>height_above_ground</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>last_calibration</name>
+        <datatype>DT_DATE</datatype>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>distance_from_target</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>windscreen_applied</name>
+        <datatype>DT_BOOLEAN</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>sound_measurement</name>
+        <ref_to>sound_measurement</ref_to>
+        <base_relation>parent_equipment_part</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>microphone</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>microphone</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>MeaQuantity</name>
+      <basetype>AoMeasurementQuantity</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>150</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DataType</name>
+        <base_attribute>datatype</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Interpolation</name>
+        <base_attribute>interpolation</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Rank</name>
+        <base_attribute>rank</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Dimension</name>
+        <base_attribute>dimension</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>TypeSize</name>
+        <base_attribute>type_size</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Minimum</name>
+        <base_attribute>minimum</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Maximum</name>
+        <base_attribute>maximum</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Average</name>
+        <base_attribute>average</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Deviation</name>
+        <base_attribute>standard_deviation</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>non_reference_channel_name</name>
+        <datatype>DT_STRING</datatype>
+        <length>128</length>
+      </application_attribute>
+      <application_attribute>
+        <name>reference_channel_name</name>
+        <datatype>DT_STRING</datatype>
+        <length>128</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>meq-for-ref-user-window-fct</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>reference-user-window-function</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>speed</name>
+        <ref_to>speed</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>meq-forequalization-
+filter</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>equalization-filter</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>barometric_pressure</name>
+        <ref_to>barometric_pressure</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>Unit</name>
+        <ref_to>Unit</ref_to>
+        <base_relation>unit</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantities</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>relative_humidity</name>
+        <ref_to>relative_humidity</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>non_reference_channel_quantity</name>
+        <ref_to>Quantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>meq-for-non_ref_chan_quantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>equalization-filter</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>meq-forequalization-
+filter</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>wind_speed</name>
+        <ref_to>wind_speed</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>ResultParameterSet</name>
+        <ref_to>ResultParameterSet</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaResult</name>
+        <ref_to>MeaResult</ref_to>
+        <base_relation>measurement</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantities</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>user-window-function</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>meq-for-user-window-fct</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>temperature</name>
+        <ref_to>temperature</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>microphone</name>
+        <ref_to>microphone</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>LocalColumns</name>
+        <ref_to>LocalColumn</ref_to>
+        <base_relation>local_columns</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>rotational_speed</name>
+        <ref_to>rotational_speed</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>reference-user-window-function</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>meq-for-ref-user-window-fct</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>meq-for-user-window-fct</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>user-window-function</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>reference_channel_quantity</name>
+        <ref_to>Quantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>meq-for-ref_chan_quantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>Quantity</name>
+        <ref_to>Quantity</ref_to>
+        <base_relation>quantity</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantities</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>acceleration</name>
+        <ref_to>acceleration</ref_to>
+        <base_relation>channel</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>MeaQuantity</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>Unit</name>
+      <basetype>AoUnit</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Factor</name>
+        <base_attribute>factor</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Offset</name>
+        <base_attribute>offset</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DateCreated</name>
+        <base_attribute>version_date</base_attribute>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>dB</name>
+        <datatype>DT_BOOLEAN</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>dB_reference_factor</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>Quantities</name>
+        <ref_to>Quantity</ref_to>
+        <base_relation>quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>Unit</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>PhysDimension</name>
+        <ref_to>PhysDimension</ref_to>
+        <base_relation>phys_dimension</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>Units</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>ResultParameter</name>
+        <ref_to>ResultParameter</ref_to>
+        <base_relation>parameters</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>Unit</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantities</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>Unit</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>PhysDimension</name>
+      <basetype>AoPhysicalDimension</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Length</name>
+        <base_attribute>length_exp</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Mass</name>
+        <base_attribute>mass_exp</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Time</name>
+        <base_attribute>time_exp</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Current</name>
+        <base_attribute>current_exp</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Temperature</name>
+        <base_attribute>temperature_exp</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MolarAmount</name>
+        <base_attribute>molar_amount_exp</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>LuminousIntensity</name>
+        <base_attribute>luminous_intensity_exp</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>angle</name>
+        <datatype>DT_LONG</datatype>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <relation_attribute>
+        <name>Units</name>
+        <ref_to>Unit</ref_to>
+        <base_relation>units</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>PhysDimension</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>Quantity</name>
+      <basetype>AoQuantity</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>150</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Version</name>
+        <base_attribute>version</base_attribute>
+        <obligatory>true</obligatory>
+        <length>20</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DateCreated</name>
+        <base_attribute>version_date</base_attribute>
+        <length>30</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DefaultRank</name>
+        <base_attribute>default_rank</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>DefDimension</name>
+        <base_attribute>default_dimension</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>DefTypeSize</name>
+        <base_attribute>default_type_size</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>DefMQName</name>
+        <base_attribute>default_mq_name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DefDataType</name>
+        <base_attribute>default_datatype</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>ValidFlag</name>
+        <datatype>DT_ENUM</datatype>
+        <enumeration_type>valid_enum</enumeration_type>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <relation_attribute>
+        <name>Unit</name>
+        <ref_to>Unit</ref_to>
+        <base_relation>default_unit</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>Quantities</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>meq-for-non_ref_chan_quantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>non_reference_channel_quantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>meq-for-ref_chan_quantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>reference_channel_quantity</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantities</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantities</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>Quantity</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>ResultParameterSet</name>
+      <basetype>AoParameterSet</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Version</name>
+        <base_attribute>version</base_attribute>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>ResultParameter</name>
+        <ref_to>ResultParameter</ref_to>
+        <base_relation>parameters</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>ResultParameterSet</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>ResultParameterSet</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaResult</name>
+        <ref_to>MeaResult</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>ResultParameterSet</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>ResultParameter</name>
+      <basetype>AoParameter</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>DataType</name>
+        <base_attribute>parameter_datatype</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Value</name>
+        <base_attribute>pvalue</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>Unit</name>
+        <ref_to>Unit</ref_to>
+        <base_relation>unit</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>ResultParameter</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>ResultParameterSet</name>
+        <ref_to>ResultParameterSet</ref_to>
+        <base_relation>parameter_set</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>ResultParameter</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>LocalColumn</name>
+      <basetype>AoLocalColumn</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>150</length>
+      </application_attribute>
+      <application_attribute>
+        <name>IndependentFlag</name>
+        <base_attribute>independent</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>SequenceRepresentation</name>
+        <base_attribute>sequence_representation</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>GlobalFlag</name>
+        <base_attribute>global_flag</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Values</name>
+        <base_attribute>values</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>Flags</name>
+        <base_attribute>flags</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>GenerationParameters</name>
+        <base_attribute>generation_parameters</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>RawDatatype</name>
+        <base_attribute>raw_datatype</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>axistype</name>
+        <datatype>DT_ENUM</datatype>
+        <enumeration_type>axistype</enumeration_type>
+      </application_attribute>
+      <relation_attribute>
+        <name>MeaQuantity</name>
+        <ref_to>MeaQuantity</ref_to>
+        <base_relation>measurement_quantity</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>LocalColumns</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>SubMatrix</name>
+        <ref_to>SubMatrix</ref_to>
+        <base_relation>submatrix</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>LocalColumns</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>ExternalComponent</name>
+        <ref_to>ExternalComponent</ref_to>
+        <base_relation>external_component</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>LocalColumn</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>SubMatrix</name>
+      <basetype>AoSubmatrix</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>150</length>
+      </application_attribute>
+      <application_attribute>
+        <name>SubMatrixNoRows</name>
+        <base_attribute>number_of_rows</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>y-axis-for-z-axis</name>
+        <ref_to>SubMatrix</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>z-axis-for-y-axis</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>y-axis-for-x-axis</name>
+        <ref_to>SubMatrix</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>x-axis-for-y-axis</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>LocalColumns</name>
+        <ref_to>LocalColumn</ref_to>
+        <base_relation>local_columns</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>SubMatrix</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>z-axis-for-y-axis</name>
+        <ref_to>SubMatrix</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>y-axis-for-z-axis</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaResult</name>
+        <ref_to>MeaResult</ref_to>
+        <base_relation>measurement</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>SubMatrices</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>x-axis-for-y-axis</name>
+        <ref_to>SubMatrix</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>y-axis-for-x-axis</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>ExternalComponent</name>
+      <basetype>AoExternalComponent</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>150</length>
+      </application_attribute>
+      <application_attribute>
+        <name>FilenameURL</name>
+        <base_attribute>filename_url</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>TypeSpecification</name>
+        <base_attribute>value_type</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Length</name>
+        <base_attribute>component_length</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>StartOffset</name>
+        <base_attribute>start_offset</base_attribute>
+        <datatype>DT_LONG</datatype>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Blocksize</name>
+        <base_attribute>block_size</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>ValuesPerBlock</name>
+        <base_attribute>valuesperblock</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>ValueOffset</name>
+        <base_attribute>value_offset</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>OrdinalNumber</name>
+        <base_attribute>ordinal_number</base_attribute>
+      </application_attribute>
+      <application_attribute>
+        <name>FlagsFilenameURL</name>
+        <base_attribute>flags_filename_url</base_attribute>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>FlagsStartOffset</name>
+        <base_attribute>flags_start_offset</base_attribute>
+        <datatype>DT_LONG</datatype>
+      </application_attribute>
+      <relation_attribute>
+        <name>LocalColumn</name>
+        <ref_to>LocalColumn</ref_to>
+        <base_relation>local_column</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>ExternalComponent</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>TestSequence</name>
+      <basetype>AoTestSequence</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>100</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Version</name>
+        <base_attribute>version</base_attribute>
+        <obligatory>true</obligatory>
+        <length>20</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>PBN_test_conduction</name>
+        <ref_to>PBN_test_conduction</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestSequence</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>track</name>
+        <ref_to>track</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestSequence</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>SVN_test_conduction</name>
+        <ref_to>SVN_test_conduction</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestSequence</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>testsite</name>
+        <ref_to>testsite</ref_to>
+        <base_relation>children</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestSequence</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>MeaResults</name>
+        <ref_to>MeaResult</ref_to>
+        <base_relation>measurement</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>TestSequence</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>PBN_test_conduction</name>
+      <basetype>AoTestSequencePart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>v_test</name>
+        <datatype>DT_FLOAT</datatype>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>PMR</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>accelerated</name>
+        <datatype>DT_BOOLEAN</datatype>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>tested_vehicle_side</name>
+        <datatype>DT_STRING</datatype>
+        <obligatory>true</obligatory>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>TestSequence</name>
+        <ref_to>TestSequence</ref_to>
+        <base_relation>parent_sequence</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>PBN_test_conduction</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>track</name>
+      <basetype>AoTestSequencePart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>residual_voids_content</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>sound_absorption_coefficient</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>texture_depth</name>
+        <datatype>DT_FLOAT</datatype>
+      </application_attribute>
+      <application_attribute>
+        <name>surface_homogeneity</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <application_attribute>
+        <name>last_check_texture_depth</name>
+        <datatype>DT_DATE</datatype>
+        <length>30</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>TestSequence</name>
+        <ref_to>TestSequence</ref_to>
+        <base_relation>parent_sequence</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>track</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>SVN_test_conduction</name>
+      <basetype>AoTestSequencePart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>TestSequence</name>
+        <ref_to>TestSequence</ref_to>
+        <base_relation>parent_sequence</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>SVN_test_conduction</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>testsite</name>
+      <basetype>AoTestSequencePart</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <obligatory>true</obligatory>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>track_id</name>
+        <datatype>DT_STRING</datatype>
+        <length>254</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>TestSequence</name>
+        <ref_to>TestSequence</ref_to>
+        <base_relation>parent_sequence</base_relation>
+        <min_occurs>1</min_occurs>
+        <max_occurs>1</max_occurs>
+        <inverse_name>testsite</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>User</name>
+      <basetype>AoUser</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <application_attribute>
+        <name>GivenName</name>
+        <datatype>DT_STRING</datatype>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Surname</name>
+        <datatype>DT_STRING</datatype>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Department</name>
+        <datatype>DT_STRING</datatype>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Telephone</name>
+        <datatype>DT_STRING</datatype>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>E-Mail</name>
+        <datatype>DT_STRING</datatype>
+        <length>50</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>users2groups</name>
+        <ref_to>Role</ref_to>
+        <base_relation>groups</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>groups2users</inverse_name>
+      </relation_attribute>
+      <relation_attribute>
+        <name>Tests</name>
+        <ref_to>Test</ref_to>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>ResponsiblePerson</inverse_name>
+      </relation_attribute>
+    </application_element>
+    <application_element>
+      <name>Role</name>
+      <basetype>AoUserGroup</basetype>
+      <application_attribute>
+        <name>Id</name>
+        <base_attribute>id</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>Name</name>
+        <base_attribute>name</base_attribute>
+        <obligatory>true</obligatory>
+        <length>50</length>
+      </application_attribute>
+      <application_attribute>
+        <name>SuperuserFlag</name>
+        <base_attribute>superuser_flag</base_attribute>
+        <obligatory>true</obligatory>
+      </application_attribute>
+      <application_attribute>
+        <name>MimeType</name>
+        <base_attribute>mime_type</base_attribute>
+        <length>256</length>
+      </application_attribute>
+      <application_attribute>
+        <name>Description</name>
+        <base_attribute>description</base_attribute>
+        <length>500</length>
+      </application_attribute>
+      <relation_attribute>
+        <name>groups2users</name>
+        <ref_to>User</ref_to>
+        <base_relation>users</base_relation>
+        <min_occurs>0</min_occurs>
+        <max_occurs>Many</max_occurs>
+        <inverse_name>users2groups</inverse_name>
+      </relation_attribute>
+    </application_element>
+  </application_model>
+  <instance_data>
+    <Environment>
+      <Id>1</Id>
+      <Name>MDM</Name>
+      <MimeType>application/x-asam.aoenvironment</MimeType>
+      <Description>MDM Environment</Description>
+      <DateCreated>20120214120000</DateCreated>
+      <Max_test_level>4</Max_test_level>
+      <Base_model_version>asam30</Base_model_version>
+      <AppModelType>ASAM_SECURITY,ASAM_NVH,ASAM_WORKFLOW,MDM</AppModelType>
+      <AppModelVersion>4.4.1</AppModelVersion>
+      <Timezone>GMT</Timezone>
+      <MeaningOfAliases>
+        <s>,language=en</s>
+        <s>,language=de</s>
+      </MeaningOfAliases>
+    </Environment>
+    <Project>
+      <Id>1</Id>
+      <Name>PMV Model P</Name>
+      <MimeType>application/x-asam.aotest</MimeType>
+      <StructureLevel>1</StructureLevel>
+    </Project>
+    <StructureLevel>
+      <Id>1</Id>
+      <Name>PBN Measurements</Name>
+      <MimeType>application/x-asam.aosubtest.structurelevel</MimeType>
+      <Tests>1</Tests>
+      <Project>1</Project>
+    </StructureLevel>
+    <Test>
+      <Id>1</Id>
+      <Name>PBN_UNECE_R51_20140314170907</Name>
+      <MimeType>application/x-asam.aosubtest.test</MimeType>
+      <DateCreated>20140314170907</DateCreated>
+      <DateClosed>20140314170908</DateClosed>
+      <StructureLevel>1</StructureLevel>
+      <ResponsiblePerson>1</ResponsiblePerson>
+      <TestSteps>1</TestSteps>
+    </Test>
+    <TestStep>
+      <Id>1</Id>
+      <Name>PBN_UNECE_R51_Right_Acc_70</Name>
+      <MimeType>application/x-asam.aosubtest.teststep</MimeType>
+      <DateCreated>20140314170908</DateCreated>
+      <Optional>true</Optional>
+      <Sortindex>40</Sortindex>
+      <MDMLinks>
+        <external_reference>
+          <description>a simple text file</description>
+          <mimetype>text/plain</mimetype>
+          <location>extref.txt</location>
+        </external_reference>
+        <external_reference>
+          <description>openMDM Logo</description>
+          <mimetype>image/png</mimetype>
+          <location>openmdm.png</location>
+        </external_reference>
+      </MDMLinks>
+      <Test>1</Test>
+      <MeaResults>1</MeaResults>
+    </TestStep>
+    <MeaResult>
+      <Id>1</Id>
+      <Name>Channel</Name>
+      <MimeType>application/x-asam.aomeasurement</MimeType>
+      <DateCreated>20140317154822</DateCreated>
+      <TestEquipment>1</TestEquipment>
+      <UnitUnderTest>1</UnitUnderTest>
+      <MeaQuantities>1 2 3 4 5 6 7 8 9 10 11</MeaQuantities>
+      <TestStep>1</TestStep>
+      <SubMatrices>1</SubMatrices>
+      <TestSequence>1</TestSequence>
+    </MeaResult>
+    <UnitUnderTest>
+      <Id>1</Id>
+      <Name>PBN_vehicle</Name>
+      <Version>57</Version>
+      <MimeType>application/x-asam.aounitundertest.unitundertest</MimeType>
+      <engine>1</engine>
+      <gearbox>1</gearbox>
+      <tyre>1 2 3 4</tyre>
+      <noise_reduction_system>1</noise_reduction_system>
+      <vehicle>1</vehicle>
+      <exhaust_piping>1</exhaust_piping>
+      <expansion_chamber>1</expansion_chamber>
+      <air_filter>1</air_filter>
+      <MeaResults>1</MeaResults>
+      <silencer>1 2</silencer>
+    </UnitUnderTest>
+    <engine>
+      <Id>1</Id>
+      <Name>engine</Name>
+      <MimeType>application/x-asam.aounitundertestpart.engine.engine</MimeType>
+      <power>167</power>
+      <manufacturer>Peak Motors Ltd.</manufacturer>
+      <type>Compression-ignition</type>
+      <model>Peak Turbo V16</model>
+      <UnitUnderTest>1</UnitUnderTest>
+    </engine>
+    <gearbox>
+      <Id>1</Id>
+      <Name>gearbox</Name>
+      <MimeType>application/x-asam.aounitundertestpart.gearbox.gearbox</MimeType>
+      <no_forward_gears>6</no_forward_gears>
+      <transmission>Automatic</transmission>
+      <UnitUnderTest>1</UnitUnderTest>
+    </gearbox>
+    <noise_reduction_system>
+      <Id>1</Id>
+      <Name>noise_reduction_system</Name>
+      <MimeType>application/x-asam.aounitundertestpart.noise_reduction_system.noise_reduction_system</MimeType>
+      <design_family>Whisper</design_family>
+      <UnitUnderTest>1</UnitUnderTest>
+    </noise_reduction_system>
+    <tyre>
+      <Id>1</Id>
+      <Name>FL_tyre</Name>
+      <MimeType>application/x-asam.aounitundertestpart.tyre.fl_tyre</MimeType>
+      <axle>1</axle>
+      <side>Left</side>
+      <size>75R15</size>
+      <manufacturer>Tunnelsand</manufacturer>
+      <tread_depth>2.2</tread_depth>
+      <UnitUnderTest>1</UnitUnderTest>
+    </tyre>
+    <tyre>
+      <Id>2</Id>
+      <Name>FR_tyre</Name>
+      <MimeType>application/x-asam.aounitundertestpart.tyre.fr_tyre</MimeType>
+      <axle>1</axle>
+      <side>Right</side>
+      <size>75R15</size>
+      <manufacturer>Tunnelsand</manufacturer>
+      <tread_depth>2.3</tread_depth>
+      <UnitUnderTest>1</UnitUnderTest>
+    </tyre>
+    <tyre>
+      <Id>3</Id>
+      <Name>RL_tyre</Name>
+      <MimeType>application/x-asam.aounitundertestpart.tyre.rl_tyre</MimeType>
+      <axle>2</axle>
+      <side>Left</side>
+      <size>75R15</size>
+      <manufacturer>Tunnelsand</manufacturer>
+	  <tread_depth>2.1</tread_depth>
+      <UnitUnderTest>1</UnitUnderTest>
+    </tyre>
+    <tyre>
+      <Id>4</Id>
+      <Name>RR_tyre</Name>
+      <MimeType>application/x-asam.aounitundertestpart.tyre.rr_tyre</MimeType>
+      <axle>2</axle>
+      <side>Right</side>
+      <size>75R15</size>
+      <manufacturer>Tunnelsand</manufacturer>
+      <tread_depth>2.2</tread_depth>
+      <UnitUnderTest>1</UnitUnderTest>
+    </tyre>
+    <air_filter>
+      <Id>1</Id>
+      <Name>air_filter</Name>
+      <MimeType>application/x-asam.aounitundertestpart.air_filter.air_filter</MimeType>
+      <min_bulk_material_density>0.83</min_bulk_material_density>
+      <UnitUnderTest>1</UnitUnderTest>
+    </air_filter>
+    <expansion_chamber>
+      <Id>1</Id>
+      <Name>expansion_chamber</Name>
+      <MimeType>application/x-asam.aounitundertestpart.expansion_chamber.expansion_chamber</MimeType>
+      <volume>0.53</volume>
+      <UnitUnderTest>1</UnitUnderTest>
+    </expansion_chamber>
+    <exhaust_piping>
+      <Id>1</Id>
+      <Name>exhaust_piping</Name>
+      <MimeType>application/x-asam.aounitundertestpart.exhaust_piping.exhaust_piping</MimeType>
+      <material>Stainless steel</material>
+      <length>3.79</length>
+      <UnitUnderTest>1</UnitUnderTest>
+    </exhaust_piping>
+    <vehicle>
+      <Id>1</Id>
+      <Name>vehicle</Name>
+      <MimeType>application/x-asam.aounitundertestpart.vehicle.vehicle</MimeType>
+      <maximum_authorized_mass>1950.0</maximum_authorized_mass>
+      <vehicle_type>Cabrio</vehicle_type>
+      <vehicle_category>Passenger transport</vehicle_category>
+      <manufacturer>Peak Motor Vehicles</manufacturer>
+      <model>Model P</model>
+      <length>3.96</length>
+      <reference_point>Rear end</reference_point>
+      <mass_in_running_order>1463.0</mass_in_running_order>
+      <UnitUnderTest>1</UnitUnderTest>
+    </vehicle>
+    <silencer>
+      <Id>1</Id>
+      <Name>exhaust_silencer</Name>
+      <MimeType>application/x-asam.aounitundertestpart.silencer.exhaust_silencer</MimeType>
+      <location>exhaust</location>
+      <manufacturer>Peak Silencers Ltd.</manufacturer>
+      <model>Lion's Roar 2013</model>
+      <type>Quadruple pipe</type>
+      <fibre_type>Biosil wool</fibre_type>
+      <UnitUnderTest>1</UnitUnderTest>
+    </silencer>
+    <silencer>
+      <Id>2</Id>
+      <Name>intake_silencer</Name>
+      <MimeType>application/x-asam.aounitundertestpart.silencer.intake_silencer</MimeType>
+      <location>intake</location>
+      <manufacturer>Peak Silencers Ltd.</manufacturer>
+      <model>Snake's Hiss 2013</model>
+      <fibre_type>Etype wool</fibre_type>
+      <UnitUnderTest>1</UnitUnderTest>
+    </silencer>
+    <TestEquipment>
+      <Id>1</Id>
+      <Name>PBN_setup</Name>
+      <Version>56</Version>
+      <MimeType>application/x-asam.aotestequipment.testequipment</MimeType>
+      <vehicle_measurement>1</vehicle_measurement>
+      <meteorological_measurement>1</meteorological_measurement>
+      <sound_measurement>1</sound_measurement>
+      <MeaResults>1</MeaResults>
+    </TestEquipment>
+    <vehicle_measurement>
+      <Id>1</Id>
+      <Name>vehicle_measurement</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.vehicle_measurement.vehicle_measurement</MimeType>
+      <speed>1</speed>
+      <TestEquipment>1</TestEquipment>
+      <rotational_speed>1</rotational_speed>
+      <acceleration>1</acceleration>
+    </vehicle_measurement>
+    <speed>
+      <Id>1</Id>
+      <Name>vehicle_speed</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.speed</MimeType>
+      <vehicle_measurement>1</vehicle_measurement>
+    </speed>
+    <rotational_speed>
+      <Id>1</Id>
+      <Name>rotational_speed</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.rotational_speed</MimeType>
+      <vehicle_measurement>1</vehicle_measurement>
+    </rotational_speed>
+    <acceleration>
+      <Id>1</Id>
+      <Name>vehicle_acceleration</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.acceleration</MimeType>
+      <vehicle_measurement>1</vehicle_measurement>
+    </acceleration>
+    <meteorological_measurement>
+      <Id>1</Id>
+      <Name>meteorological_measurement</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.meteorological_measurement.meteorological_measurement</MimeType>
+      <temperature>1 2</temperature>
+      <barometric_pressure>1</barometric_pressure>
+      <TestEquipment>1</TestEquipment>
+      <relative_humidity>1</relative_humidity>
+      <wind_speed>1</wind_speed>
+    </meteorological_measurement>
+    <barometric_pressure>
+      <Id>1</Id>
+      <Name>atmospheric_pressure</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.barometric_pressure</MimeType>
+      <meteorological_measurement>1</meteorological_measurement>
+    </barometric_pressure>
+    <temperature>
+      <Id>1</Id>
+      <Name>ambient_air_temperature</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.temperature</MimeType>
+      <meteorological_measurement>1</meteorological_measurement>
+    </temperature>
+    <temperature>
+      <Id>2</Id>
+      <Name>track_surface_temperature</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.temperature</MimeType>
+      <meteorological_measurement>1</meteorological_measurement>
+    </temperature>
+    <relative_humidity>
+      <Id>1</Id>
+      <Name>humidity</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.relative_humidity</MimeType>
+      <meteorological_measurement>1</meteorological_measurement>
+    </relative_humidity>
+    <wind_speed>
+      <Id>1</Id>
+      <Name>wind_speed</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.wind_speed</MimeType>
+      <meteorological_measurement>1</meteorological_measurement>
+    </wind_speed>
+    <sound_measurement>
+      <Id>1</Id>
+      <Name>sound_measurement</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.sound_measurement.sound_measurement</MimeType>
+      <microphone>1 2</microphone>
+      <TestEquipment>1</TestEquipment>
+    </sound_measurement>
+    <microphone>
+      <Id>1</Id>
+      <Name>background_noise</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.microphone</MimeType>
+      <sound_measurement>1</sound_measurement>
+    </microphone>
+    <microphone>
+      <Id>2</Id>
+      <Name>vehicle_noise</Name>
+      <MimeType>application/x-asam.aotestequipmentpart.microphone</MimeType>
+      <sound_measurement>1</sound_measurement>
+    </microphone>
+    <MeaQuantity>
+      <Id>1</Id>
+      <Name>CHANNEL05</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8136</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>2</Id>
+      <Name>CHANNEL08</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8137</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>3</Id>
+      <Name>CHANNEL03</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8138</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>4</Id>
+      <Name>CHANNEL01</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8139</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>5</Id>
+      <Name>CHANNEL06</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8140</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>6</Id>
+      <Name>CHANNEL04</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8141</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>7</Id>
+      <Name>CHANNEL07</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8142</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>8</Id>
+      <Name>CHANNEL02</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8143</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>9</Id>
+      <Name>CHANNEL09</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8144</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>10</Id>
+      <Name>CHANNEL10</Name>
+      <DataType>DT_DOUBLE</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>1</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8145</LocalColumns>
+      <Quantity>1</Quantity>
+    </MeaQuantity>
+    <MeaQuantity>
+      <Id>11</Id>
+      <Name>X-Axis</Name>
+      <DataType>DT_LONG</DataType>
+      <MimeType>application/x-asam.aomeasurementquantity</MimeType>
+      <Interpolation>no_interpolation</Interpolation>
+      <Rank>1</Rank>
+      <TypeSize>1</TypeSize>
+      <Unit>2</Unit>
+      <MeaResult>1</MeaResult>
+      <LocalColumns>8146</LocalColumns>
+      <Quantity>2</Quantity>
+    </MeaQuantity>
+    <Unit>
+      <Id>1</Id>
+      <Name>Pa</Name>
+      <Factor>1.0</Factor>
+      <Offset>0.0</Offset>
+      <MimeType>application/x-asam.aounit</MimeType>
+      <dB>false</dB>
+      <Quantities>1</Quantities>
+      <PhysDimension>1</PhysDimension>
+      <MeaQuantities>1 2 3 4 5 6 7 8 9 10</MeaQuantities>
+    </Unit>
+    <Unit>
+      <Id>2</Id>
+      <Name>s</Name>
+      <Factor>1.0</Factor>
+      <Offset>0.0</Offset>
+      <MimeType>application/x-asam.aounit</MimeType>
+      <dB>false</dB>
+      <Quantities>2</Quantities>
+      <PhysDimension>2</PhysDimension>
+      <MeaQuantities>11</MeaQuantities>
+    </Unit>
+    <PhysDimension>
+      <Id>1</Id>
+      <Name>pressure</Name>
+      <Length>-1</Length>
+      <Mass>1</Mass>
+      <Time>-2</Time>
+      <Current>0</Current>
+      <Temperature>0</Temperature>
+      <MolarAmount>0</MolarAmount>
+      <LuminousIntensity>0</LuminousIntensity>
+      <MimeType>application/x-asam.aophysicaldimension</MimeType>
+      <Description>unit: pascal</Description>
+      <angle>0</angle>
+      <Units>1</Units>
+    </PhysDimension>
+    <PhysDimension>
+      <Id>2</Id>
+      <Name>time</Name>
+      <Length>0</Length>
+      <Mass>0</Mass>
+      <Time>1</Time>
+      <Current>0</Current>
+      <Temperature>0</Temperature>
+      <MolarAmount>0</MolarAmount>
+      <LuminousIntensity>0</LuminousIntensity>
+      <MimeType>application/x-asam.aophysicaldimension</MimeType>
+      <angle>0</angle>
+      <Units>2</Units>
+    </PhysDimension>
+    <Quantity>
+      <Id>1</Id>
+      <Name>Noise</Name>
+      <Version>1</Version>
+      <MimeType>application/x-asam.aoquantity</MimeType>
+      <DateCreated>20140211133954</DateCreated>
+      <DefaultRank>1</DefaultRank>
+      <DefDimension>0</DefDimension>
+      <DefTypeSize>1</DefTypeSize>
+      <DefMQName>Noise</DefMQName>
+      <DefDataType>DT_FLOAT</DefDataType>
+      <ValidFlag>valid</ValidFlag>
+      <Unit>1</Unit>
+      <MeaQuantities>1 2 3 4 5 6 7 8 9 10</MeaQuantities>
+    </Quantity>
+    <Quantity>
+      <Id>2</Id>
+      <Name>Time</Name>
+      <Version>1</Version>
+      <MimeType>application/x-asam.aoquantity</MimeType>
+      <DateCreated>20140303190409</DateCreated>
+      <DefaultRank>1</DefaultRank>
+      <DefDimension>0</DefDimension>
+      <DefTypeSize>1</DefTypeSize>
+      <DefMQName>Time</DefMQName>
+      <DefDataType>DT_FLOAT</DefDataType>
+      <ValidFlag>valid</ValidFlag>
+      <Unit>2</Unit>
+      <MeaQuantities>11</MeaQuantities>
+    </Quantity>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8136</Id>
+      <Name>CHANNEL05</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>1</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>1</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8137</Id>
+      <Name>CHANNEL08</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>2</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>2</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8138</Id>
+      <Name>CHANNEL03</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>3</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>3</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8139</Id>
+      <Name>CHANNEL01</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>4</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>4</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8140</Id>
+      <Name>CHANNEL06</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>5</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>5</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8141</Id>
+      <Name>CHANNEL04</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>6</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>6</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8142</Id>
+      <Name>CHANNEL07</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>7</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>7</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8143</Id>
+      <Name>CHANNEL02</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>8</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>8</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8144</Id>
+      <Name>CHANNEL09</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>9</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>9</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8145</Id>
+      <Name>CHANNEL10</Name>
+      <IndependentFlag>0</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Yaxis</axistype>
+      <MeaQuantity>10</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>10</ExternalComponent>
+    </LocalColumn>
+    <LocalColumn>
+      <SequenceRepresentation>external_component</SequenceRepresentation>
+      <Id>8146</Id>
+      <Name>X-Axis</Name>
+      <IndependentFlag>1</IndependentFlag>
+      <MimeType>application/x-asam.aolocalcolumn</MimeType>
+      <GlobalFlag>15</GlobalFlag>
+      <Flags>15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15</Flags>
+      <axistype>Xaxis</axistype>
+      <MeaQuantity>11</MeaQuantity>
+      <SubMatrix>1</SubMatrix>
+      <ExternalComponent>11</ExternalComponent>
+    </LocalColumn>
+    <SubMatrix>
+      <Id>1</Id>
+      <Name>Channel</Name>
+      <SubMatrixNoRows>3001</SubMatrixNoRows>
+      <MimeType>application/x-asam.aosubmatrix</MimeType>
+      <LocalColumns>8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146</LocalColumns>
+      <MeaResult>1</MeaResult>
+    </SubMatrix>
+    <ExternalComponent>
+      <Id>1</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>0</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8136</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>2</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>24008</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8137</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>3</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>48016</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8138</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>4</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>72024</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8139</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>5</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>96032</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8140</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>6</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>120040</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8141</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>7</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>144048</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8142</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>8</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>168056</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8143</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>9</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>192064</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8144</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>10</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>ieeefloat8</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>216072</StartOffset>
+      <Blocksize>8</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8145</LocalColumn>
+    </ExternalComponent>
+    <ExternalComponent>
+      <Id>11</Id>
+      <Name>ExtComp</Name>
+      <FilenameURL>data_1.bin</FilenameURL>
+      <TypeSpecification>dt_long</TypeSpecification>
+      <Length>3001</Length>
+      <StartOffset>240080</StartOffset>
+      <Blocksize>4</Blocksize>
+      <ValuesPerBlock>1</ValuesPerBlock>
+      <ValueOffset>0</ValueOffset>
+      <LocalColumn>8146</LocalColumn>
+    </ExternalComponent>
+    <TestSequence>
+      <Id>1</Id>
+      <Name>PBN_emission_testing</Name>
+      <Version>41</Version>
+      <MimeType>application/x-asam.aotestsequence.testsequence</MimeType>
+      <PBN_test_conduction>1</PBN_test_conduction>
+      <track>1</track>
+      <testsite>1</testsite>
+      <MeaResults>1</MeaResults>
+    </TestSequence>
+    <PBN_test_conduction>
+      <Id>1</Id>
+      <Name>test_conduction</Name>
+      <MimeType>application/x-asam.aotestsequencepart.pbn_test_conduction.test_conduction</MimeType>
+      <v_test>70.0</v_test>
+      <PMR>114</PMR>
+      <accelerated>true</accelerated>
+      <tested_vehicle_side>Right</tested_vehicle_side>
+      <TestSequence>1</TestSequence>
+    </PBN_test_conduction>
+    <track>
+      <Id>1</Id>
+      <Name>track</Name>
+      <MimeType>application/x-asam.aotestsequencepart.track.track</MimeType>
+      <residual_voids_content>7.8</residual_voids_content>
+      <sound_absorption_coefficient>0.093</sound_absorption_coefficient>
+      <texture_depth>0.3</texture_depth>
+      <surface_homogeneity>homogenous</surface_homogeneity>
+      <last_check_texture_depth>20140220000000</last_check_texture_depth>
+      <TestSequence>1</TestSequence>
+    </track>
+    <testsite>
+      <Id>1</Id>
+      <Name>testsite</Name>
+      <MimeType>application/x-asam.aotestsequencepart.testsite.testsite</MimeType>
+      <track_id>PBN Area 51</track_id>
+      <TestSequence>1</TestSequence>
+    </testsite>
+    <User>
+      <Id>1</Id>
+      <Name>dummy</Name>
+      <MimeType>application/x-asam.aouser</MimeType>
+      <GivenName>dummy</GivenName>
+      <Surname>dummy</Surname>
+      <users2groups>1</users2groups>
+      <Tests>1</Tests>
+    </User>
+    <Role>
+      <Id>1</Id>
+      <Name>DummyRole</Name>
+      <SuperuserFlag>0</SuperuserFlag>
+      <MimeType>application/x-asam.aorole</MimeType>
+      <groups2users>1</groups2users>
+    </Role>
+  </instance_data>
+</atfx_file>
\ No newline at end of file
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/data_1.bin b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/data_1.bin
new file mode 100644
index 0000000..1cece2d
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/data_1.bin
Binary files differ
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/extref.txt b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/extref.txt
new file mode 100644
index 0000000..9097b52
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/extref.txt
@@ -0,0 +1 @@
+This is a external reference file.
\ No newline at end of file
diff --git a/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/mdm_complete_application_model_500.xml b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/mdm_complete_application_model_500.xml
new file mode 100644
index 0000000..341fef8
--- /dev/null
+++ b/org.eclipse.mdm.nucleus/org.eclipse.mdm.api.atfxadapter/src/test/resources/mdm_complete_application_model_500.xml
@@ -0,0 +1,2495 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<atfx_file version="atfx_file: V1.1.0"  xmlns="http://www.asam.net/ODS/5.2/Schema"
+                                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                                         xsi:schemaLocation="http://www.asam.net/ODS/5.2/Schema http://www.asam.net/ODS/5.2/Schema.xsd">
+<!--
+***************************************************************************************************************
+* Based on ODS Base Model version *
+***************************************************************************************************************
+ -->
+   <base_model_version>asam30</base_model_version>
+<!-- 
+***************************************************************************************************************
+* declare application model meta data *
+***************************************************************************************************************
+ -->
+
+   <application_model>
+<!--
+***************************************************************************************************************
+* declare enumeration definitions *
+***************************************************************************************************************
+ -->
+      <application_enumeration>
+         <name>valid_enum</name>
+         <item><name>editing</name><value>0</value></item>
+         <item><name>valid</name><value>1</value></item>
+         <item><name>archive</name><value>2</value></item>
+      </application_enumeration>
+      <application_enumeration>
+         <name>axistype</name>
+         <item><name>Xaxis</name><value>0</value></item>
+         <item><name>Yaxis</name><value>1</value></item>
+         <item><name>Both</name><value>2</value></item>
+      </application_enumeration>
+
+      <application_element><name>Environment</name><basetype>AoEnvironment</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>Max_test_level</name><base_attribute>max_test_level</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Base_model_version</name><base_attribute>base_model_version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>AppModelType</name><base_attribute>application_model_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>AppModelVersion</name><base_attribute>application_model_version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>Timezone</name><base_attribute>timezone</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>MeaningOfAliases</name><base_attribute>meaning_of_aliases</base_attribute><datatype>DS_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+      </application_element>
+      <application_element><name>CatSensor</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <relation_attribute><name>CatTestEquipmentComp</name><ref_to>CatTestEquipmentComp</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>CatSensor</inverse_name></relation_attribute>
+         <relation_attribute><name>CatSensorAttr</name><ref_to>CatSensorAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatSensor</inverse_name></relation_attribute>
+         <relation_attribute><name>TplSensor</name><ref_to>TplSensor</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatSensor</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>CatSensorAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ValueListRef</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ValueCopyable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ActionRequestClassname</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>ActionRequestParameter</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>CatSensor</name><ref_to>CatSensor</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>CatSensorAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>ValueList</name><ref_to>ValueList</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>CatSensorAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>TplSensorAttr</name><ref_to>TplSensorAttr</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatSensorAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>CatTestEquipmentComp</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>CatTestEquipmentAttr</name><ref_to>CatTestEquipmentAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatTestEquipmentComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestEquipmentComp</name><ref_to>TplTestEquipmentComp</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatTestEquipmentComp</inverse_name></relation_attribute>
+         <relation_attribute><name>CatSensor</name><ref_to>CatSensor</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatTestEquipmentComp</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>CatTestEquipmentAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ValueListRef</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ValueCopyable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ActionRequestClassname</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>ActionRequestParameter</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>CatTestEquipmentComp</name><ref_to>CatTestEquipmentComp</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>CatTestEquipmentAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>ValueList</name><ref_to>ValueList</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>CatTestEquipmentAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestEquipmentAttr</name><ref_to>TplTestEquipmentAttr</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatTestEquipmentAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>CatTestSequenceComp</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>CatTestSequenceAttr</name><ref_to>CatTestSequenceAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatTestSequenceComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestSequenceComp</name><ref_to>TplTestSequenceComp</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatTestSequenceComp</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>CatTestSequenceAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ValueListRef</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ValueCopyable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ActionRequestClassname</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>ActionRequestParameter</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>CatTestSequenceComp</name><ref_to>CatTestSequenceComp</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>CatTestSequenceAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>ValueList</name><ref_to>ValueList</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>CatTestSequenceAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestSequenceAttr</name><ref_to>TplTestSequenceAttr</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatTestSequenceAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>CatUnitUnderTestComp</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>CatUnitUnderTestAttr</name><ref_to>CatUnitUnderTestAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatUnitUnderTestComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplUnitUnderTestComp</name><ref_to>TplUnitUnderTestComp</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatUnitUnderTestComp</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>CatUnitUnderTestAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1500</length></application_attribute>
+         <application_attribute><name>ValueListRef</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ValueCopyable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>ActionRequestClassname</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>ActionRequestParameter</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>CatUnitUnderTestComp</name><ref_to>CatUnitUnderTestComp</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>CatUnitUnderTestAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>ValueList</name><ref_to>ValueList</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>CatUnitUnderTestAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>TplUnitUnderTestAttr</name><ref_to>TplUnitUnderTestAttr</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>CatUnitUnderTestAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>Domain</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>Classification</name><ref_to>Classification</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Domain</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>ExtSystem</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>100</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>ExtSystemAttr</name><ref_to>ExtSystemAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>ExtSystem</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>ExtSystemAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ConverterClassname</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>ConverterParameter</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>ExtSystem</name><ref_to>ExtSystem</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>ExtSystemAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>MDMAttr</name><ref_to>MDMAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>ExtSystemAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>FavouriteLists</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Version</name><base_attribute>version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ASAMPaths</name><datatype>DS_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>User</name><ref_to>User</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>FavouriteLists</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>MDMAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>CompType</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>CompName</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>254</length></application_attribute>
+         <application_attribute><name>AttrName</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <relation_attribute><name>ExtSystemAttr</name><ref_to>ExtSystemAttr</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>MDMAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>MDMFunction</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>Role</name><ref_to>Role</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMFunction</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>MDMGroup</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>Role</name><ref_to>Role</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMGroup</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>MDMLocalization</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>300</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>AliasNames</name><datatype>DS_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+      </application_element>
+      <application_element><name>MDMRole</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>Role</name><ref_to>Role</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMRole</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>MDMTag</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>MDMTagParameterSet</name><ref_to>MDMTagParameterSet</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMTag</inverse_name></relation_attribute>
+         <relation_attribute><name>Test</name><ref_to>Test</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMTag</inverse_name></relation_attribute>
+         <relation_attribute><name>TestStep</name><ref_to>TestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMTag</inverse_name></relation_attribute>
+         <relation_attribute><name>MeaResult</name><ref_to>MeaResult</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMTag</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>ProjectDomain</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>Classification</name><ref_to>Classification</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>ProjectDomain</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>Status</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <relation_attribute><name>Classification</name><ref_to>Classification</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Status</inverse_name></relation_attribute>
+         <relation_attribute><name>StatusValidity</name><ref_to>StatusValidity</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Status</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>Classification</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <relation_attribute><name>ProjectDomain</name><ref_to>ProjectDomain</ref_to><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>Status</name><ref_to>Status</ref_to><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>Domain</name><ref_to>Domain</ref_to><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>Project</name><ref_to>Project</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>StructureLevel</name><ref_to>StructureLevel</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>Test</name><ref_to>Test</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>TestStep</name><ref_to>TestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>MeaResult</name><ref_to>MeaResult</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+         <relation_attribute><name>MeaQuantity</name><ref_to>MeaQuantity</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Classification</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>StatusValidity</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>IsFinal</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>Status</name><ref_to>Status</ref_to><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>StatusValidity</inverse_name></relation_attribute>
+         <application_attribute><name>ValidForMimeType</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+      </application_element>
+      <application_element><name>SystemParameter</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>100</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Value</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>References</name><datatype>DS_EXTERNALREFERENCE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>254</length></application_attribute>
+         <relation_attribute><name>UserParameter</name><ref_to>UserParameter</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>SystemParameter</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplGroup</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <relation_attribute><name>TplGroupParent</name><ref_to>TplGroup</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplGroupChild</inverse_name></relation_attribute>
+         <relation_attribute><name>TplGroupChild</name><ref_to>TplGroup</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplGroupParent</inverse_name></relation_attribute>
+         <relation_attribute><name>TplUnitUnderTestRoot</name><ref_to>TplUnitUnderTestRoot</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplGroup</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestSequenceRoot</name><ref_to>TplTestSequenceRoot</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplGroup</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestEquipmentRoot</name><ref_to>TplTestEquipmentRoot</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplGroup</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStep</name><ref_to>TplTestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplGroup</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTest</name><ref_to>TplTest</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplGroup</inverse_name></relation_attribute>
+         <relation_attribute><name>TplMeaResult</name><ref_to>TplMeaResult</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplGroup</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplMeaResult</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+	  <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Version</name><base_attribute>version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>DefaultMimeType</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DefaultName</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <relation_attribute><name>TplSubMatrix</name><ref_to>TplSubMatrix</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplMeaResult</inverse_name></relation_attribute>
+         <relation_attribute><name>TplGroup</name><ref_to>TplGroup</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplMeaResult</inverse_name></relation_attribute>
+         <relation_attribute><name>TplParameterSet</name><ref_to>TplParameterSet</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplMeaResult</inverse_name></relation_attribute>
+         <relation_attribute><name>MeaResult</name><ref_to>MeaResult</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplMeaResult</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStep</name><ref_to>TplTestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplMeaResult</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplSensor</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Optional</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>DefaultActive</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTestEquipmentComp</name><ref_to>TplTestEquipmentComp</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplSensor</inverse_name></relation_attribute>
+         <relation_attribute><name>CatSensor</name><ref_to>CatSensor</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplSensor</inverse_name></relation_attribute>
+         <relation_attribute><name>Quantity</name><ref_to>Quantity</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplSensor</inverse_name></relation_attribute>
+         <relation_attribute><name>TplSensorAttr</name><ref_to>TplSensorAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplSensor</inverse_name></relation_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>MeaQuantityValuesEditable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>MeaQuantityIndependent</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>MeaQuantityAxisType</name><datatype>DT_ENUM</datatype><enumeration_type>axistype</enumeration_type><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>MeaQuantityEditorPlugin</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <relation_attribute><name>TplParameterSet</name><ref_to>TplParameterSet</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplSensor</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplSensorAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DefaultValue</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ValueReadonly</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Obligatory</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplSensor</name><ref_to>TplSensor</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplSensorAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>CatSensorAttr</name><ref_to>CatSensorAttr</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplSensorAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplSubMatrix</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+	  <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>150</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>MinNoRows</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>MaxNoRows</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplMeaResult</name><ref_to>TplMeaResult</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplSubMatrix</inverse_name></relation_attribute>
+         <relation_attribute><name>SubMatrix</name><ref_to>SubMatrix</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplSubMatrix</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTest</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>Version</name><base_attribute>version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>NameHelperClassname</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DataSourcePluginClassnames</name><datatype>DS_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>TestOrderActionClassnames</name><datatype>DS_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>Tests</name><ref_to>Test</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTest</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStepUsage</name><ref_to>TplTestStepUsage</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTest</inverse_name></relation_attribute>
+         <relation_attribute><name>TplGroup</name><ref_to>TplGroup</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTest</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestEquipmentAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DefaultValue</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ValueReadonly</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Obligatory</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTestEquipmentComp</name><ref_to>TplTestEquipmentComp</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestEquipmentAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>CatTestEquipmentAttr</name><ref_to>CatTestEquipmentAttr</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestEquipmentAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestEquipmentRoot</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>Version</name><base_attribute>version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTestEquipmentComp</name><ref_to>TplTestEquipmentComp</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestEquipmentRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStep</name><ref_to>TplTestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestEquipmentRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TestEquipment</name><ref_to>TestEquipment</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestEquipmentRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TplGroup</name><ref_to>TplGroup</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestEquipmentRoot</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestEquipmentComp</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Optional</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>DefaultActive</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>TestStepSeriesVariable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTestEquipmentRoot</name><ref_to>TplTestEquipmentRoot</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestEquipmentComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplCompParent</name><ref_to>TplTestEquipmentComp</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplCompChildren</inverse_name></relation_attribute>
+         <relation_attribute><name>CatTestEquipmentComp</name><ref_to>CatTestEquipmentComp</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestEquipmentComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplCompChildren</name><ref_to>TplTestEquipmentComp</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplCompParent</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestEquipmentAttr</name><ref_to>TplTestEquipmentAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestEquipmentComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplSensor</name><ref_to>TplSensor</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestEquipmentComp</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestSequenceAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DefaultValue</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ValueReadonly</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Obligatory</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTestSequenceComp</name><ref_to>TplTestSequenceComp</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestSequenceAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>CatTestSequenceAttr</name><ref_to>CatTestSequenceAttr</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestSequenceAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestSequenceRoot</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>Version</name><base_attribute>version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTestSequenceComp</name><ref_to>TplTestSequenceComp</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestSequenceRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStep</name><ref_to>TplTestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestSequenceRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TestSequence</name><ref_to>TestSequence</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestSequenceRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TplGroup</name><ref_to>TplGroup</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestSequenceRoot</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestSequenceComp</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Optional</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>DefaultActive</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>TestStepSeriesVariable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTestSequenceRoot</name><ref_to>TplTestSequenceRoot</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestSequenceComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplCompParent</name><ref_to>TplTestSequenceComp</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplCompChildren</inverse_name></relation_attribute>
+         <relation_attribute><name>CatTestSequenceComp</name><ref_to>CatTestSequenceComp</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestSequenceComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplCompChildren</name><ref_to>TplTestSequenceComp</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplCompParent</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestSequenceAttr</name><ref_to>TplTestSequenceAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestSequenceComp</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestStepUsage</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+	  <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DefaultActive</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Optional</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplTest</name><ref_to>TplTest</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestStepUsage</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStep</name><ref_to>TplTestStep</ref_to><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestStepUsage</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplUnitUnderTestAttr</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>DefaultValue</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>ValueReadonly</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Obligatory</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplUnitUnderTestComp</name><ref_to>TplUnitUnderTestComp</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>TplUnitUnderTestAttr</inverse_name></relation_attribute>
+         <relation_attribute><name>CatUnitUnderTestAttr</name><ref_to>CatUnitUnderTestAttr</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplUnitUnderTestAttr</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplUnitUnderTestRoot</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>Version</name><base_attribute>version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplUnitUnderTestComp</name><ref_to>TplUnitUnderTestComp</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplUnitUnderTestRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStep</name><ref_to>TplTestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplUnitUnderTestRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>UnitUnderTest</name><ref_to>UnitUnderTest</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplUnitUnderTestRoot</inverse_name></relation_attribute>
+         <relation_attribute><name>TplGroup</name><ref_to>TplGroup</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplUnitUnderTestRoot</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplTestStep</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>Version</name><base_attribute>version</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>20</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>version_date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>ValidFlag</name><datatype>DT_ENUM</datatype><enumeration_type>valid_enum</enumeration_type><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplUnitUnderTestRoot</name><ref_to>TplUnitUnderTestRoot</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestStep</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestEquipmentRoot</name><ref_to>TplTestEquipmentRoot</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestStep</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestSequenceRoot</name><ref_to>TplTestSequenceRoot</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestStep</inverse_name></relation_attribute>
+         <relation_attribute><name>TestSteps</name><ref_to>TestStep</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestStep</inverse_name></relation_attribute>
+         <relation_attribute><name>TplTestStepUsage</name><ref_to>TplTestStepUsage</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestStep</inverse_name></relation_attribute>
+         <relation_attribute><name>TplGroup</name><ref_to>TplGroup</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplTestStep</inverse_name></relation_attribute>
+         <relation_attribute><name>TplMeaResult</name><ref_to>TplMeaResult</ref_to><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplTestStep</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>TplUnitUnderTestComp</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Optional</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>DefaultActive</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>TestStepSeriesVariable</name><datatype>DT_BOOLEAN</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Sortindex</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>TplUnitUnderTestRoot</name><ref_to>TplUnitUnderTestRoot</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplUnitUnderTestComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplCompParent</name><ref_to>TplUnitUnderTestComp</ref_to><base_relation>parent</base_relation><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplCompChildren</inverse_name></relation_attribute>
+         <relation_attribute><name>CatUnitUnderTestComp</name><ref_to>CatUnitUnderTestComp</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>TplUnitUnderTestComp</inverse_name></relation_attribute>
+         <relation_attribute><name>TplCompChildren</name><ref_to>TplUnitUnderTestComp</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplCompParent</inverse_name></relation_attribute>
+         <relation_attribute><name>TplUnitUnderTestAttr</name><ref_to>TplUnitUnderTestAttr</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>TplUnitUnderTestComp</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>UserParameter</name><basetype>AoAny</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Value</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>References</name><datatype>DS_EXTERNALREFERENCE</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>254</length></application_attribute>
+         <relation_attribute><name>SystemParameter</name><ref_to>SystemParameter</ref_to><base_relation>parent</base_relation><min_occurs>1</min_occurs><max_occurs>1</max_occurs><inverse_name>UserParameter</inverse_name></relation_attribute>
+         <relation_attribute><name>User</name><ref_to>User</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>UserParameter</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>MDMLog</name><basetype>AoLog</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>100</length></application_attribute>
+         <application_attribute><name>DateCreated</name><base_attribute>date</base_attribute><datatype>DT_DATE</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>User</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>Application</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <application_attribute><name>Priority</name><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>Message</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>4000</length></application_attribute>
+      </application_element>
+      <application_element><name>MDMTagParameterSet</name><basetype>AoParameterSet</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <relation_attribute><name>MDMTag</name><ref_to>MDMTag</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>MDMTagParameterSet</inverse_name></relation_attribute>
+         <relation_attribute><name>MDMTagParameter</name><ref_to>MDMTagParameter</ref_to><base_relation>parameters</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>MDMTagParameterSet</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>NameMap</name><basetype>AoNameMap</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>30</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>EntityName</name><base_attribute>entity_name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>30</length></application_attribute>
+         <application_attribute><name>AliasNames</name><base_attribute>alias_names</base_attribute><datatype>DS_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>100</length></application_attribute>
+         <relation_attribute><name>AttributeMap</name><ref_to>AttributeMap</ref_to><base_relation>attribute_mapping</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>NameMap</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>PhysDimension</name><basetype>AoPhysicalDimension</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>true</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <application_attribute><name>Description</name><base_attribute>description</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>false</obligatory><unique>false</unique><length>500</length></application_attribute>
+         <application_attribute><name>Length</name><base_attribute>length_exp</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Mass</name><base_attribute>mass_exp</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Time</name><base_attribute>time_exp</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Current</name><base_attribute>current_exp</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>Temperature</name><base_attribute>temperature_exp</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>MolarAmount</name><base_attribute>molar_amount_exp</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>LuminousIntensity</name><base_attribute>luminous_intensity_exp</base_attribute><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <application_attribute><name>angle</name><datatype>DT_LONG</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>1</length></application_attribute>
+         <relation_attribute><name>Units</name><ref_to>Unit</ref_to><base_relation>units</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>PhysDimension</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>Project</name><basetype>AoTest</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype>DT_LONGLONG</datatype><autogenerate>true</autogenerate><obligatory>true</obligatory><unique>true</unique><length>1</length></application_attribute>
+         <application_attribute><name>Name</name><base_attribute>name</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>50</length></application_attribute>
+         <application_attribute><name>MimeType</name><base_attribute>mime_type</base_attribute><datatype>DT_STRING</datatype><autogenerate>false</autogenerate><obligatory>true</obligatory><unique>false</unique><length>256</length></application_attribute>
+         <relation_attribute><name>StructureLevel</name><ref_to>StructureLevel</ref_to><base_relation>children</base_relation><min_occurs>0</min_occurs><max_occurs>Many</max_occurs><inverse_name>Project</inverse_name></relation_attribute>
+         <relation_attribute><name>Classification</name><ref_to>Classification</ref_to><min_occurs>0</min_occurs><max_occurs>1</max_occurs><inverse_name>Project</inverse_name></relation_attribute>
+      </application_element>
+      <application_element><name>ResultParameterSet</name><basetype>AoParameterSet</basetype>
+         <application_attribute><name>Id</name><base_attribute>id</base_attribute><datatype&