<?xml version="1.0" encoding="UTF-8"?>
<!--
   This file is provided under the terms of the MIT license reproduced here.
   Copyright © 2021 prostep ivip association
   
   Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
   The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.		
   
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   
   Generated Schema from VEC model. Changelog can be found at https://track.prostep.com/browse/KBLFRM.
   Attention: If this is a SNAPSHOT version, then this schema is produced by a nightly or preview build, 
   is NO OFFICIAL RELEASE and can change at any time.

   Version:   2.2.0
   Revision:  4ec01f46a1c020e9ba5a0ba2c5b729c9bded366e
   Timestamp: 2025-09-19
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
<xs:schema xmlns:vec="http://www.prostep.org/ecad-if/2011/vec"
           xmlns:mt="http://www.prostep.org/ecad-if/2022/model-meta"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.prostep.org/ecad-if/2011/vec"
           version="2.2.0">
   <xs:element name="VecContent" type="vec:VecContent"/>
   <xs:complexType name="AbstractLocalizedString" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">Abstract super-class for Localized text values.</xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="LanguageCode" type="vec:LanguageCode">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>References the corresponding languageCode of the value.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Value" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The value of the LocalizedString in language defined by the languageCode.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="AbstractSlot" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>AbstractSlot</i>represents a geometrical location in a connector housing that can<b>contain or group one or more cavities</b>. This grouping can happen in two different ways:</p>
            <ul>
               <li>
                  <b>Directly</b>, via a<i>Slot</i>, where the slot is an<b>inseparable part of the connector housing</b>, formed during the manufacturing process.</li>
               <li>
                  <b>Indirectly</b>, via a<i>ModularSlot</i>, which serves as a<b>placeholder</b>where other connector housings (modules) can be inserted during assembly.</li>
            </ul>
            <p>The<i>AbstractSlot</i>is primarily relevant on the<b>mating side</b>of the connector. It enables a logical and geometrical grouping of cavities that may affect how mating is performed.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="SlotNumber" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the number of the slot. This must be unique within a ConnectorHousingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SlotSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the SlotSpecification that is satisfied by the slot.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SlotSpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Coding" type="vec:Coding" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Defines coding of the slot that is satisfied by the Slot.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="AbstractSlotReference" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>AbstractSlotReference</i>represents the usage of an AbstractSlot in the context of PartUsage or PartOccurrence.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the SlotReference. The identification is guaranteed to be unique within the ConnectorHousingRole. The cavity &amp; slot number is defined by the associated cavity and slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedSlot" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Points to the slot referenced by the slot reference.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:AbstractSlot" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="AliasIdentification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Class for the definition of alias identifications. Alias identifications are additional identifications for VEC-elements, which are valid in a certain scope (e.g. PPS-ID's).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="IdentificationValue" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the identification value.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Type" type="vec:AliasIdentificationType" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Defines the type (or the role) of the AliasIdentification. Defined literals are contained in an OpenEnumeration.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Scope" type="xs:string" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The scope in which the AliasIdentification is valid / or the issuer of the alias id. This could be for example a certain process, a company or an IT-System.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Description"
                     type="vec:AbstractLocalizedString"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>On optional human readable description of the AliasIdentification.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="AntennaRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>AntennaRole</i>defines the instance specific properties and relationships of an antenna.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="AntennaSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification of the electrological aspects of an antenna.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="FMin" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the minimum operating frequency of the antenna.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FMax" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the maximum operating frequency of the antenna.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Impedance" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the impedance of the antenna.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ApplicationConstraint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>ApplicationConstraint</i>defines a condition with which it is possible to express the inclusion or exclusion of ConfigurableElements in different variants of a product. The<i>ApplicationConstraint</i>is focused to express validity rules based on time periods or elements of the product hierarchy in a concise way (attributes and relationships). It is complementary to the<i>VariantConfiguration</i>which expresses validity rules based on control strings.</p>
            <p>An<i>ApplicationConstraint</i>can reference another<i>ApplicationConstraint</i>as<i>baseInclusion</i>. In this case, an<i>ApplicationConstraint</i>can only be satisfied if its<i>baseInclusion</i>is also satisfied.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:ApplicationConstraintType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines if the application constraint is positive (allowance) or negative (denial). If the<i>ApplicationConstraint</i>has a<i>baseInclusion</i>that<i>baseInclusion</i>shall define the same type.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FromDate" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the lower bound of the time period to which the application constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToDate" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the upper bound of the time period to which the application constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FromSerialNumber" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the lower bound of a serial number range to which the application constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToSerialNumber" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the upper bound of a serial number range to which the application constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ProjectPhase"
                           type="xs:string"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the project phases to which the application constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FromEffectivityControlKey" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>In the production logistics of complex products (like vehicles), the control of operation and cancellation dates of changes, features, components or the like is usually not carried out via concrete dates but via "date keys". These keys are then mapped in planning systems with concrete time specifications for certain plants or production steps. In the VEC these keys are called<i>EffectivityControlKey.</i>
                        </p>
                        <p>With the<i>FromEffectivityControlKey</i>and<i>To</i>
                           <i>EffectivityControlKey</i>a validity interval can be defined. If one of the two values is defined and the other is omitted, the meaning shall be "unbounded".</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToEffectivityControlKey" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>See<i>FromEffectivityControlKey.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BaseInclusion" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>An<i>ApplicationConstraint</i>can only be satisfied if its<i>baseInclusion</i>is satisfied as well. </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ApplicationConstraint"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Project" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> Defines the projects for which the application constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Project"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ApplicationConstraintSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of application constraints. The associated ApplicationConstraints are restricting the possible usages of the associated<i>ConfigurableElements</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="ApplicationConstraint"
                           type="vec:ApplicationConstraint"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ApplicationConstraints.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Approval">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the approval of an ItemVersion. This consists of the StatusOfApproval, and the Permissions issued for the approval.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the approval. The identification is guaranteed to be unique over all VEC-documents. Normally this would reference to a company specific approval number or something similar. KBLFRM-349</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional information about the item.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CompanyInScope"
                           type="xs:string"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify for which companies the Approval is valid. It might be e.g. that an approved Item may only be delivered by some specific company.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Status" type="vec:StatusOfApproval">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The approval level concerning approval status. Predefined are the values: NotYetApproved, Approved and Withdrawn. The status refers to the status of the<i>Approval</i>, not the status of the<i>ItemVersion.</i>So, e.g. withdrawn means the approval (with its corresponding level) has been withdrawn, not the<i>ItemVersion</i>itself.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LevelOfApproval" type="vec:LevelOfApproval" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Relates to activities that are allowed with the ItemVersion after release for example building pilot tools or production tools. The levelOfApproval applies to the<i>ItemVersion</i>itself without further detailing or additional context. So, for example "Free" means, that from a component's perspective the corresponding<i>PartVersion</i>has satisfied all qualification procedures and can be used within its specified limits without restriction.</p>
                        <p>The levels<i>Planned</i>,<i>Free</i>,<i>Invalid</i>refer to a single approval level. The levels<i>Develop</i>and<i>Restricted</i>refer to a category of approval levels in the lifecycle of an<i>ItemVersion</i>that all belong to the same phase but are highly company specific. For example,<i>d</i>
                           <i>evelop</i>approvals might be a "a start of construction approval" or a "building of prototypes or tools allowed approval". "Restricted" approvals might be "only for special purpose vehicles", "spare part only" or "residual parts may be used up".</p>
                        <p>In these cases, the<i>additionalLevelInformation</i>can be used to provide further information (e.g. a company specific approval level).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AdditionalLevelInformation" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Additional potentially company specific information about the level of approval (e.g. further detailing of a "Restricted" approval.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Permission"
                           type="vec:Permission"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the permission issued with the approval.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="AssignmentGroup">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>AssignmentGroup</i>is a concept that allows the clustering of arbitrary elements in ways that are orthogonal to hierarchical and semantic structure of the VEC.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the AssignmentGroup. The identification is guaranteed to be unique within the specification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>AssignmentGroup</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="AssignmentGroupSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification that contains<i>AssignmentGroups</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="AssignmentGroup"
                           type="vec:AssignmentGroup"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Contains the AssignmentGroups that are defined by this AssignmentGroupSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BaselineSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>BaselineSpecification</i>defines a set of<i>ItemVersion</i>s (<i>Document-</i>and<i>PartVersions</i>) that relate to each other in a certain way e.g. all parts and documents in their specific versions that contributed to a specific manufactured result.</p>
            <p>Baselines are a standard mechanism to support change, release and configuration management.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="State" type="vec:BaselineState" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the state of the baseline itself (e.g. if it is finalized or work in progress).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Content" type="vec:BaselineContent" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the state of the content of the baseline in regard of its defined scope.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValidVersions" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>ItemVersions</i>that are the content of the baseline.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ItemVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BatteryRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>BatteryRole</i>defines the instance specific properties and relationships of a battery.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BatterySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification of the electrological aspects of a battery.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="U" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the nominal voltage of the battery.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="I" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the current the battery provides.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ICool" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the battery's current in cool state.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Capacity" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the power capacity of the battery.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BoltMountedFixingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>BoltMountedFixingRole</i>defines the instance specific properties and relationships of a bolt mounted fixing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:FixingRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BoltMountedFixingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for fixings that are mounted onto a bolt. This means the fixing itself has got a hole, which is mounted onto a bolt of the surrounding. </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:FixingSpecification">
            <xs:sequence>
               <xs:element name="BoltType" type="vec:BoltMountedFixingBoltType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the bolt on which the fixing can be mounted.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltShape"
                           type="vec:BoltMountedFixingBoltShape"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the shape of the bolt on which the fixing can be mounted.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the bolt on which the fixing can be mounted.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltHeight" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the height of the bolt on which the fixing can be mounted.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BoltTerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>BoltTerminalRole</i>defines the instance specific properties and relationships of a bolt terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BoltTerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of bolt terminals. These are the counterparts to ring terminals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalSpecification">
            <xs:sequence>
               <xs:element name="BoltDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the bolt in a numerical way.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltHeight" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> Specifies the height of the bolt (the height of the part to which ring terminals can be attached).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltNominalSize"
                           type="vec:TerminalBoltNominalSize"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the size (diameter) of the bolt in a nominal way (e.g. "M8").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltType" type="vec:TerminalBoltType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the bolt.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TorsionProtection" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the bolt provides torsion protected or not.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaxTerminalCount" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> Defines the maximum number of (ring) terminals that can be attached to this bolt at the same time.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BooleanValueProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property with a Boolean value.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="xs:boolean">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the CustomProperty.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BoundingBox">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The bounding box is defined for the processed state of the component, as it appears in the finished product. Therefore, it is valid to use the bounding box as simplified geometry of the component for viewing or simple DMU operations. For correct 3D positioning, the bounding might require a transformation in the coordinate system of the component (see<i>LocalGeometrySpecification.BoundingBoxPositioning</i>).</p>
            <p>The bounding box defines the smallest cuboid (box) that can contain a described part completely. If a component has multiple variants, the bounding box is the smallest cuboid that can contain every variant, while maintaining the spatial orientation of the bounding box and component variants.</p>
            <p>It is valid to use the<i>BoundingBox</i>to describe the dimensions of a component, even if not all dimensions are known (e.g. only length and width). However, it must be possible to transform such a partial bounding box into a complete bounding box by adding the missing dimensions.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="X" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the extent of the bounding box in the direction of x<i/>(length).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Y" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the extent of the bounding box in the direction of y<i/>(width).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Z" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the extent of the bounding box in the direction of<i>z</i>(height).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BridgeTerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>BridgeTerminalRole</i>defines the instance specific properties and relationships of a bridge terminal (see BridgeTerminalSpecification).</p>
            <p>A bridge terminal is a part that behaves like terminal but has no<i>WireReceptions.</i>It is used to create short circuit between different pins in a connector. In its use, it can realize a schematic connection on its own and independently of other components.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalRole">
            <xs:sequence>
               <xs:element name="Connection" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>Connection</i>that is realized by this<i>BridgeTerminalRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Connection"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BridgeTerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A bridge terminal is a part that behaves like terminal but has no<i>WireReceptions.</i>It is used to create short circuit between different pins in a connector. In its use, it can realize a schematic connection on its own and independently of other components.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalSpecification"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BuildingBlockPositioning2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the position of a BuildingBlock2D on a HarnessDrawing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique (optional) identification of the BuildingBlockPositioning2D. The identification is guaranteed to be unique within the HarnessDrawingSpecification2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Referenced2DBuildingBlock" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the building block which is placed on the harness drawing.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:BuildingBlockSpecification2D"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CenterPoint" type="vec:CartesianPoint2D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the center point of the BuildingBlock in the coordinate system of the harness drawing.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BuildingBlockPositioning3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the position of a BuildingBlock3D in the HarnessGeometry.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique (optional) identification of the BuildingBlockPositioning3D. The identification is guaranteed to be unique within the HarnessGeometrySpecification3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Referenced3DBuildingBlock" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the building block that is positioned.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:BuildingBlockSpecification3D"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Positioning" type="vec:Transformation3D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the positioning of the building block in the harness geometry.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BuildingBlockSpecification2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of a two-dimensional building block. A building block is a reusable section of a geometry.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="BaseUnit" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Unit" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoundingBox" type="vec:CartesianDimension">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the size of the area described by the BuildingBlockSpecification2D in Cartesian dimensions.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CartesianPoint"
                           type="vec:CartesianPoint2D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the CartesianPoint2Ds that are used in the BuildingBlockSpecification2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GeometryNode"
                           type="vec:GeometryNode2D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the GeometryNode2Ds defined by the BuildingBlockSpecification2D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GeometrySegment"
                           type="vec:GeometrySegment2D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the GeometrySegment2Ds defined by the BuildingBlockSpecification2D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacedElementViewItem"
                           type="vec:OccurrenceOrUsageViewItem2D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the view items for OccurrenceOrUsages on a BuildingBlockSpecification2D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="BuildingBlockSpecification3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of a three-dimensional building block. A building block is a reusable section of a geometry.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="BaseUnit" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Unit" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TopologyZone" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the Zone that is building block represents. This shall be a TopologyZone with the type "DmuZone".</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologyZone" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CartesianPoint"
                           type="vec:CartesianPoint3D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the CartesianPoint3Ds that are used in the BuildingBlockSpecification3D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GeometryNode"
                           type="vec:GeometryNode3D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the GeometryNode3Ds defined by the BuildingBlockSpecification3D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GeometrySegment"
                           type="vec:GeometrySegment3D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the GeometrySegment3Ds defined by the BuildingBlockSpecification3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacedElementViewItem3D"
                           type="vec:OccurrenceOrUsageViewItem3D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the view items for OccurrenceOrUsages in a BuildingBlockSpecification3D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableDuctOutlet">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies one outlet of the cable duct.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the identification of the Outlet. This must be unique within a CableDuctSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PlacementPoint</i>that represents this<i>CableDuctOutlet</i>in a PlaceableElementSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableDuctRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableDuctRole</i>defines the instance specific properties and relationships of a cable duct.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="CableDuctSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>CableDuctSpecification</i>that is instanced by this<i>CableDuctRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableDuctSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableDuctSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for cable ducts. A cable duct can have one or more outlets.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="Outlet"
                           type="vec:CableDuctOutlet"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableLeadThrough">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableLeadThrough</i>specifies a hole in the grommet through which wires can pass through the grommet. There can be different technical realizations of a lead through, e.g. it can be realized with a shrinking material or an additional seal. The properties of a<i>CableLeadThrough</i>are defined in the referenced<i>CableLeadThroughSpecification</i>.</p>
            <p>For a precise placement in topology, a<i>CableLeadThrough</i>specifies outlets.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the identification of the CableLeadThrough. This must be unique within a GrommetSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableLeadThroughSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>CableLeadThroughSpecification</i>that defines the technical properties of this<i>CableLeadThrough.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableLeadThroughSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Outlet"
                           type="vec:CableLeadThroughOutlet"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>CableLeadThrough.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableLeadThroughOutlet">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>CableLeadThrough</i>
            <i>CableLeadThroughs</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the identification of the<i>CableLe</i>adThroughOutlet. This must be unique within a<i>CableLeadThrough</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PlacementPoint</i>that represents this<i>CableLeadThroughOutlet</i>in a PlaceableElementSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SupplementaryParts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartRelations</i>that specify supplementary parts for this<i>CableLeadThroughOutlet</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartRelation"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableLeadThroughOutletReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableLeadThroughOutletReference</i>is the instance of a<i>CableLeadThroughOutlet</i>. It can define a set of cable seals or plugs as supplementary parts. Plugs are used if no wire is present, seals are used together with a wire.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the CableLeadThroughReference. The identification is guaranteed to be unique within the GrommetRole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableLeadThroughOutlet" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableLeadThroughOutlet"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsedSupplementaryParts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>This is the relationship of the supplementary parts actually used in this<i>CableLeadThroughOutletReference.</i>This is the actual selection of the potential supplementary parts defined in the corresponding<i>Slot.supplementaryParts</i>association.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableLeadThroughReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableLeadThroughReference</i>is the instance of a<i>CableLeadThrough</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the CableLeadThroughReference. The identification is guaranteed to be unique within the GrommetRole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableLeadThrough" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableLeadThrough" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsedPlugs" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the plugs that are used with this CableLeadThroughReference. This association might be a 150% selection.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityPlugRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                        <mt:deprecated reason="Use a cable seal plug as supplementary part instead."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsedSeals" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavitySealRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                        <mt:deprecated reason="Use a cable seal as supplementary part instead." since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableLeadThroughOutletReference"
                           type="vec:CableLeadThroughOutletReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableLeadThroughSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableLeadThrough</i>specifies a hole in the grommet through which wires can pass through the grommet. The<i>CableLeadThroughSpecification</i>defines the technical properties of a<i>CableLeadThrough</i>(or a set of similar ones).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Type" type="vec:CableLeadThroughType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of a cable lead through. Standardized values are defined in an<i>OpenEnumeration</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Geometry" type="vec:CableLeadThroughGeometry" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the geometry of a cable lead through in the sealing area. Standardized values are defined in an<i>OpenEnumeration</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SealingDimension" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the dimension of the cable lead through in the sealing area.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MinSegmentOutsideDiameter"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the minimum diameter a segment can have to fit through the cable lead through. This definition is necessary, since segments that are too small might cause movements and unacceptable torsion forces or they are not sealable.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaxSegmentOutsideDiameter"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the maximum diameter a segment can have to fit into the cable lead through.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Sealable" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the cable lead through is sealable.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableSealEntry">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Provides an identifier for the<i>CableSealEntry</i>. The<i>Identification</i>shall be unique within a<i>CableSealSpecification.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireElementOutsideDiameter"
                           type="vec:ValueRange"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a range of valid wire diameters to which the<i>CableSealEntry</i>fits.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsideDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the inside diameter in the relaxed state for the opening in the cable seal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Position" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>Cavity</i>
                        <i>CavityLayout</i>
                        <i>CableSealSpecification</i>
                        <i>CableSealEntry</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableSealEntryReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Provides an identifier for the<i>CableSealEntryReference</i>. The<i>Identification</i>shall be unique within a<i>CableSealRole.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PositionOnWire" type="xs:double" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the position of this<i>CableSealEntryReference</i>on its associated<i>WireElementReference</i>. This value is analogous to<i>WireEnd.PositionOnWire</i>(see that documentation for details) and must be between 0 and 1. Note that it is<strong>not</strong>a fraction of the wire's total length used to compute an exact physical location.</p>
                        <p>Its primary purpose is to indicate which side of the wire the seal entry is associated with. By definition, all<i>WireEnd</i>instances sharing the same<i>PositionOnWire</i>lie on the same side of the wire - and the same rule applies to<i>CableSealEntryReference.PositionOnWire</i>. Accordingly, properties such as<i>sealInsertionDepth</i>are always measured relative to the<i>WireEnd</i>with the matching<i>PositionOnWire</i>.</p>
                        <p>In cases where the seal's position is determined by other topology elements (for example, the placement of a grommet) rather than a specific<i>WireEnd</i>, the<i>PositionOnWire</i>attribute may be omitted.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SealInsertionDepth" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>WireEnd</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AssociatedWireElementRef" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireElementReference"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableSealEntry" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableSealEntry" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableSealPlugRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableSealPlugRole</i>defines the instance specific properties and relationships of a cable seal plug.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="CableSealPlugSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableSealPlugSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SealingPinReference"
                           type="vec:SealingPinReference"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableSealPlugSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>CableSealEntry</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="CavityLayout" type="vec:CavityLayout" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SealingPin" type="vec:SealingPin" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableSealRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableSealRole</i>defines the instance specific properties and relationships of a cable seal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="CableSealSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableSealSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableSealEntryReference"
                           type="vec:CableSealEntryReference"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableSealSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>Specification</i>for seals that are associated with one or more wires and not with specific cavity or crimp. A CavitySeal is a watertight non-electrical object to fill a populated Cavity. Cable seals are designed to seals specific areas (covering one or more wires) in a connector or a grommet. A cable seal is used on a cable outside the crimp. A<i>CableSealSpecification</i>defines one or more<i>CableSealEntries.</i>Cable seals can have more than one entry with different wire sizes.</p>
            <p> </p>
            <p>There are two variants of cable seals:</p>
            <ol>
               <li>The cable seal has openings for all possible assignments. Openings that are unpopulated in a specific configuration must be sealed with a cable seal plug. A cable seal plug can seal one or multiple openings at the same time and can also provide additional functions, like serving as seal retainer.</li>
               <li>The cable seal is available in different versions, each with different openings of the theoretically possible ones that are actually open.</li>
            </ol>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="CableSealEntry"
                           type="vec:CableSealEntry"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityLayout" type="vec:CavityLayout" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableTieRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CableTieRole</i>defines the instance specific properties and relationships of a cable tie.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="CableTieSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableTieSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CableTieSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of cable ties.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="Length" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Width" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Thickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TensioningStrength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CapacitorRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>CapacitorRole</i>defines the instance specific properties and relationships of a capacitor.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CapacitorSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification of the electrological aspects of a capacitor. </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="Capacity" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Impedance" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UMax" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> The breakdown voltage of the capacitor.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CartesianDimension">
      <xs:annotation>
         <xs:documentation xml:lang="en">The CartesianDimension specifies the size of an object in 2D-space.</xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Height" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the height of the object. The unit of this value is the baseUnit of containing BuildingBlockSpecification2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Width" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the width of the object. The unit of this value is the baseUnit of containing BuildingBlockSpecification2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CartesianPoint2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CartesianPoint2D is a point that is defined by its coordinates in a rectangular two-dimensional Cartesian coordinate system.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="X" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of x-coordinate of the Cartesian point. The unit of this value is the baseUnit of containing BuildingBlockSpecification2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Y" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of y-coordinate of the Cartesian point. The unit of this value is the baseUnit of containing BuildingBlockSpecification2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CartesianPoint3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CartesianPoint3D is a point that is defined by its coordinates in a rectangular three-dimensional Cartesian coordinate system.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="X" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of x-coordinate of the Cartesian point. The unit of this value is the baseUnit of containing BuildingBlockSpecification3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Y" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of y-coordinate of the Cartesian point. The unit of this value is the baseUnit of containing BuildingBlockSpecification3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Z" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of z-coordinate of the Cartesian point. The unit of this value is the baseUnit of containing BuildingBlockSpecification3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CartesianVector" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract super class for vectors, either 2D or 3D.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CartesianVector2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Cartesian vector in the two-dimensional space.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CartesianVector">
            <xs:sequence>
               <xs:element name="X" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the x-coordinate in 2D space.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Y" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the y-coordinate in 2D space.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CartesianVector3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Cartesian vector in three-dimensional space.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CartesianVector">
            <xs:sequence>
               <xs:element name="X" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the x-coordinate in 3D space.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Y" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the y-coordinate in 3D space.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Z" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the z-coordinate in 3D space.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Cavity">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A cavity is a defined space in a connector housing for location of an electrical terminal or cavity plug or seal. A cavity may also be empty.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Available" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines whether the cavity is available for contacting. If the cavity is not available, it means that it is completely closed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityNumber" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Provides an identifier for the cavity. The cavity number needs to be unique within a<i>Slot</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HasIntegratedTerminal" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines whether the cavity has an integrated terminal (for example an IDC cavity) or if an additional terminal is required.</p>
                        <p>If this attribute is "true", the cavity can reference a<i>TerminalSpecification</i>as<i>integratedTerminalSpecification</i>in order to specify the integrated terminal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavitySpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the CavitySpecification that is satisfied by the cavity.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavitySpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IntegratedTerminalSpecification"
                           type="xs:IDREF"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the terminal, if the cavity has an integrated terminal (e.g. an IDC).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PositionDetail" type="vec:CavityPositionDetail" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityAccessoryRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CavityAccessoryRole</i>defines the instance specific properties and relationships of a cavity accessory.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPartRole">
            <xs:sequence>
               <xs:element name="CavityAccessorySpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityAccessorySpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityAccessorySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CavityAccessory</i>is a non-electrical part used in a cavity with no sealing properties (e.g. a wire fixation).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPartSpecification">
            <xs:sequence>
               <xs:element name="WireElementOutsideDiameter"
                           type="vec:ValueRange"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a range of valid wire diameters to which the cavity accessory fits.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReceptionType" type="vec:WireReceptionType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the wireReceptionType to which the cavity accessory fits.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityAddOn">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the wire addon needed to reach a<i>Cavity</i>from a specific<i>SegmentConnectionPoint</i>. More specifically, it is the addon required to calculate the cutting length of a wire. It is not a measured distance between the segment connection point and the insertion point of the cavity. For each<i>SegmentConnectionPoint</i>there shall be no more than one add-on value per cavity and type.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="WireAddOn" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the wire length add on needed for the cavity.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Type" type="vec:WireAddOnType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the add-on (see<i>CavityAddOn</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Cavity" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityCoupling">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CavityCoupling</i>defines the mapping between two cavities of the<i>ConnectorHousingRoles</i>associated with the<i>CouplingPoint</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="coupling"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstCavity" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityReference" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondCavity" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityReference" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityLayout">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CavityLayout</i>represents a specific configuration pattern for a component with cavities. It defines a set of<i>virtualCavities</i>that serve as placeholders for the actual cavities provided by component that satisfies this layout (e.g. a contact module).</p>
            <p>It acts as a structural template, such as single-pole, five-pole, or multi-row configurations, that allows the definition of properties (e.g. a cavity mapping) for all components that satisfy this layout, instead of specifying those for each component individually (e.g. a cavity mapping for a contact modules within a specific modular slot of a collector housing). Its purpose is to create a layer of indirection between.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>ModularSlotLayout</i>. The identification is guaranteed to be unique within the<i>ModularSlot</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VirtualCavity"
                           type="vec:Cavity"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityMapping">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the mapping of two cavities contained Slot A &amp; B of the containing SlotMapping-object.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="IdentificationA" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of the Cavity on side A</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IdentificationB" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of the Cavity on side B</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityMounting">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CavityMounting defines the cavities (CavityReference) where the contacted elements (Terminal) will be mounted.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="contacting"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CavityAccessory" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityAccessoryRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EquippedCavityRef" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the cavities that are used for the cavity mounting.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityReference"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReplacedPlug" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the cavity plugs that are obsolete if the cavity mounting is realized.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityPlugRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityMountingDetail"
                           type="vec:CavityMountingDetail"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the CavityMoutingDetails, if a detailed description of the relationships between Cavities and TerminalReceptions is needed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityMountingDetail">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>With a CavityMountingDetail it is possible to describe a detailed cavity mounting.</p>
            <p>This is needed if the information which terminal reception is mounted into which cavity is important. There are cases where this information can be relevant (e.g. bridge contacts with an asymmetric wire mounting).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="contacting"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="EquippedCavityRef" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the cavity that is used for the detailed description of the cavity mounting.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityReference" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalReceptionReference" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TerminalReception that is used for the detailed description of the cavity mounting.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalReceptionReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityPartRole" abstract="true">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityPartSpecification" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>CavityPartSpecification</i>is an abstract class for common properties of non-electrical parts that are used in<i>Cavities</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="CavityDimension"
                           type="vec:Size"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a valid cavity dimension to which the cavity part fits. The dimension defines the size of the sealing area of the cavity (crimp end), not in the contacting area (box end).</p>
                        <p>Note: CavityDimension is of type Size which is defined as x &amp; y with type NumericalValue. NumericalValue can define tolerances. So, a cavity dimension is not necessarily a single fixed value.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Hardness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the hardness of the cavity seal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Geometry" type="vec:SealingGeometry" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the geometry of the cavity sealing.</p>
                        <p> </p>
                        <p>This attribute is defined as an OpenEnumeration.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CompatibleTerminalType"
                           type="vec:TerminalType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines a list of terminal types that are compatible to this CavitySealSpecification. This defines the compatible cavities as well, since a plug is normally used when no terminals are present.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CompatibleCavityGeometry"
                           type="vec:CavityGeometry"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines a list of<i>CavityGeometries</i>that are compatible with this cavity part.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityPlugRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CavityPlugRole defines the instance specific properties and relationships of a cavity plug.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPartRole">
            <xs:sequence>
               <xs:element name="CavityPlugSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>CavityPlugSpecification</i>that is instanced by this<i>CavityPlugRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityPlugSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PluggedCavityRef" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Defines which cavity / cavities in a connector instance is sealed by the plug.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityReference"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityPlugSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of cavity seals. A cavity plug is a watertight non-electrical object to fill an empty cavity.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPartSpecification"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityPositionDetail">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>CavityPositionDetail</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Rotation" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The rotation of the cavity is defined as the angle between the primary locking of the cavity and the Y-axis of the connector housing coordinate system.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavitySealingOffset" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>insertionPosition</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsertionDepth" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>insertionDepth</i>
                        <i>InsertionPosition</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BaseUnit" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>Unit</i>in which all coordinates (e.g. cartesian points) of this<i>CavityPositionDetail </i>are defined. Shall be a unit of length (e.g. millimetre).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Unit" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsertionPosition" type="vec:CartesianPoint3D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The position of the center of the cavity in the entrance surface of the connector during the insertion process.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsertionVector" type="vec:CartesianVector3D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>InsertionPosition</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavityReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CavityReference represents the usage of a Cavity in the context of PartUsage or PartOccurrence.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the CavityReference. The identification is guaranteed to be unique within the ConnectorHousingRole. The cavity &amp; slot number is defined by the associated cavity and slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentPort" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>ComponentPort</i>that is implemented by this<i>CavityReference</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentPort"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedCavity" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Points to the cavity referenced by the cavity reference.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IntegratedTerminalRole" type="vec:TerminalRole" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Contains the terminal role if the cavity has an integrated terminal (e.g. an IDC).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavitySealRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CavitySealRole defines the instance specific properties and relationships of a cavity seal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPartRole">
            <xs:sequence>
               <xs:element name="CavitySealSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>CavitySealSpecification</i>that is instanced by this<i>CavitySealRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavitySealSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavitySealSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of cavity seals. A<i>CavitySeal</i>is a watertight non-electrical object to fill a populated Cavity. A<i>CavitySeal</i>is normally used at a<i>WireEnd</i>within the crimp of a terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPartSpecification">
            <xs:sequence>
               <xs:element name="WireElementOutsideDiameter"
                           type="vec:ValueRange"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a range of valid wire diameters to which the cavity seal fits.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReceptionType" type="vec:WireReceptionType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the wireReceptionType to which the cavity seal fits.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsideDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the inside diameter in the relaxed state for a cavity seal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CavitySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of cavities.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Angle"
                           type="vec:NumericalValue"
                           minOccurs="0"
                           maxOccurs="2">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the angle against two planes of the connector housing a terminal used in this cavity can be buckled.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityDesign" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                        <mt:deprecated reason="Replaced by the more meaningful mechanism TerminalTypes."
                                       since="1.1.4"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Geometry" type="vec:CavityGeometry" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the geometry of a cavity in the sealing area (crimp end).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityDimension" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the dimension of the cavity in the sealing area of the cavity (crimp end), not in the contacting area (box end).</p>
                        <p>The<i>Height</i>of a cavity is defined as the dimension of cavity in the direction of the primary locking. The<i>Width</i>is the dimension orthogonal to the<i>Height.</i>
                        </p>
                        <p>For cavities with<i>Geometry = Circular</i>the<i>Size.Width</i>shall be equal to<i>Size.Height.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MinWireElementOutsideDiameter"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the minimum diameter a wire is allowed to have to fit into the cavity. This definition is necessary, since wires that are too small might cause movements and in acceptable torsion forces on terminals.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaxWireElementOutsideDiameter"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the maximum diameter a wire is allowed to have to fit into the cavity.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PrimaryLockingType"
                           type="vec:PrimaryLockingType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the cavity has a primary locking and of what type it is.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Sealable" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the cavity is sealable.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CompatibleTerminalType"
                           type="vec:TerminalType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines a list of terminal types that are compatible to this CavitySpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavitySealingLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ChangeDescription">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A ChangeDescription describes the implemented issues that are reason for the aggregating ItemVersion to be either an initial or successor version. A ChangeDescription can optionally define the person who has approved the change.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies an identifier for the ChangeDescription. This can be the ID of a change order or an ID which indicates model upgrading. (see KBLFRM-249)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Label" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the label of the change on a drawing for example. If more than one change is issued with one ItemVersion (e.g. change 0001, 0002), in some cases the different changes are labelled on the drawing (e.g. A, B, C).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable, information about the ChangeDescription.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Approver" type="vec:Person" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person who has approved the change.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ChangeDate" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the date when the change was performed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ResponsibleDesigner" type="vec:Person" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the design engineer who is/was responsible to perform the change.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelatedChangeRequest"
                           type="xs:string"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the identification of a corresponding change request. (see KBLFRM-249)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CoatingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>CoatingRole</i>
            <i>WireEnd.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireEndAccessoryRole">
            <xs:sequence>
               <xs:element name="Length" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>WireEnd</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Weight" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>WireEnd.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Volume" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>WireEnd.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CoatingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CoatingSpecification is a special<i>WireEndAccessorySpecifications</i>are describing parts / procedures with which the wire end is treated before the actual terminal is attached to the<i>WireEnd</i>(e.g. a tin coating of the wire end). Properties of the procedure are defined by the referenced<i>WireReceptionSpecification</i>, e.g. the coating material is defined by the<i>GeneralTechnicalPartSpecification.MaterialInformation</i>
               <i>.</i>
            </p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireEndAccessorySpecification"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Coding">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the coding of a slot or a connector housing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Coding" type="vec:CodingName">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the coding.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Color">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a color value. A color is always defined by a key value. What color is meant by this key value is defined by a standard reference system (e.g. RAL).</p>
            <p>For example, if a RAL color should be expressed in the terms of the VEC the<i>referenceSystem</i>would be "RAL", the<i>key</i>would be the RAL number defined by the standard (e.g. "1003" for signal yellow).</p>
            <p>Color-attributes normally have the multiplicity [0..*]. This means that such an attribute can have a value for different referenceSystems (e.g. RAL, RGB,...). It must not have multiple values for the same ReferenceSystem.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Key" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The key of the color in the corresponding color reference system.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ReferenceSystem" type="vec:ColorReferenceSystem">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The identification of the color reference system, which is defining possible values and the semantic of color keys. (see KBLFRM-315). For common color reference systems, the literals defined in the open enumeration<i>ColorReferenceSystem</i>shall be used.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Description"
                     type="vec:LocalizedString"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>On optional human readable description of the color (e.g. the name).</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="ComplexProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property that represents a tuple of values.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="CustomProperty"
                           type="vec:CustomProperty"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The customProperties that represent the individual values of the complex property.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ComponentConnector">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ComponentConnector</i>is a grouping of<i>ComponentPorts</i>and represents a logical abstraction of a connector of an<i>EEComponent</i>. When the<i>ComponentNode</i>is realized by an<i>EEComponentRole</i>the<i>ComponentConnector</i>will result in a<i>HousingComponent.</i>
            </p>
            <p>It is permitted that a<i>ComponentConnector</i>is a 150% definition of connector.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies a unique identification of the ComponentConnector. The identification is guaranteed to be unique within the ComponentNode.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentPort"
                           type="vec:ComponentPort"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ComponentPorts of the ComponentConnector.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ComponentNode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A ComponentNode is a node where an electrological component is located. It is a representative for an element in the electric system, e.g. an actuator, a sensor, an ECU. In this way it is quite similar to a NetworkNode and may even reference the corresponding NetworkNode in this case. However, a ComponentNode is more likely to be used as a representative of an inliner or a splice. Moreover, a ComponentNode can define childNodes in order to describe its internal structure.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the ComponentNode. The identification is guaranteed to be unique within the ConnectionSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Abbreviation"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for a short name of the ComponentNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentNodeType" type="vec:ComponentNodeType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the ComponentNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the ComponentNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubType" type="vec:ComponentNodeSubType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the sub type of a ComponentNode. The sub type allows a differentiation within a specific type. E.g. an actuator can be differentiated into lamps, speakers, motors. </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetworkNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the NetworkNode that is realized by the ComponentNode.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetworkNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RealizedUsageNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>UsageNode</i>that is realized by this<i>ComponentNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:UsageNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ChildNode"
                           type="vec:ComponentNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ComponentNodes that are a child of this ComponentNode.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentConnector"
                           type="vec:ComponentConnector"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ComponentConnectors of a ComponentNode.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ComponentNodeViewItem">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ComponentNodeViewItem</i>represents a<i>ComponentNode</i>within a<i>ConnectionViewSpecification</i>and defines its position within the layout.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>ComponentNodeViewItem</i>. The identification is guaranteed to be unique within the<i>ConnectionViewSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GridSquare" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the grid square in which the<i>ComponentNodeViewIt</i>
                           <i>em</i>is placed (e.g. E/40).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DisplayedPort"
                           type="vec:ComponentPortViewItem"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies all<i>ComponentPortViewItems</i>that are displayed on this<i>ComponentNodeViewItem</i>
                           <i>.</i>The order of this association defines the clockwise arrangement of the ports on the node. As each<i>ComponentPortViewItem</i>can also define the side on which it is placed, side definitions take precedence over order.</p>
                        <p>
                           <i> </i>
                        </p>
                        <p>
                           <b>Caution:</b>This association is<u>ordered</u>!</p>
                        <p>
                           <i> </i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Orientation" type="vec:Transformation2D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ComponentPort">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines a port of ComponentNode. A ComponentPort is usually the realization of a NetworkPort. Electrological connections are defined between two or more ComponentPorts.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the ComponentPort. The identification is guaranteed to be unique within the ComponentConnector.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the element.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalDirection" type="vec:SignalDirection" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the direction of the signal on this ComponentPort.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the ComponentPort.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetworkPort" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the NetworkPort that is realized by the ComponentPort.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetworkPort" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Signal" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>Signal</i>that is associated with the<i>ComponentPort</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Signal" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ComponentPortViewItem">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>ComponentPortViewItem</i>
            <i/>
            <i>ComponentPort</i>
            <i>ComponentNodeViewItem</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Side" type="vec:ComponentPortViewItemSide" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ComponentNodeViewItem</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentPort" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ComponentPort</i>
                        <i>ComponentPortViewItem</i>
                        <i>.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentPort" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CompositeUnit">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines a unit as a composition of other units. The composition is done by multiplying the different other units. By this way combined units like kg/m can be formed.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Unit">
            <xs:sequence>
               <xs:element name="Factors" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>Units</i>that are used as factors to create the<i>CompositeUnit.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Unit"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CompositionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The CompositionSpecificiation is used to define a set of occurrences required to describe unambiguously the design of a composite part. This does not have to be necessarily the same occurrences which are building the bill of material. Example: A company might want to regard an antenna cable as one part out of a bill of material perspective. However, at the same time it may be useful for the company to be able to describe the contacting of the antenna cable within the VEC. (see also PartStructureSpecification)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="part_structure"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Component"
                           type="vec:PartOccurrence"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the PartOccurrences defined in the CompositionSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConductorCurrentInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>ConductorCurrentInformation</i>specifies the maximum current for which a conductor is approved. As the maximum current is dependent from the voltage and the environment temperature it is modelled as a class and not only as an attribute.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="MaxCurrent" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The maximum current value.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EnvironmentTemperature" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The environment temperature for which this maximum current value is applicable.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Voltage" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The voltage for which this maximum current value is applicable.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConductorMaterial">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>ConductorMaterial</i>is a helper class to specify<i>validConductorMaterials.</i>This is necessary, since all attributes of the type<i>Material</i>have a multiplicity of * with the semantics that it always defines<u>one</u>
               <i>Material</i>with the possibility to define it in different reference systems.</p>
            <p>Since a wire reception can have more than one<i>validConductorMaterial</i>this container class is necessary to keep the semantics clear.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Material" type="vec:Material" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the material.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConductorSpecification" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of conducting properties of a WireElement.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="WireType"
                           type="vec:WireType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the conductor. A<i>WireType</i>is a key in a reference system for the definition of wires. Some reference systems define independent type fragment for insulations and conductors and the<i>WireType</i>of a<i>WireElement</i>is the combination of both.</p>
                        <p>A conductor must not have more than one type. This attribute allows more than one value for the reason, that the same type can be expressed in multiple reference systems.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CrossSectionArea" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the cross-section area of the conductor (e.g. 0,5 mm²). The cross-section area is a nominal value, which refers to the conducting properties of the conductor normalized to the properties of a full material core.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MassInformation" type="vec:MassInformation" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the mass information of the conductor. In most cases this mass information is known as copper weight and is normally specified as mass per length (e.g. gram per meter).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Material"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the material of the conductor.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Resistance" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the electrical resistance of the conductor. In most cases this is specified as resistance per length (e.g. Ohm per meter).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Structure" type="vec:ConductorStructure" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the structure of the conductor according to ISO 6722-1 for ConductorSpecifications with Type = Stranded.</p>
                        <p>
                           <i>Should only be used for ConductorSpecifications with type=Stranded.</i>
                        </p>
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Type" type="vec:ConductorType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the conductor, e.g. if it is rigid or stranded.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NumberOfStrands" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the number of individual strands used to construct the conductor. If the conductor is solid than the number of strands would be one.</p>
                        <p> </p>
                        <p>This value indicates the total number of strands forming the conductor. While typically an integer, this attribute is intentionally modelled as a<i>NumericalValue</i>to support<b>tolerances</b>, as found in technical data sheets — especially for high-voltage / large cross-section cables, where manufacturers may specify strand count as a range or with a deviation (e.g., 1.070 ± 5%).</p>
                        <p> </p>
                        <p>
                           <b>Usage Notes:</b>
                        </p>
                        <ul>
                           <li>If a precise strand count is known and no variation applies, a<i>NumericalValue</i>without tolerance (e.g., 19) should be used.</li>
                           <li>If the strand count includes a tolerance, the tolerance properties of<i>NumericalValue</i>should be utilized.</li>
                           <li>The<i>Unit</i>used should be set to<i>Piece</i>.</li>
                        </ul>
                        <p> </p>
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlatingMaterial"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the plating material of the conductor.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="StrandDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of a single strand in the conductor.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VoltageRange" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the voltageRange for which the conductor is approved.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                        <mt:deprecated reason="Replaced by GeneralTechnicalPartSpecification.VoltageRating."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TransmissionMedium"
                           type="vec:SignalTransmissionMediumType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the transmission medium for the conductor.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CurrentInformation"
                           type="vec:ConductorCurrentInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the current information of the conductor. These are the maximum currents for which the conductor is approved.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConfigurableElement" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract base class for all elements which can be configured with a VariantConfiguration.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="ApplicationConstraint" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the application constraints that apply to the ConfigurableElement.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ApplicationConstraint"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                        <mt:deprecated reason="Replaced with ConfigurationConstraint." since="2.0.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AssociatedAssignmentGroups" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:AssignmentGroup"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConfigInfo" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the configuration information that applies to the ConfigurableElement.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:VariantConfiguration" relationship-type="Association"/>
                        <mt:deprecated reason="Replaced with ConfigurationConstraint." since="2.0.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConfigurationConstraint"
                           type="vec:ConfigurationConstraint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Contains or more<i>ConfigurationContraints</i>that apply to this<i>ConfigurableElement.</i>This is explained in more details in the recommendation chapter / model diagram "Variants".</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                        <mt:deprecated reason="The relationship has been inverted, allowing external configuration of ConfigurableElements. The ConfigurationConstraint is now contained in its own Specification."
                                       since="2.0.2"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConfigurationConstraint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Represents a<i>ConfigurationContraint</i>("When does this element exist?") for a specific application (<i>ApplicationConstraint)</i>and a "configuration universe" (<i>VariantConfiguration.configurationType</i>)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>ConfigurationConstraint</i>. The identification is guaranteed to be unique within the<i>ConfigurableElement</i>and does not change over the time.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ApplicationConstraint" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the application constraint that applies to the ConfigurationConstraint.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ApplicationConstraint"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConfigInfo" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the configuration information that applies to the ConfigurationConstraint.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:VariantConfiguration" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConstrainedElements" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Introduced with VEC V2.0.2. References the<i>ConfigurableElement</i>s that are constrained by this<i>ConfigurationConstraint.</i>This association shall only be used in combination with a containment in a<i>ConfigurationConstraintSpecification.</i>When using the deprecated containment in the<i>ConfigurableElement</i>it shall not be used.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConfigurableElement"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConfigurationConstraintSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification container for the definition of<i>ConfigurationConstraints</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="ConfigurationConstraint"
                           type="vec:ConfigurationConstraint"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the individual<i>ConfigurationConstraint</i>defined in the<i>ConfigurationConstraintSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Connection">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Connection is an electrological connection between two or more ComponentPorts.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:RoutableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Connection. The identification is guaranteed to be unique within the ConnectionSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the Connection.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstallationInstruction"
                           type="vec:Instruction"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies installation instruction for the connection.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Net" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Net that is realized by the Connection.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Net" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Signal" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the signal that is transmitted by the connection.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Signal" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionEnd"
                           type="vec:ConnectionEnd"
                           minOccurs="2"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ConnectionEnds of the Connection.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectionEnd">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A connection end is the end of a Connection at a ComponentPort.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the ConnectionEnd. The identification is guaranteed to be unique within the ConnectionSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IsExternalEnd" type="xs:boolean">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the ConnectionEnd is connected to the internal or the external side of the ComponentPort.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Gender" type="vec:ConnectionEndGender" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the ConnectionEnd is male or female. This may be e.g. important in case of an inliner.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstallationInstruction"
                           type="vec:Instruction"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies installation instruction for the<i>ConnectionEnd</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectedComponentPort" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the ComponentPort that is connected by the ConnectionEnd.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentPort" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectionGroup">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A ConnectionGroup references two or more Connections expressing that the physical realization of the referenced Connection shall be somehow grouped e.g. twisted. For complex structures a ConnectionGroup can specify subgroups.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the ConnectionGroup. The identification is guaranteed to be unique within the ConnectionSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionGroupType" type="vec:ConnectionGroupType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the connectionGroup, valid literals are defined in the open enumeration<i>ConnectionGroupType</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstallationInstruction"
                           type="vec:Instruction"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional InstallationInstructions for the ConnectionGroup.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the ConnectionGroup.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Connection" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Connections that are grouped by the ConnectionGroup.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Connection"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubGroup"
                           type="vec:ConnectionGroup"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ConnectionGroups that are a subgroup of this ConnectionGroup.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectionNodeViewItem">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>ComponentNodeViewItem</i>
            <i>ComponentNode</i>
            <i>ConnectionViewSpecification</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="Class was accidentally named incorrectly in 2.0.0. Use ComponentNodeViewItem instead."
                           since="2.0.2"/>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>ComponentNodeViewItem</i>. The identification is guaranteed to be unique within the<i>ConnectionViewSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GridSquare" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the grid square in which the<i>ComponentNodeViewIt</i>
                           <i>em</i>is placed (e.g. E/40).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ComponentNode</i>
                        <i>ComponentNodeViewItem</i>
                        <i>.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DisplayedPort"
                           type="vec:ComponentPortViewItem"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies all<i>ComponentPortViewItems</i>that are displayed on this<i>ComponentNodeViewItem</i>
                           <i>.</i>The order of this association defines the clockwise arrangement of the ports on the node. As each<i>ComponentPortViewItem</i>can also define the side on which it is placed, side definitions take precedence over order.</p>
                        <p>
                           <i> </i>
                        </p>
                        <p>
                           <b>Caution:</b>This association is<u>ordered</u>!</p>
                        <p>
                           <i> </i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Orientation" type="vec:Transformation2D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ConnectionNodeViewItem</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A ConnectionSpecification is used to define electrological connectivity.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="ComponentNode"
                           type="vec:ComponentNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ComponentNodes defined by the ConnectionSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Connection"
                           type="vec:Connection"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Connection defined by the ConnectionSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionGroup"
                           type="vec:ConnectionGroup"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ConnectionGroup defined by the ConnectionSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectionViewSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>ConnectionViewSpecification</i>supports the exchange of a basic layout for a<i>ConnectionSpecification</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="CartesianPoint"
                           type="vec:CartesianPoint2D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>CartesianPoint2Ds</i>
                        <i>ConnectionViewSpecification</i>
                        <i>.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacedNodeViewItems"
                           type="vec:ComponentNodeViewItem"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies all<i>ComponentNodeViewItems</i>that are displayed within a<i>ConnectionViewSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacedViewItems"
                           type="vec:ConnectionNodeViewItem"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ComponentNodeViewItems</i>
                        <i>ConnectionViewSpecification</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                        <mt:deprecated reason="Target class was accidentally named incorrectly in 2.0.0. Use ComponentNodeViewItem instead."
                                       since="2.0.2"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectorHousingCapRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A <i>ConnectorHousingCapRole</i>defines the instance-specific properties of a cap for a connector (backshells).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="ConnectorHousingCapSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>ConnectorHousingCapSpecification</i>that is instanced by this<i>ConnectorHousingCapRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectorHousingCapSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectorHousingCapSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of caps (backshells) of connectors. Different caps can add additional wire length addons to a connector housing.</p>
            <p>A 'cap' which already defines the number of cavities, coding etc. is in the VEC defined by<i>ConnectorHousingSpecification</i>with<i>ModularSlots</i>and not by a<i>ConnectorHousingCapSpecification</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="WireAddOn" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the wire length add on needed for the cap.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OutletDirection"
                           type="vec:ConnectorOutletDirection"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>OutletDirection</i>for wires.</p>
                        <p>This attribute is defined as an<i>OpenEnumeration</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectorHousingCoverRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A <i>ConnectorHousingCoverRole</i>defines the instance-specific properties of a cover for a connector. </p>
            <p>The association to the<i>ConnectorHousing</i>is established with the<i>OccurrenceOrUsage.ReferenceElement</i>association.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="TransportOnly" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>transportOnly=false</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectorHousingCoverSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectorHousingCoverSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectorHousingCoverSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of covers for connectors. A<i>ConnectorHousingCover</i>is used to protect the contacting side (front) of the connector during transport of the harness or in the vehicle, if the connector remains unconnected (e.g. in case of "give-away" features or retrofit options).</p>
            <p>There are two types of covers, on the one hand components whose sole purpose is to be used as a cover and on the other hand normal harness connectors which can also be used as covers, if necessary sealed with additional plugs. The former have the<i>PrimaryPartType="</i>
               <i>ConnectorCover"</i>and are only specified by a<i>ConnectorHousingCoverSpecification,</i>the latter have the<i>PrimaryPartType="ConnectorHousing"</i>and have an additional<i>ConnectorHousingCoverSpecification</i>
               <i>.</i>
            </p>
            <p>The relation between a connect and its covers is established in part master data with the<i>PartRelation.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectorHousingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A ConnectorHousingRole defines the instance specific properties and relationships of a connector housing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="SealState" type="vec:SealState" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if this instance of a connector housing should be sealed (waterproof).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CpaState"
                           type="vec:ConnectorPositionAssuranceState"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The state of the connector position assurance (CPA), if applicable. This is the state of the connector in the integration level described by the model to which the<i>ConnectorHousingRole</i>belongs. For example, if the<i>ConnectorHousingRole</i>is part of a harness specification from the OEM to the Tier1, it is the state the OEM expects for the delivered product, not the final state in the vehicle.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LockingState" type="vec:ConnectorLockingState" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The state of the primary locking mechanism of the connector, if applicable. This is the state of the connector in the integration level described by the model to which the<i>ConnectorHousingRole</i>belongs. For example, if the<i>ConnectorHousingRole</i>is part of a harness specification from the OEM to the Tier1, it is the state the OEM expects for the delivered product, not the final state in the vehicle.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentConnector" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the ComponentConnector that is realized by the referenced ConnectorHousing (OccurrenceOrUsage with ConnectorHousingRole). This can especially be relevant for inliners. KBLFRM-341.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentConnector"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectorHousingSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>ConnectorHousingSpecification</i>that is instanced by this<i>ConnectorHousingRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectorHousingSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SlotReference"
                           type="vec:AbstractSlotReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the SlotReferences used in the ConnectorHousingRole.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ConnectorHousingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of connector housings. A connector housing consists of a one or more slots. In the means of the VEC, a connector housing can be a conventional connector housing, a contact module or a connector shell.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="AverageWireLengthAddOn"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the average wire length add on for this connector.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VoltageRange" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the allowed voltage range for the connector housing.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                        <mt:deprecated reason="&#xA;Replaced by &lt;i&gt;GeneralTechnicalPartSpecification.VoltageRating&lt;/i&gt;."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Coupleable" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines whether the connector is coupleable or not. Connectors that are coupleable can be used in an inline position. Connectors that are not coupleable can be connected only to an ECU or something similar.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectorPositionAssurance" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If<i>true</i>the<i>ConnectorHousing</i>has a connector position assurance (CPA).</p>
                        <p>A CPA is some sort of feature of a connector, which ensures that the connector in its correctly assembled position with its mating part.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectorPositionAssuranceType"
                           type="vec:ConnectorPositionAssuranceType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>connectorPositionAssurance = true.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OutletDirection"
                           type="vec:ConnectorOutletDirection"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>OutletDirection</i>for wires.</p>
                        <p>This attribute is defined as an<i>OpenEnumeration</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LockingType" type="vec:ConnectorLockingType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Coding" type="vec:Coding" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Defines coding of the connector housing that is satisfied by the connector housing.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ModularSlotConfiguration"
                           type="vec:ModularSlotConfiguration"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferenceSurfaceDefinition"
                           type="vec:ReferenceSurfaceDefinition"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SegmentConnectionPoint"
                           type="vec:SegmentConnectionPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>SegmentConnectionPoints</i>the connector housing.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Slot"
                           type="vec:AbstractSlot"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the slots forming the ConnectorHousing.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ContactPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A contact point defines the relationship between Terminals, Seals, Plugs, Cavities and Wires. It specifies a single contacting variant. This means that the contacting is manufactured, as specified by the<i>Contact</i>Point. Either all participants (Cavities, Terminals, Seals, Wires) set into a relationship by the<i>ContactPoint</i>exist in a specific harness or none. There is no requirement, to filter the participants of a contacting situation with information derived from VariantConfigurations or assembly / module associations in order to create a manufacturing variant.</p>
            <p>The<i>ContactPoint</i>represents a single potential. Consequently, all cavities and wires referencing / being referenced by a<i>ContactPoint</i>are short-circuited and have the same potential (even if the signals on the wires are named differently. If a contacting of a terminal has more than one potential (e.g. a coax-contact) one contact point for each potential is needed.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="contacting"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the ContactPoint. The identification is guaranteed to be unique within the ContactingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MountedTerminal" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the terminal that is used for contacting defined by the ContactPoint.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalRole" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityMounting"
                           type="vec:CavityMounting"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Defines the mounting to a cavity of the terminal associated with the ContactPoint. The cardinality is 0..* in order to allow a variant dependent cavity mounting. In such a scenario a cavity mounting is valid in a configuration if all addressed cavities and therefore the associated connector housing is available.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireMounting"
                           type="vec:WireMounting"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the WireMouting defined by ContactPoint. More than one WireMounting is allowed in order to support variance. In concrete configuration the WireMounting with all referenced elements present is used.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ContactingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">Specification for the description of the contacting. A contacting defines the relationships between Terminals, Seals, Plugs, Cavities and Wires.</xs:documentation>
         <xs:appinfo>
            <mt:package name="contacting"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="ContactPoint"
                           type="vec:ContactPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ContactPoints defined by the ContactingSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Contract">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Contract-instance describes the relationship between an ItemVersion-instance and a Company-instance additionally defining the role the company takes in reference to the ItemVersion.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CompanyName" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the company which acts in the specified Role in the Contract Relationship.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ContractRole" type="vec:ContractRole">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The role the company takes in reference to the associated ItemVersion. Predefined are the values: OEM, Supplier and Manufacturer.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CopyrightInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CopyrightInformation-instance specifies copyright information for one or more Items.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CopyrightNote"
                           type="vec:LocalizedString"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>An informal text which specifies copyright information.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CoreCrimpDetail">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>CoreCrimpDetail</i>defines crimp values for a conductor crimp (wire crimp). The selection criteria to which the<i>CoreCrimpDetail</i>applies are defined by the referenced<i>ConductorSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CrimpDetail">
            <xs:sequence>
               <xs:element name="CorePullOffForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The minimum force that the completed crimp should withstand when wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. This value applies when only the core crimp is present or functional (insulation crimp is either not present or disabled).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AppliesTo" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConductorSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationCrimpDetails"
                           type="vec:InsulationCrimpDetail"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the different<i>InsulationCrimpDetails</i>that are valid combinations for this<i>CoreCrimpDetail.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CoreSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the properties of a circular conductor (core) which are specific for them.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConductorSpecification">
            <xs:sequence>
               <xs:element name="OutsideDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the outside diameter of the core.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CorrugatedPipeRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specific<i>WireProtectionRole</i>for instances of<i>CorrugatedPipeSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TubeRole">
            <xs:sequence>
               <xs:element name="CutOnWave" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>CorrugatedPipeSpecification.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CorrugatedPipeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of corrugated pipes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TubeSpecification">
            <xs:sequence>
               <xs:element name="CorrugationHeight" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the height of a corrugation of the pipe.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CorrugationWidth" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the width of a corrugation of the pipe.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CorrugationGradient" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the gradient of a corrugation of the pipe.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CutOnWave" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>CorrugatedPipeRole.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CouplingPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>CouplingPoint</i>defines a single coupling. If a coupling takes place, all sub elements are connected. If the coupling is disconnected, all sub elements are disconnected.</p>
            <p>If a coupling occurs between two connectors, and not just between two terminals, the<i>CouplingPoint</i>references the respective<i>ConnectorHousingRoles</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="coupling"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstConnector" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectorHousingRole" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondConnector" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectorHousingRole" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MatingPoint"
                           type="vec:MatingPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>MatingPoints</i>defined within the<i>CouplingPoint</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SlotCoupling"
                           type="vec:SlotCoupling"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CouplingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of a Coupling. A coupling allows the mapping between independent harness sections or EEComponents of the electrical system. This is done by the mapping of either-or both, ConnectorHousingRoles &amp; TerminalRoles of one side to the other.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="coupling"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="CouplingPoint"
                           type="vec:CouplingPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Creation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Creation-instance provides additional information to the owning ItemVersion stating personal information on the creator and the creation date.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CreationDate" type="xs:dateTime">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the date when the associated ItemVersion was created. (see KBLFRM-241)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Creator" type="vec:Person" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person who has created the Item.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ResponsibleDesigner" type="vec:Person" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person, which is the responsible designer for the ItemVersion at the point of creation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CrimpDetail" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract base class for the definition of<i>CrimpDetail-</i>information. See<i>CoreCrimpDetail</i>&amp; <i>InsulationCrimpDetail</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Size" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the expected size of the crimp. The<i>height</i>is measured in direction of the crimp opening. The<i>width</i>is measured in orthogonal to the<i>height</i>and orthogonal to main axis of the terminal (<i>TerminalSpecification.OverallLength</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MachineCrimpTool" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>A list of tools that are permitted for machine crimping processes.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ResourceVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ManualCrimpTool" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>A list of tools that are permitted for manual crimping processes.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ResourceVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Curve3D" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>Curve3D</i>is an abstract representation of a curve, which defines the three-dimensional appearance of the centerline of a segment. The concrete type of the curve (e.g. NURBSCurve) defines the mathematical function that applies to curve and stores the required parameter set for this function in the VEC.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="CustomProperty" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract base class for custom properties. Basically, a custom property is key / value pair. The key (propertyType) defines the meaning of the value. A custom property can either be a simple value (string), a numerical value or a value range.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="PropertyType" type="xs:string">
            <xs:annotation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="CustomUnit">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A CustomUnit can be used to define "Free Text"-Units. Custom units must not be used for units that can be expressed by any of the other subclasses of Unit. Custom units are only allowed if a unit is needed that cannot be handled by any of the other classes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Unit">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>A unique identification of the custom unit.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DataPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>DataPoint</i>represents one set of values in a<i>MultiDimensionalValue</i>. It contains multiple<i>DataPointValue</i>s, one for each<i>QuantityKind</i>referenced as d<i>imension</i>. Each<i>DataPoint</i>thereby defines a complete point in the value space.</p>
            <p>Each<i>DataPoint</i>shall define a<i>DataPointValue</i>for<b>all</b>d<i>imensions</i>of its<i>MultiDimensionalValue</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="DataPointValue"
                     type="vec:DataPointValue"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Composition" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="DataPointValue">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>DataPointValue</i>assigns a concrete numeric value to one<i>d</i>
               <i>imension</i>within a<i>DataPoint</i>. Each<i>DataPointValue</i>must only reference a<i>QuantityKind</i>that is defined as<i>Dimension</i>of its owning<i>MultiDimensionalValue</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Value" type="xs:double">
            <xs:annotation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Dimension" type="xs:IDREF">
            <xs:annotation>
               <xs:appinfo>
                  <mt:relationship element-type="vec:QuantityKind" relationship-type="Association"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="DateValueProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property with a date value.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="xs:dateTime">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the CustomProperty.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DefaultDimension">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>DefaultDimension</i>defines a tolerance value that shall be applied to a part, if no explicit tolerance value has been defined.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="DimensionValueRange" type="vec:ValueRange">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>dimensionValueRange defines the magnitude of measurements for which the tolerance applies (e.g. length from 500mm - 1500mm).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DimensionType" type="vec:DefaultDimensionType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>dimensionType</i>defines to which measurements this<i>DefaultDimension</i>applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToleranceIndication" type="vec:Tolerance">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DefaultDimensionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>DefaultDimensionSpecification</i>defines tolerances that shall be applied to a part, if no explicit tolerance value has been defined.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="DefaultDimension"
                           type="vec:DefaultDimension"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Dimension">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Dimension defines a measurement for the distance between two Locations. An acceptable tolerance can be specified additionally. If the Locations are not located on adjacent topology-elements it is possible to specify a Path for the dimension along which the measurement must be taken.</p>
            <p>The value for the Dimension is not specified as NumericalValue (which can define a Tolerance as well). This is because the "valueComponent" of the NumericalValue is mandatory. For Dimensions it shall be optional since there are scenarios where the dimension only specifies a Tolerance for a distance defined by the topology (segment length + placement information).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Dimension. The identification is guaranteed to be unique within the containing PlacementSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValueComponent" type="xs:double" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the dimension. This value can be null, if it shall be calculated and only a tolerance shall be defined.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValueCalculated" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines if the value of the<i>Dimension</i>was calculated (e.g. the sum of segment lengths in the topology) or if it was defined manually.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DimensionAnchor" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the location that is used as dimension point for the dimensioning (e.g. the entry point of a bundle into a connector housing).</p>
                        <p>See KBLFRM-329 and KBLFRM-391.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:DimensionAnchor" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferenceAnchor" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the location that is used as reference point for the dimensioning (e.g. the location of a fixing as this relates to a fixpoint of the body in white).</p>
                        <p>See KBLFRM-329 and KBLFRM-391.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:DimensionAnchor" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UnitComponent" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Unit" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DefinedLocations"
                           type="vec:Location"
                           minOccurs="0"
                           maxOccurs="2">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Path" type="vec:Path" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies a path in the topology along which the dimension is defined.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Tolerance" type="vec:Tolerance" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DimensionAnchor" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>DimensionAnchor</i>represents an abstract anchor onto which a<i>Dimension</i>can be specified.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DiodeRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>DiodeRole</i>defines the instance specific properties and relationships of a diode.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DiodeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification of the electrological aspects of a diode.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="ThresholdVoltage" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Voltage at which the diode starts conducting in forward direction.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BreakDownVoltage" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Voltage at which the diode starts conducting in reverse direction.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IMax" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the maximum electric current tolerated by the diode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Anode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PinComponent" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Cathode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PinComponent" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DocumentBasedInstruction">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A DocumentBasedInstruction is an Instruction to a SheetOrChapter in a DocumentVersion or to a complete DocumentVersion.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instructions"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Instruction">
            <xs:sequence>
               <xs:element name="ReferencedDocument" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the DocumentVersion that is used as an Instruction.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:DocumentVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedSheetOrChapter" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the SheetOrChapter that is used as an Instruction.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SheetOrChapter" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DocumentClassification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>DocumentClassification</i>
            <i>Key</i>
            <i>ReferenceSystem</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Key" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The<i>Key</i>of the<i>DocumentClassification</i>in the corresponding classification reference system.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ReferenceSystem" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The identification of the classification reference system, which is defining possible values and the semantic of<i>DocumentClassification</i>keys.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Description"
                     type="vec:LocalizedString"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>On optional human readable description of the classification (e.g. the name or clear text, for example "max. 99 Years").</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="DocumentRelatedAssignmentGroup">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A DocumentRelatedAssignmentGroup allows the creation of traceability links to elements in a<i>DocumentVersion</i>for a set of VEC objects. The semantic of the traceability link is defined by the<i>DocumentRelationType.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AssignmentGroup">
            <xs:sequence>
               <xs:element name="Type" type="vec:DocumentRelationType" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelatedIdentification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If this group relates to a specific element in the<i>relatedDocumentVersion</i>the identifier of the element is defined in this attribute (e.g. a requirements number).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelatedDocumentVersion" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>DocumentVersion</i>to which this group relates.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:DocumentVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelatedSheetOrChapter" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Allows a more specific relationship to a<i>SheetOrChapter</i>within the<i>relatedDocumentVersion.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SheetOrChapter" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DocumentVersion">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>DocumentVersion</i>is a unique identifier for a piece of information in a company context. The DocumentVersion is one of the three anchors for PDM information in the VEC. All technical information about a PartVersion is contained in one or more documents. The documents are containing the actual content of the VEC since all Specifications are an element of a document.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ItemVersion">
            <xs:sequence>
               <xs:element name="DocumentNumber" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The documentNumber is the major identifier of a DocumentVersion. The format is user defined and respectively company specific.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DocumentType" type="vec:DocumentType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The type of the document, which is defined in an<i>OpenEnumeration</i>and gives a hint about the content of the document. Values for typical types of documents in the process are predefined (e.g. a part master document for the specification of a<i>PartVersion</i>).</p>
                        <p>At later point, further constraint might be attached to<i>documentType</i>defining a minimum content for certain types of documents.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DocumentVersion" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The documentVersion specifies the version index of a document (see also documentNumber).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DigitalRepresentationIndex" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>An arbitrary change index that indicates if the digital representation (the content in VEC) of this<i>DocumentVersion</i>has been changed / regenerated. This can be for example an index, a timestamp or a checksum. This allows the detection of changes in the content, even when the DocumentNumber &amp; DocumentVersion is the same.</p>
                        <p>For a more detailed explanation in the context see "Parts &amp; Documents". KBLFRM-837.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CreatingSystem" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The creatingSystem specifies the computer application or the machine which is used to create the document.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DataFormat" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The dataFormat specifies the convention that was used to structure the information in the document. This is useful if the DocumentVersion is a pointer to an external document, which is not contained in the VEC or if the content of this DocumentVersion was automatically generated by the extraction of the information out of the original document.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FileName" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The name of the file as it appears in the VEC-Package, including the folder structure (fully qualified name) that contains this<i>DocumentVersion</i>. If this DocumentVersion is a link to an external document (e.g. a ComponentSymbol), then the fileName attribute points to the file containing the original document. The usage of this attribute is only valid, if the original document is distributed along with the VEC-file in a VEC-Package. It must not point to any file location which is not part of the VEC-Package (e.g. a File on a central server file share). The<i>fileName</i>is relative to the VEC-Package root. It MUST NOT contain a drive or device letter, or a leading slash. All slashes MUST be forward slashes '/' (UNIX-style).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Location" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The location is a possibility to provide a reference to the source location of the<i>DocumentVersion</i>(e.g. a document management system or an archive system) where the original document can be found<i>.</i>The location shall be provided either as an URN or URL.</p>
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NumberOfSheets" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The number of sheets contained in the document.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConfidentialityLevel"
                           type="vec:ConfidentialityLevel"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>ConfidentialityLevel</i>of this<i>DocumentVersion.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DocumentClassification"
                           type="vec:DocumentClassification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>DocumentClassifications</i>of this<i>DocumentVersion.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedPart" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">The association is an informative link which PartVersions are described by the DocumentVersion.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelatedDocument" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">The association is an informative link which DocumentVersion are related to each other (e.g. by derivation, A Harness-Drawing is related to a 3D-Model).</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:DocumentVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ItemEquivalence"
                           type="vec:ItemEquivalence"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies ItemEquivalences defined by the DocumentVersion.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SheetOrChapter"
                           type="vec:SheetOrChapter"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies SheetOrChapters defined in this DocumentVersion. These are especially useful if the DocumentVersion represents an external reference.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Specification"
                           type="vec:Specification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Specifications contained in the DocumentVersion. All structured, technical information in the VEC is described by such Specifications.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="DoubleValueProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property with a double value.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the CustomProperty.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="EEComponentRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An EEComponentRole defines the instance specific properties and relationships of an EE-component.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="EEComponentSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>EEComponentSpecification</i>that is instanced by this<i>EEComponentRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:EEComponentSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentNode" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the ComponentNode that is realized by the referenced EEComponent (OccurrenceOrUsage with EEComponentRole). KBLFRM-341</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentNode"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ExtensionSlotRef"
                           type="vec:ExtensionSlotReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ExtensionSlotReferences used in the EEComponentRole.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HousingComponentRef"
                           type="vec:HousingComponentReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the HousingComponentReferences used in the EEComponentRole. (KBLFRM-401)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="EEComponentSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Base-class for the specification of electrological components, which are connected to the harness. Usually, electrological components are not part of the harness e.g. a fuse, a switch or a control device. All EEComponents can have one or more HousingComponents which are possible interfaces for the connection to a harness.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="PowerConsumption"
                           type="vec:PowerConsumption"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PowerConsumptions</i>of this<i>EEComponentSpecification.</i>This refers to the internal power consumption of this E/E-component, not the power-consumption that might occur indirectly over other E/E-components that are supplied through this component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VoltageRating" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>voltageRating</i>
                        <i>EEComponentSpecification</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                        <mt:deprecated reason="&#xA;Replaced by &lt;i&gt;GeneralTechnicalPartSpecification.VoltageRating&lt;/i&gt;."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ComponentNode</i>
                        <i>EEComponentSpecification.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Connections"
                           type="vec:InternalComponentConnection"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ExtensionSlots"
                           type="vec:ExtensionSlot"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the available ExtensionSlots of the EEComponent.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HousingComponent"
                           type="vec:HousingComponent"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the available connector interfaces of the EEComponent.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="States"
                           type="vec:SwitchingState"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the available<i>SwitchingStates</i>of the EEComponent.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="EdgeMountedFixingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>EdgeMountedFixingRole</i>defines the instance specific properties and relationships of an edge mounted fixing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:FixingRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="EdgeMountedFixingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for fixings that are mounted onto an edge.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:FixingSpecification">
            <xs:sequence>
               <xs:element name="EdgeThickness" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines a range of valid thicknesses, onto which the fixing can be mounted.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ExtendableElement" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract base class for extendable elements. Extendable elements have the possibility to define non-standard custom properties. The<i>ExtendableElement</i>is also used as base class for all higher-level entities in the VEC (in contrast to a<i>StructuredPrimitive</i>). So, in general, referencing<i>ExtendableElement</i>should be possible.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="ReferencedExternalDocuments" type="xs:IDREFS" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>This association allows all<i>ExtendableElements</i>in the VEC to reference<i>DocumentVersions</i>as "external reference".</p>
                  <p>This association shall be used for the extension of elements in the VEC with information that cannot be represented in the VEC in an appropriate way but can be expressed in some external format (e.g. a specific symbol for a<i>ComponentNode</i>).</p>
                  <p>D<i>ocumentVersions</i>referenced by this association shall not contain any<i>Specifications.</i>
                  </p>
                  <p>This association is no replacement for associations with a more precise semantic like the<i>DocumentBasedInstruction</i>or the associations between<i>PartVersion</i>and<i>DocumentVersion.</i>
                  </p>
                  <p> </p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship element-type="vec:DocumentVersion"
                                   relationship-type="Association"
                                   unique="true"
                                   ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="CustomProperty"
                     type="vec:CustomProperty"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">Specifies the CustomProperties of the ExtendableElement.</xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Composition" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="ExtensionSlot">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>ExtensionSlot</i>defines a slot within an EE-Component where other EE-Components can be plugged into (modular extension). This is necessary for example for modular power distributions.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Identification of the ExtensionSlot, which must be distinct for all ExtensionSlots of an EEComponent.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AllowedInserts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartRelations</i>that are valid inserts for this<i>ExtensionSlot.</i>
                        </p>
                        <p>This reference points to<i>PartRelations</i>in order to allow referencing indirectly a<i>PartVersion</i>if the description of individual<i>PartVersions</i>is done with one physical VEC file per<i>PartVersion</i>and to allow the expression of optional inserts, choices etc. However, inserts for an<i>ExtensionSlot</i>are always<i>EEComponents</i>by itself. Therefore, the referenced<i>PartVersion</i>shall have a<i>PrimaryPartType = EEComponent.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartRelation"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ExtensionSlotReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An ExtensionSlotReference represents the usage of an ExtensionSlot in the context of a PartUsage or PartOccurrence.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ExtensionSlot" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ExtensionSlot" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsedInserts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Defines the inserts used for extension slot in a defined instance. These can be more than one EEComponentRole, because of variance in a 150% specification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:EEComponentRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ExternalMapping">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>ExternalMapping</i>is used to relate an<i>ExtendableElement</i>in the VEC with an element located in an external data source. The element in the VEC is referenced by the<i>mappedElement</i>, the external element is identified by the attribute<i>externalReference.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="external_mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="ExternalReference" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the unique key of the external element. How this key shall be interpreted is dependent from the format of the external data source.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MappedElement" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ExtendableElement" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ExternalMappingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>ExternalMappingSpecification</i>is used to define a mapping between an external data source (represented by the referenced<i>mappedDocument</i>) and the content of a VEC file.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="external_mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="MappedDocument" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Reference to the<i>DocumentVersion</i>that represents the external data source that connected to the VEC content by the<i>ExternalMappingSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:DocumentVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Mappings"
                           type="vec:ExternalMapping"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the mappings of individual element.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FerriteRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>FerriteRole</i>defines the instance specific properties and relationships of a ferrite.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="NumberOfWindings" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the of windings that the wires are wound around the ferrite.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FerriteSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:FerriteSpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FerriteSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of ferrites.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FileBasedInstruction">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A FileBasedInstruction is an Instruction that references a file packaged (VEC-Package) together with a VEC-file. Such a file can be for example an image.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instructions"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Instruction">
            <xs:sequence>
               <xs:element name="FileName" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The name of the file as it appears in the VEC-Package, including the folder structure (fully qualified name) that contains this<i>FileBasedInstruction</i>. The usage of this attribute is only valid, if the original document is distributed along with the VEC-file in a VEC-Package. It must not point to any file location which is not part of the VEC-Package (e.g. a file on a central server file share). The<i>fileName</i>is relative to the VEC-Package root. It MUST NOT contain a drive or device letter, or a leading slash. All slashes MUST be forward slashes '/' (UNIX-style).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LastModified" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The last modified timestamp of the file.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DataFormat" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The dataFormat specifies the format of the FileReference. The dataFormat has to be a valid "Internet Media Type" (see<a href="https://www.iana.org/assignments/media-types/media-types.xhtml">https://www.iana.org/assignments/media-types/media-types.xhtml</a>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FillerSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of filler elements in the wire.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Material"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the material of the filler.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Diameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the filler.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FittingOutlet">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies one outlet of the fitting.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the identification of the Outlet. This must be unique within a FittingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InnerDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the inner diameter of the outlet.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OuterDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the outer diameter of the outlet.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NominalSize" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the nominal size of a tube. The nominal size is a name for the size of the tube that is somehow related to the inner diameter of the tube. However, it is not the inner diameter (e.g. "10.5").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PlacementPoint</i>that represents this<i>FittingOutlet</i>in a PlaceableElementSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FittingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specific<i>WireProtectionRole</i>for instances of<i>FittingSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FittingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of fittings. A fitting is a part that is used to connect pipes or tube. A fitting has a specific form (e.g. Y,T)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionSpecification">
            <xs:sequence>
               <xs:element name="Form" type="vec:FittingForm" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the form of the fitting (e.g. Y, T).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Outlet"
                           type="vec:FittingOutlet"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FixingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A FixingRole defines the instance specific properties and relationships of a fixing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="FixingSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>FixingSpecification</i>that is instanced by this<i>FixingRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:FixingSpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FixingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of fixings. A fixing is used to fix the harness in a certain position (e.g. at the car body, a seat, an ECU etc.). The FixingSpecification describes how the fixing is attached to the "non-harness" element. The attachment to harness is described by a PlaceableElementSpecification.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="Offset" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NominalSize" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaximumWidthA" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaximumWidthB" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The maximum width of the fixing, measured from the placement plane (XZ-plane) in the<b>opposite</b>direction of the Y-axis (direction of the harness, passing through the fixing). See Diagram "Fixing Coordinates and Dimensions" for details.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FlatCoreSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the properties of a flat (rectangular) conductor which are specific for them.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConductorSpecification">
            <xs:sequence>
               <xs:element name="Size" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the size (width &amp; height) of the flat core.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FunctionalAssignmentGroup">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>FunctionalAssignmentGroup</i>clusters elements that contribute to a specific function or a functional aspect. With such a group, certain functional requirements can be associated.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AssignmentGroup">
            <xs:sequence>
               <xs:element name="FunctionalRequirements"
                           type="vec:FunctionalRequirement"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Functional requirements that apply to the members of this group.</p>
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FunctionalRequirement">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of functional requirements in an enumerable way (e.g. conformance to a certain ASIL level). Attributes of this type have the multiplicity of [0..*]. The following restrictions apply:</p>
            <ul>
               <li>For a combination of type &amp; referenceSystem only a single value is allowed. For single type</li>
               <li>For a specific type and different references systems, multiple values are allowed. However, they must express the same semantic value.</li>
               <li>For different types multiple values are allowed.</li>
            </ul>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:FunctionalRequirementType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The type defines to which category a requirement belongs (e.g.  Functional Safety).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferenceSystem" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The reference system identifies the system in which the values are defined (e.g. ISO26262)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Value" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The value that represents the functional requirement (e.g. ASIL D).</p>
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FunctionalStructureNode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>FunctionalStructureNodes</i>can be used to define a hierarchical structure on<i>FunctionalAssignmentGroups</i>. Every<i>FunctionalStructureNode</i>can reference<i>FunctionalAssignmentGroups</i>and<i>FunctionalStructureNodes</i>as children.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>FunctionalStructureNode.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify additional identifiers for the<i>FunctionalStructureNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>On optional human readable description of the<i>FunctionalStructureNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Abbreviation" type="vec:LocalizedString" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for a human readable short name, title etc. of the<i>FunctionalStructureNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ContainedGroups" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:FunctionalAssignmentGroup"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ChildNodes"
                           type="vec:FunctionalStructureNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FunctionalStructureSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification to define any hierarchical structure on functional assignment groups (e.g. by the means of a functional organization). The hierarchy starts with a single root node.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="RootNode" type="vec:FunctionalStructureNode">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FuseCharacteristic">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>FuseCharacteristic</i>specializes the<i>MultiDimensionalValue</i>for describing fuse behavior. It references two mandatory<i>d</i>
               <i>imension</i>s: one for current (I) and one for tripping time (T). Additional dimensions may be included as needed (e.g., temperature).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:MultiDimensionalValue">
            <xs:sequence>
               <xs:element name="Time" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:QuantityKind" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TrippingCurrent" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:QuantityKind" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FuseComponent">
      <xs:annotation>
         <xs:appinfo>
            <mt:deprecated reason="&#xA;The &lt;i&gt;FuseComponent&lt;/i&gt; was a very specific model element for internal connectivity and has been replaced with the more generic approach of adding a &lt;i&gt;ConnectionSpecification&lt;/i&gt; to a E/E component description (see &amp;quot;Internal Connectivity&amp;quot;)."
                           since="2.2"/>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Identification of the FuseComponent, which must be distinct for all FuseComponents of an MultiFuseSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectedPins"
                           type="xs:IDREFS"
                           minOccurs="0"
                           maxOccurs="1">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PinComponent"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FuseSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:FuseSpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FuseRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>FuseRole</i>defines the instance specific properties and relationships of a fuse.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="FuseSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification of the electrological aspects of a fuse.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="FuseType" type="vec:FuseType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The geometric type of a fuse.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IMax" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the maximum electric current tolerated by the fuse.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Characteristic" type="vec:FuseCharacteristic" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GeneralTechnicalPartSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of common properties for technical parts.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="ColorInformation"
                           type="vec:Color"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the color of the part.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MassInformation"
                           type="vec:MassInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the overall mass of the part per Unit of quantity (e.g. g/piece or g/meter...)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaterialInformation"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the material of a part with the syntax and nomenclature of an arbitrary reference system. Multiple<i>Material</i>entries in this attribute are only allowed to express the same value in the different reference systems. For parts that are composed of different materials, e.g. wiring harness modules, these materials and their weight proportions can be defined via the<i>MaterialComposition</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaterialComposition"
                           type="vec:MaterialComposition"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Parts and components are often composed from a material-mix. The<i>MaterialComposition</i>allows the definition of the various<i>Material</i>s in a part and their mass. For example, the proportion of copper or other precious metals in a component. It is permissible to list only individual relevant components. A complete listing of all components is not required.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RobustnessProperties"
                           type="vec:RobustnessProperties"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the robustness of a part.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TemperatureInformation"
                           type="vec:TemperatureInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies valid temperatures for a part.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FitRate" type="xs:double" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The Failures In Time (FIT) rate of a device is the number of failures that can be expected in one billion (109) device-hours of operation.[14] (E.g. 1000 devices for 1 million hours, or 1 million devices for 1000 hours each, or some other combination.) (see<a href="https://en.wikipedia.org/wiki/Failure_rate#Units">https://en.wikipedia.org/wiki/Failure_rate#Units</a>)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UnspecifiedAccessoryPermitted"
                           type="xs:boolean"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines whether accessories which are not explicitly defined by a<i>PartRelation</i>may be used with instances of this part. If this attribute is not specified the default value is<i>true.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VoltageRating" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>voltageRating</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VoltageLevelCompliance"
                           type="vec:NominalVoltage"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>NominalVoltage)</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ApplicationType"
                           type="vec:ApplicationType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the valid application types (or fields of application) for the<i>PartVersion</i>described by this<i>GeneralTechnicalPartSpecification.</i> An application type usually implies a wide variety of aspects, such as process requirements, specifications, applicable standards, procedures to be followed etc.</p>
                        <p> </p>
                        <p>
                           <u>Differentiation from<i>VoltageComplianceLevel</i>:</u>Although there is an overlap between the literals of the<i>NominalVoltage</i>and the<i>ApplicationType</i>the statements expressed with the<i>applicationType</i>and the<i>voltageComplianceLevel</i>are different. The<i>voltageComplianceLevel</i>only refers to a statement about the voltage compatibility of a part, but does not include the other aspects, e.g. process requirements. For example, a connector or cable might withstand high voltage levels (<i>voltageLevelCompliance</i>) but might not be allowed for high voltage applications in a vehicle due to an insufficient color coding.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoundingBox" type="vec:BoundingBox" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the bounding box of the part.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PartRelation"
                           type="vec:PartRelation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies possible relations (accessories) of the specified part with other PartVersion (e.g. caps, clips).</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GeometryNode" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A GeometryNode is the geometric representation of a TopologyNode. A TopologyNode may be represented by more than one GeometryNodes, but only within different<i>BuildingBlockSpecification2D/3D.</i>That means, in a single BuildingBlockSpecification a<i>TopologyNode</i>shall only be represent once (or not).</p>
            <p>A GeometryNode is either a GeometryNode2D or a GeometryNode3D.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the GeometryNode. The identification is guaranteed to be unique within the corresponding BuildingBlockSpecification. For all VEC-documents a GeometryNode-instance can be trusted to be the same if the BuildingBlockSpecification-instance is the same (see BuildingBlockSpecification) and the identification of the GeometryNode is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the GeometryNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferenceNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TopologyNode that is represented by the GeometryNode.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologyNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GeometryNode2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A GeometryNode2D is the geometric representation of a TopologyNode in 2D-space.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:GeometryNode">
            <xs:sequence>
               <xs:element name="CartesianPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the CartesianPoint2D where the GeometryNode2D is located.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CartesianPoint2D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GeometryNode3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A GeometryNode3D is the geometric representation of a TopologyNode in 3D-space.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:GeometryNode">
            <xs:sequence>
               <xs:element name="CartesianPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the CartesianPoint3D where the GeometryNode3D is located.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CartesianPoint3D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GeometrySegment" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A GeometrySegment is the geometric representation of a TopologySegment. A TopologySegment may be represented by more than one GeometrySegments, but only within different<i>BuildingBlockSpecification2D/3D.</i>That means, in a single BuildingBlockSpecification a<i>TopologySegment</i>shall only be represent once (or not).</p>
            <p>Furthermore, the definition of the<i>GeometrySegment</i>shall be consistent to the definition in the<i>TopologySpecification.</i>That means, that a<i>GeometrySegment</i>shall have those<i>GeometryNodes</i>as start- &amp; endNode that represent the<i>TopologyNodes</i>referenced from the corresponding<i>TopologySegment</i>.</p>
            <p>A GeometrySegment is either a GeometrySegment2D or a GeometrySegment3D.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the GeometrySegment. The identification is guaranteed to be unique within the corresponding BuildingBlockSpecification. For all VEC-documents a GeometrySegment-instance can be trusted to be the same if the BuildingBlockSpecification-instance is the same (see BuildingBlockSpecification) and the identification of the GeometrySegment is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the GeometrySegment.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferenceSegment" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TopologySegment that is represented by the GeometrySegment.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySegment" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GeometrySegment2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A GeometrySegment2D is the geometric representation of a TopologySegment in 2D-space.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:GeometrySegment">
            <xs:sequence>
               <xs:element name="StartVector" type="vec:CartesianVector2D">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the start vector of the geometry segment. The start vector is a tangent to the segment at the start position.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EndVector" type="vec:CartesianVector2D">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the end vector of the geometry segment. The end vector is a tangent to the segment at the end position.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EndNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the GeometryNode2D where the GeometrySegment2D ends.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:GeometryNode2D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="StartNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the GeometryNode2D where the GeometrySegment2D starts.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:GeometryNode2D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PathSegment"
                           type="vec:PathSegment"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies an ordered list of PathSegments that describe the appearance of the GeometrySegment2D. The appearance is described by the concatenation of the PathSegments beginning at the startNode of the GeometrySegment2D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GeometrySegment3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A GeometrySegment3D is the geometric representation of a TopologySegment in 3D-space.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:GeometrySegment">
            <xs:sequence>
               <xs:element name="StartVector" type="vec:CartesianVector3D">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the start vector of the geometry segment. The start vector is a tangent to the segment at the start position.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EndVector" type="vec:CartesianVector3D">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the end vector of the geometry segment. The end vector is a tangent to the segment at the end position.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EndNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the GeometryNode3D where the GeometrySegment3D ends.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:GeometryNode3D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="StartNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the GeometryNode3D where the GeometrySegment3D starts.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:GeometryNode3D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Curve"
                           type="vec:Curve3D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies an ordered list of curves which describe the centerline of the segment. If a segment is described by more than one curve, the centerlines of the individual curves are aligned in the order of this association.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GrommetRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A GrommetRole defines the instance specific properties and relationships of a grommet.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="GrommetSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>GrommetSpecification</i>that is instanced by this<i>GrommetRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:GrommetSpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableLeadThroughReference"
                           type="vec:CableLeadThroughReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="GrommetSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of grommets.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="Hardness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the hardness of the grommet.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HoleDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the valid diameter of a hole into which the grommet fits.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlateThickness" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies valid the plate thickness at the hole into which the grommet fits.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GrommetType" type="vec:GrommetType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the grommet.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MountingType" type="vec:GrommetMountingType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CableLeadThrough"
                           type="vec:CableLeadThrough"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the CableLeadThroughs of the Grommet.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HarnessDrawingSpecification2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The HarnessDrawingSpecification2D specifies a two-dimensional drawing of a harness. A harness drawing is composed of one or more BuildingBlockSpecifaction2D which are placed on the drawing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="BuildingBlockPositionings"
                           type="vec:BuildingBlockPositioning2D"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the BuildingBlockPositioning2Ds that are forming the 2D harness drawing.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HarnessGeometrySpecification3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The HarnessGeometrieSpecification3D specifies a three-dimensional model of a harness. A harness model is composed of one or more BuildingBlockSpecifaction3D which are placed in the model.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Type" type="vec:GeometryType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the harness geometry.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BuildingBlockPositionings"
                           type="vec:BuildingBlockPositioning3D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the BuildingBlockPositioning3Ds that are forming the HarnessGeometrySpecification3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HoleMountedFixingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>HoleMountedFixingRole</i>defines the instance specific properties and relationships of a hole mounted fixing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:FixingRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HoleMountedFixingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for fixings that are mounted into a hole. This means the fixing has got a bolt which is mounted into a hole of the surrounding.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:FixingSpecification">
            <xs:sequence>
               <xs:element name="HoleDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the hole in which the fixing is mounted.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlateThickness" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the thickness of the plate in which the hole is positioned.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HoleType" type="vec:HoleMountedFixingHoleType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of how the fixing is fixated in the hole. In other words, it defines what features the hole has to provide to allow a fixation of the fixing.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HoleShape"
                           type="vec:HoleMountedFixingHoleShape"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HoleTerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An HoleTerminalRole defines the instance specific properties and relationships of a hole terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HoleTerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of hole terminals. These are used for example as attachment points of ring terminals at the car body.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalSpecification">
            <xs:sequence>
               <xs:element name="HoleDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the hole in a numerical way.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HoleDepth" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> Specifies the depth of the hole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HoleNominalSize"
                           type="vec:TerminalBoltNominalSize"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the size (diameter) of the hole in a nominal way (e.g. "M8").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HoleType" type="vec:TerminalBoltType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the hole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TorsionProtection" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the hole provides torsion protected or not.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaxTerminalCount" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> Defines the maximum number of (ring) terminals that can be attached to this hole at the same time.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HousingComponent">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A HousingComponent describes the interface of an EEComponent with which it can be connected to another EEComponent or a harness. The characteristics of the interface can be described with a referenced ConnectorHousingSpecification. (see KBLFRM-300)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Identification of the HousingComponent, which must be distinct for all HousingComponents of an EEComponent.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>HousingComponent</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CompatibleTypes"
                           type="vec:HousingComponentType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The values of this attribute define the<i>HousingComponentTypes</i>that are valid to be associated with this<i>HousingComponent.</i>In other word, if this<i>HousingComponent</i>can<i/>be associated with a relay, a fuse, a connector housing of a harness. The values are matching the<i>PrimaryPartType</i>of the<i>PartVersion</i>of the component that should be associated (plugged) into this housing component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentConnector" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ComponentConnector</i>
                        <i>HousingComponent</i>
                        <i>EEComponentSpecification.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentConnector" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HousingSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the ConnectorHousingSpecification that is describing the connector interface of the HousingComponent (e.g. Slots, Cavities, Design, Coding).</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectorHousingSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PinComponent"
                           type="vec:PinComponent"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the PinComponents of HousingComponent. (see KBLFRM-300)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SegmentConnectionPoint"
                           type="vec:SegmentConnectionPointHC"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>SegmentConnectionPoints</i>the<i>HousingComponent</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="HousingComponentReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A HousingComponentReference represents the usage of a HousingComponent in the context of a PartUsage or PartOccurrence. (KBLFRM-401)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the HousingComponentReference. The identification is guaranteed to be unique within the EEComponentRole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentConnector" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the ComponentConnector that is realized by the referenced HousingComponentReference.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentConnector"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="HousingComponent" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Points to the HousingComponent referenced by the HousingComponent reference. (KBLFRM-401)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:HousingComponent" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectorHousingRole"
                           type="vec:ConnectorHousingRole"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PinComponentRef"
                           type="vec:PinComponentReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the PinComponentReferences used in the HousingComponentReference. (KBLFRM-401)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="IECUnit">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The IECUnit class can define quantities in the terms of the IEC-Unit-System by specifying the corresponding IEC prefix (optional) and an IEC unit name.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Unit">
            <xs:sequence>
               <xs:element name="IecUnitName" type="vec:IECUnitName">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the IEC unit.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IecPrefix" type="vec:IECPrefix" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the prefix of the IEC unit.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ImperialUnit">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The ImperialUnit class can define quantities in the terms of the Imperial-Unit-System by specifying the corresponding Imperial unit name.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Unit">
            <xs:sequence>
               <xs:element name="ImperialUnitName" type="vec:ImperialUnitName">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the imperial unit.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Instruction" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract super class to specify different types of instructions. Possible instructions are text, file or document based.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instructions"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="InsulationCrimpDetail">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>InsulationCrimpDetail</i>
               <i/>defines crimp values for an insulation crimp. The selection criteria to which the<i>InsulationCrimpDetail</i>
               <i/>applies are defined by the referenced<i>InsulationSpecification</i>and the<i>ConductorSpecification</i>referenced by the containing<i>CoreCrimpDetail.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CrimpDetail">
            <xs:sequence>
               <xs:element name="PullOffForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The minimum force that the completed crimp should withstand when wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. This value applies when core &amp; insulation crimp are functional.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationPullOffForce"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The minimum force that the completed crimp should withstand when wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. This value applies when only the insulation crimp is functional.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AppliesTo" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:InsulationSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="InsulationSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of insulation properties of a WireElement.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="WireType"
                           type="vec:WireType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the insulation. A<i>WireType</i>is a key in a reference system for the definition of wires. Some reference systems define independent type fragments for insulations and conductors and the<i>WireType</i>of a<i>WireElement</i>is the combination of both.</p>
                        <p>An insulation must not have more than one type. This attribute allows more than one value for the reason, that the same type can be expressed in multiple reference systems.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BaseColor"
                           type="vec:Color"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the base color of the insulation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstIdentificationColor"
                           type="vec:Color"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the first identification color of the insulation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondIdentificationColor"
                           type="vec:Color"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the second identification color of the insulation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelIdentificationColor"
                           type="vec:Color"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the color of a label printed on the insulation of the wire.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelIdentificationType" type="vec:LabelType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of a label printed, stamped or integrated on or in the insulation of the wire (e.g. alpha numerical, bar code).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelIdentificationValue" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of a label printed on the insulation of the wire. This value applies to all wire elements that satisfy this specification, so all instances share the same label value (e.g. a wire type or a core number in a multi core wire).</p>
                        <p>If instances of a wire require individual labelling it has to be defined on the<i>WireElementReference</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Material"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the material of the insulation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Thickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the thickness of the insulation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelingTechnology"
                           type="vec:LabelingTechnology"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AllowedLabelingTechnology"
                           type="vec:LabelingTechnology"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="IntegerValueProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property with an integer value.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="xs:integer">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the CustomProperty.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="InternalComponentConnection">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>InternalComponentConnection</i>defines a conductive connection between<i>PinComponents</i>within an<i>EEComponent</i>. Such a connection can be statically permanent or dynamically switch (e.g. by a relais). This behavior can be defined with a<i>SwitchingState</i>.</p>
            <p>The electrical behavior of an<i>InternalComponentConnection</i>can be further specified by a referenced<i>ConductorSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="&#xA;    &lt;p&gt;&#xA;The &lt;i&gt;InternalComponentConnection&lt;/i&gt; has been replaced with the more generic approach of adding a &lt;i&gt;ConnectionSpecification&lt;/i&gt; to a E/E component description (see &amp;quot;Internal Connectivity&amp;quot;).&#xA;&#xA;    &lt;/p&gt;&#xA;&#xA;"
                           since="2.2"/>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Identification of the<i>InternalComponentConnection</i>, which must be distinct for all<i>InternalComponentConnection</i>of an<i>EEComponent</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConductorSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConductorSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Pins" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PinComponent"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="InternalTerminalConnection">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An InternalTerminalConnection represents an electrical connection within a terminal. For standard terminals all receptions (wire- and terminal-receptions) have an electrical connection. For non-standard terminals (e.g. coax) only some receptions have an electrical connection. The InternalTerminalConnection is modelled as a separate class and not as relationship between wire- and terminal-reception, since it is possible that a terminal has only one kind of reception (e.g. a parallel connector, a cavity bridge). (see KBLFRM-302)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the InternalTerminalConnection. The identification is guaranteed to be unique within the TerminalSpecification (this might be for example an internal connection number).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalReception" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TerminalReceptions that participate in the InternalTerminalConnection.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalReception"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReception" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the WireReceptions that participate in the InternalTerminalConnection.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireReception"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ItemEquivalence">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines two or more ItemVersions to be equivalent out of the view of a certain company. The ItemEquivalence class will most likely be used by a company to express which PartNumber a certain PartVersion has in the context of other companies (same applies to<i>DocumentVersions</i>). However, for every other company separate ItemEquivalences are needed as the statement of equivalence can be very subjective.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CompanyName" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the company which states the ItemEquivalence.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Item" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References all ItemVersion that are considered to be equivalent by the ItemEquivalence. A single<i>ItemEquivalence</i>shall only reference<i>ItemVersions</i>of the same class (either<i>DocumentVersions</i>or<i>PartVersions</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ItemVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ItemHistoryEntry">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An ItemHistoryEntry defines the direct relationship between ItemVersions in the terms of predecessor and successor. There are two possible types of relationships between ItemVersions, derivation and sequence. Derivation means for example for parts, that the successor version is a new part developed on the base of the predecessor version. Sequence means the successor version is an improvement of the predecessor version. By the combination of more than one ItemHistoryEntry a linear sequence of ItemVersions can be represented.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:HistoryEntryType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of relationship between the ItemVersions.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PredecessorVersion" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the ItemVersion that is the predecessor in the ItemHistoryEntry.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ItemVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SuccessorVersion" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the ItemVersion that is the successor in the ItemHistoryEntry.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ItemVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ItemVersion" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract super-class for physical objects (e.g. a Terminal), virtual objects (e.g. a 150% Harness) as well as documents (e.g. a wiring diagram). In difference to AP 212 the VEC makes it only possible to describe/exchange information about Versions since Master-Objects cannot exist without one or more Versions.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Abbreviation"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for a short name of the Item. In case of a document the attribute is wanted to contain its title.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the ItemVersion. e.g. Buchsengehäuse 26-polig</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CompanyName" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the publishing company of the ItemVersion. The companyName is part of the main identifier of an ItemVersion together with the corresponding number (partNumber or documentNumber) and version (partVersion or documentVersion).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ProcessingInstruction"
                           type="vec:Instruction"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Processing instructions for the application of the part or the document.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ChangeRestriction"
                           type="vec:ChangeRestrictionType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ItemVersion</i>
                        <i>ChangeRestrictionType</i>
                        <i>changeRestriction.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Contract" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the contracts that apply to an ItemVersion.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Contract"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CopyrightInformation" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>CopyrightInformation</i>that is in effect for this<i>ItemVersion.</i>If no<i>CopyrightInformation</i>is referenced by the<i>ItemVersion</i>, the<i>CopyrightInformation</i>that is referenced by the<i>VecContent</i>(if defined) shall be considered as in effect for this<i>ItemVersion.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CopyrightInformation" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Approval"
                           type="vec:Approval"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the approval information of the ItemVersion.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ChangeDescription"
                           type="vec:ChangeDescription"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the change history of the ItemVersion.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Creation" type="vec:Creation" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the information about the creation of the ItemVersion.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="LabelingRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>LabelingRole.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="LabelType" type="vec:LabelType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of a label printed, stamped or integrated on or in component (e.g. alpha numerical, bar code).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelValue" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of a label printed on the component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelingTechnology"
                           type="vec:LabelingTechnology"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelingSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:LabelingSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="LabelingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>LabelingSpecification</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="LabelType" type="vec:LabelType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of a label printed, stamped or integrated on or in component (e.g. alpha numerical, bar code).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelValue" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of a label printed on the component. This value applies to all components that satisfy this specification, so all instances share the same label value (e.g. a part number).</p>
                        <p>If instances of a component require individual labeling it has to be defined on the LabelingRole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelingTechnology"
                           type="vec:LabelingTechnology"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AllowedLabelingTechnology"
                           type="vec:LabelingTechnology"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="LocalGeometrySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>LocalGeometrySpecification</i>is responsible to create a relationship between the 3D model of a component (e.g. a connector, a cable duct or a fixing) and entities of the VEC. The 'Local' in the name refers to the fact that all definitions within this specification are 'local' to the 3D model of a specific component (a component in a library, not in a specific usage).</p>
            <p>Specifically, it defines a transformation to transform the<i>BoundingBox</i>of a component into to coordinate system of the component and it defines the positions of<i>Placement-</i>and<i>MeasurementPoints</i>in this coordinate system.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="local_geometry"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="BaseUnit" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>Unit</i>in which all coordinates (e.g. cartesian points) are defined. Shall be a unit of length (e.g. millimetre).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Unit" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoundingBoxPositioning"
                           type="vec:Transformation3D"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The transformation that defines the positioning of the bounding box in coordinate system of the component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CartesianPoint"
                           type="vec:CartesianPoint3D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>All<i>CartesianPoint3Ds</i>that are used in this<i>LocalGeometrySpecification.</i>All<i>CartesianPoint3Ds</i>are defined in relation to the coordinate system of the component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Positions"
                           type="vec:LocalPosition"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>All position defined by this<i>LocalGeometrySpecification.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="LocalPosition" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>LocalPosition</i>defines the position of a relevant point of component within the coordinate system of the component.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="local_geometry"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CartesianPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CartesianPoint3D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="LocalizedString">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the internationalization of text contents. Attributes of the type LocalizedString normally have the multiplicity [0..*]. This means that such an attribute can have multiple values for different locales. It must not have multiple values for the same locale.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AbstractLocalizedString"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="LocalizedStringProperty">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="vec:LocalizedString">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the<i>CustomProperty.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="LocalizedTypedString">
      <xs:annotation>
         <xs:documentation xml:lang="en">Allows the internationalization of text contents in a typed way. Attributes of the type LocalizedTypedString normally have the multiplicity [0..*]. This means that such an attribute can have multiple values for different locales and types. It must not have multiple values for the same locale and type.</xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AbstractLocalizedString">
            <xs:sequence>
               <xs:element name="Type" type="vec:LocalizedTypedStringType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>type</i>of the<i>LocalizedTypedString</i>. This allows the definition of a more detailed semantic than the semantic of the attribute itself with the type<i>LocalizedTypedString.</i>Agreed type values are defined in an OpenEnumeration.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Location" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Location specifies a distinct position on a topology. Locations can be used for the placement of components or for the definition of Dimensions.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:DimensionAnchor">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Location. The identification is guaranteed to be unique within the PlacementSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MatchingId" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies an identification for matching the location with a reference point of component (e.g. a cable channel).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacedPlacementPoints" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PlacementPointReference</i>that is placed by this location.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPointReference"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Mapping">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The Mapping defines the concrete mapping two parts aliased as A &amp; B. For performance reasons the roles PartSideA and PartSideB are abbreviated to A &amp; B.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="IdentificationA" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ConnectorHousingSpecification</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IdentificationB" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ConnectorHousingSpecification</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="B" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SlotMapping"
                           type="vec:SlotMapping"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MappingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>Specification</i>for the description of a<i>CavityMappings</i>. A<i>CavityMapping</i>allows the mapping between the<i>Cavities</i>of two independent<i>ConnectorHousingSpecifications</i>. This is for example needed to determine the mating for an inliner or for the mating between an EE-Component and a ConnectorHousing. The<i>CavityMapping</i>is a part master data.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Mapping"
                           type="vec:Mapping"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MassInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of mass information. Attributes of the type MassInformation normally have the multiplicity [0..*]. This means that such an attribute can have mass values for different<i>determinationTypes</i>and<i>valueSources</i>. It must not have multiple values for the same<i>determinationType</i>and<i>valueSource</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="DeterminationType"
                     type="vec:ValueDetermination"
                     minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the determination type of the mass information.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Value" type="vec:NumericalValue">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the mass as numerical value.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ValueSource" type="vec:MassInformationSource" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The<i>valueSource</i>defines in an OpenEnumeration the source from which the<i>MassInformation</i>has been retrieved. This information, in combination with the<i>ValueDetermination</i>gives a hint about the reliability of the<i>MassInformation</i>
                  </p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="Material">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of material information.<i>Material-</i>attributes normally have the multiplicity [0..*]. This means that such an attribute can have material values for different<i>referenceSystems</i>. It must not have multiple values for the same<i>referenceSystems</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Key" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The key of the material in the corresponding material reference system.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ReferenceSystem" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The identification of the material reference system, which is defining possible values and the semantic of material keys.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Description"
                     type="vec:LocalizedString"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>On optional human readable description of the material (e.g. the name).</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="MaterialComposition">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Parts and components are often composed from a material-mix. The<i>MaterialComposition</i>allows the definition of the various<i>Material</i>s in a part and their mass.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Material"
                     type="vec:Material"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the material of this composition entry with the syntax and nomenclature of an arbitrary reference system.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="MassInformation"
                     type="vec:MassInformation"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the mass of this corresponding<i>Material</i>in a part per Unit of quantity (e.g. g/piece or g/meter...) of the part.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="MatingDetail">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>If the mating of the two terminals is not unambiguously, a MatingDetail can specify the TerminalReceptions that are mated.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="coupling"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Connection" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>Connection</i>that is realized by this<i>MatingPointDetail</i>
                           <i>.</i>For example, when a connection is realized by directly plugging or screwing two E/E components together.</p>
                        <p>The definition at level of the<i>MatingDetail</i>might be required if the<i>TerminalRole</i>of the MatingPoint carries multiple different potentials (e.g. Coax).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Connection"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstTerminalReception" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the first terminal reception that is mated.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalReceptionReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondTerminalReception" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the second terminal reception that is mated.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalReceptionReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MatingPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A MatingPoint defines the Mating of two terminals. This normally occurs when two inliners are connected. Then terminals of one side (female) are mated with terminals of the other side (male).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="coupling"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>MatingPoint</i>. The identification is guaranteed to be unique within a<i>CouplingPoint</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Connection" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>Connection</i>that is realized by this<i>MatingPoint</i>
                           <i>.</i>For example, when a connection is realized by directly plugging or screwing two E/E components together.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Connection"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstTerminalRole" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the first terminal that is mated.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalRole" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondTerminalRole" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the second terminal that is mated.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalRole" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MatingDetail"
                           type="vec:MatingDetail"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the MatingDetails, if a detailed description of the relationships between TerminalReceptions and TerminalReceptions is needed.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MeasurePointPosition">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the position of a MeasurementPoint within the coordinate system of the component. MeasurementPoint onto which dimension can be defined<i>.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="local_geometry"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:LocalPosition">
            <xs:sequence>
               <xs:element name="MeasurementPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:MeasurementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MeasurementPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines a reference point on a component that can be used to apply a Dimension. This is normally a significant point of the component e.g. an edge, a hole, a bolt or something similar.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placeable_element"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the MeasurementPoint. The identification is guaranteed to be unique within a component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MeasurementPointReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>MeasurementPointReference</i>is the instance of a<i>MeasurementPoint</i>in the context of an<i>OccurrenceOrUsage</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:DimensionAnchor">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the MeasurementPointReference. The identification is guaranteed to be unique within the containing PlaceableElementRole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MeasurementPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>MeasurementPoint</i>that is instanced by this<i>MeasurementPointReference.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:MeasurementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModularSlot">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ModularSlot</i>is a specialization of<i>AbstractSlot</i>. Unlike a<i>Slot</i>, it does not contain cavities itself but serves as a mounting location for other connector housings (modules) during assembly. This enables flexible, modular assembly and potentially reusable mating strategies.</p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AbstractSlot">
            <xs:sequence>
               <xs:element name="Optional" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies whether the allocation of the ModularSlot is optional or not (can a usage of the connector housing leave this ModularSlot empty.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AllowedInserts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartRelations</i>that are valid inserts for this<i>ModularSlot.</i>
                        </p>
                        <p>This reference points to<i>PartRelations</i>in order to allow referencing indirectly a<i>PartVersion</i>if the description of individual<i>PartVersions</i>is done with one physical VEC file per<i>PartVersion</i>and to allow the expression of optional inserts, choices etc. However, inserts for a<i>ModularSlot</i>are always ConnectorHousings by itself. Therefore, the referenced<i>PartVersion</i>shall have a<i>PrimaryPartType = ConnectorHousing</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartRelation"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Layout"
                           type="vec:CavityLayout"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModularSlotAddOn">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the wire addon needed to reach a<i>ModularSlot</i>from a specific<i>SegmentConnectionPoint</i>. The addon needed to reach the cavities of the insert(s) from this point is defined by the<i>ConnectorHousingSpecification</i>of the insert.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="WireAddOn" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the wire length add on needed for the modular slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Slot" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ModularSlot" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModularSlotConfiguration">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ModularSlotConfiguration</i>defines a valid combination of<i>ModularSlotLayouts</i>for a set of modular slots within a connector housing.</p>
            <p>This class enables the modeling of complex interdependencies between modular slots—particularly when the validity of one layout depends on the configuration of other slots. It is essential for ensuring consistency in use cases requiring continuous cavity numbering or where spatial constraints affect insert placement.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>ModularSlotConfiguration</i>. The identification is guaranteed to be unique within the ConnectorHousingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValidLayoutCombination" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavityLayout"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModularSlotReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ModularSlotReference</i>represents the usage of a<i>ModularSlot</i>in the context of PartUsage or PartOccurrence.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AbstractSlotReference">
            <xs:sequence>
               <xs:element name="UsedInserts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the inserts that are used in this<i>ModularSlotReference.</i>More than one insert is valid in the case variant dependent equipment of the slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectorHousingRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModuleFamily">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A ModuleFamily is a mechanism to group mutually exclusive modules. This could be for example something like "audio equipment", "diesel engine".</p>
            <p>In other words, a module family groups different variants of the same basic feature. In a real car configuration only one member of the family can participate. For the example module family "audio equipment" the members may be named: "Basic Audio Equipment", "Standard Audio Equipment", "Premium / High End Audio Equipment".</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="modules"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the ModuleFamily. The identification is guaranteed to be unique within the ModuleFamilySpecification. For all VEC-documents a ModuleFamily-instance can be trusted to be the same if the ModuleFamilySpecification-instance is the same and the identification of the ModuleFamily is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the ModuleFamily.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Mandatory" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>mandatory=true</i>
                        <i>PartWithSubComponentsRole</i>
                        <i>ModuleFamily</i>
                        <i>ModuleFamily</i>
                        <i>ModuleFamily</i>
                        <i>ConfigurableElement</i>
                        <i>PartWithSubComponentsRole</i>
                        <i>ModuleFamily.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ModuleInFamily" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Modules that belong to the ModuleFamily.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartWithSubComponentsRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModuleFamilySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of module families (see ModuleFamily).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="modules"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="ModuleFamily" type="vec:ModuleFamily" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ModuleFamilies defined in the ModuleFamilySpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModuleList">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A ModuleList is a mechanism to control additional / completion PartOccurrences. This means for a car configuration, if at least one of the modules in the list participates in the configuration, the "completionComponent" participates, too.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="modules"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the ModuleList. The identification is guaranteed to be unique within the ModuleListSpecification. For all VEC-documents a ModuleList-instance can be trusted to be the same if the ModuleListSpecification-instance is the same and the identification of the ModuleList is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the ModuleList.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CompletionComponents" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the components that are used as completion, if any of the Modules in the ModuleList appears in a configuration.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ModuleInList" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Modules that belong to the ModuleList. If any of the referenced Modules participates in a configuration the completion components participate, too.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartWithSubComponentsRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ModuleListSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of module lists (see ModuleList).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="modules"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="ModuleListConfiguration"
                           type="vec:ModuleList"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ModuleLists defined in the ModuleListSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MultiCavityPlugRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>MultiCavityPlugRole</i>defines the instance specific properties and relationships of a multi cavity plug.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="see MultiCavityPlugSpecification" since="2.2.0"/>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPlugRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MultiCavityPlugSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of cavity plugs that apply to more than one cavity. A cavity plug is a watertight non-electrical object to fill an empty cavity. MultiCavityPlugs are formed to fit into one connector / slot and to seal more than one cavity at once. Normally there are different variants of these MultiCavityPlugs that can seal a connector in different pinning scenarios. The cavities that are plugged by a MultiCavityPlug are defined with a SealedCavitiesAssignment.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="&#xA;Was replaced by the more powerful concept of CablePlugs (see documentation of &lt;i&gt;MultiCavitySealSpecification&lt;/i&gt; for a detailed explanation)."
                           since="2.2.0"/>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavityPlugSpecification">
            <xs:sequence>
               <xs:element name="Assignment"
                           type="vec:SealedCavitiesAssignment"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>SealedCavitiesAssignments</i>that are valid for this<i>MultiCavityPlug</i>. One individual<i>SealedCavitiesAssignment</i>is used for each connector housing that matches this<i>MultiCavityPlug.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MultiCavitySealRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>MultiCavitySealRole</i>defines the instance specific properties and relationships of a multi cavity seal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="see MultiCavitySealSpecification" since="2.2.0"/>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavitySealRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MultiCavitySealSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for cavity seals that apply to more than one cavity. A CavitySeal is a watertight non-electrical object to fill a populated Cavity. MultiCavitySeals are formed to fit into one connector / slot and to seal more than one cavity at once.</p>
            <p>There are two types of MultiCavitySeals:</p>
            <ol>
               <li>In first type the MultiCavitySeal has an opening for all cavities of the connector. Each opening can be filled either with a wire (without an individual seal) or with a CavityPlug (e.g. a synthetic pin) or a MultiCavityPlug.</li>
               <li>In the second type, the MultiCavitySeal has a specific configuration of openings for some cavities of the connector. These MultiCavitySeals are sealing all cavities with an opening and a wire in it and all cavities where no opening in the MultiCavitySeal exists. For each opening that has no wire it an additional CavityPlug is needed. </li>
            </ol>
            <p>The cavities that are left open by a MultiCavitySeal are defined with a SealedCavitiesAssignment.</p>
            <p> </p>
            <p>
               <b>
                  <i>Note:</i>
               </b>
               <i>With Version 2.2.0 The MultiCavitySealSpecification (and all associated concepts like the MultiCavityPlugSpecification and the corresponding Roles) has been replaced by the CableSealSpecification. The MultiCavitySeal(Specification) has multiple design flaws that became obvious, when more complex connector assemblies were taken into account (e.g. modern high-voltage or high-frequency connector systems). The main reason for deprecation of this concept were:</i>
            </p>
            <ol>
               <li>
                  <i> The MultiCavitySealSpecification inherits from CavitySealSpecification. Therefore, all openings in a MultiCavitySeal have to share the same properties.</i>
               </li>
               <li>
                  <i>A ContactPoint is required to introduce an occurrence of a MultiCavitySeal. However, such seals are often placed at certain position on the wire and are not associated directly with specific ContactPoint. They also might be used on multi-core wires before those are split up into individual wire elements (that are contracted individually).</i>
               </li>
               <li>
                  <i>It is not possible to assign a wire to a specific opening in the seal, which means an incomplete product definition.</i>
               </li>
               <li>
                  <i>Such seals are often used in addition to a conventional cavity seal. However, the ContactPoint only permits one CavitySeal per contacting situation. This is true for conventional cavity seals that are associated with a specific crimp. This is not true for cable seals where multiple seals can be added to the wire.</i>
               </li>
            </ol>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="&#xA;Was replaced by the more powerful concept of CableSeals (see documentation of &lt;i&gt;MultiCavitySealSpecification)&lt;/i&gt;."
                           since="2.2.0"/>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CavitySealSpecification">
            <xs:sequence>
               <xs:element name="Assignment"
                           type="vec:OpenCavitiesAssignment"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>OpenCavitiesAssignments</i>that are valid for this<i>MultiCavitySeal</i>. One individual<i>OpenCavitiesAssignment</i>is used for each connector housing that matches this<i>MultiCavitySeal.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MultiDimensionalValue">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>MultiDimensionalValue</i>represents a set of values defined across multiple<i>Dimension</i>s. It is used to describe properties that vary along several axes, such as characteristic curves. Each<i>DataPoint</i>assigned to a<i>MultiDimensionalValue</i>must define one<i>DataPointValue</i>per<i>Dimension</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Dimension" type="xs:IDREFS">
            <xs:annotation>
               <xs:appinfo>
                  <mt:relationship element-type="vec:QuantityKind"
                                   relationship-type="Association"
                                   unique="true"
                                   ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="DataPoint" type="vec:DataPoint" maxOccurs="unbounded">
            <xs:annotation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Composition" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="MultiDimensionalValueProperty">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="vec:MultiDimensionalValue">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MultiFuseRole">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="MultiFuseSpecification">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="FuseType" type="vec:MultiFuseType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the manufacturing types of a multi-fuse.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IMaxTotal" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the maximum electric current tolerated by the multi-fuse in total.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FuseComponents"
                           type="vec:FuseComponent"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NURBSControlPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Represents a control point of a<i>NURBSCurve.</i>It consists of a referenced<i>CartesianPoint3D</i>for the position and a<i>weight</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Weight" type="xs:double">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p> The weight of the NURBSControlPoint.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="CartesianPoint3D" type="xs:IDREF">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The<i>CartesionPoint3D</i>that defines the position of this<i>NURBSControlPoint.</i> </p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship element-type="vec:CartesianPoint3D" relationship-type="Association"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="NURBSCurve">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The NURBSCurve represents the parameter set of a NURBS (Non-Uniform rational B-Spline) in the VEC. For a complete definition of NURBS see for example (<a href="https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline">https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline</a>).</p>
            <p> </p>
            <p>Basically, a NURBS curve is defined by:</p>
            <ul>
               <li>a<b>degree</b>
               </li>
               <li>a list of<b>control points</b>: with at least<i>degree + 1</i>points.</li>
               <li>a<b>weight</b>for each control point.</li>
               <li>a<b>knots</b>vector: a list of numbers, with (<i>degree + #controlpoints +1)</i>elements. Every number must be equal or greater than its predecessor, and the same value must not be repeated more than<i>degree</i>times. It seems that modern NURBS algorithms just require (<i>degree + #controlpoints -1)</i>control points.</li>
            </ul>
            <p>Commonly used default assignments for the parameters are:</p>
            <ul>
               <li>
                  <b>weight = 1</b>for all control points: In this case the curve is called "non-rational".</li>
               <li>
                  <b>knot</b>vector: equidistant and increasing values in the knot vector (e.g. 1,2,3,4,5,6,7) means the curve is "uniform" which exists in two variants.<ul>
                     <li>
                        <b>clamped</b>(or pinned): If the knot vector starts and ends with<i>degree</i>times the same value (e.g. degree = 3, knots = [0,0,0,1,2,3,4,5,5,5], then it is<i>clamped.</i>This has the effect, that the first and last control point coincide with the start and end point of the curve.</li>
                     <li>
                        <b>unclamped</b>(or unpinned): If there are no repeated values in the knot vector (e.g. 1,2,3,4,5,6,7) it is unclamped.</li>
                  </ul>
               </li>
            </ul>
            <p>The VEC <i>NURBSCurve</i>corresponds to removed<i>BSplineCurve</i>(VEC Version &lt;= 1.1.3 and KBL). However, the<i>BSplineCurve</i>did not define weight and knot vector, so default assignments where assumed. Existing implementations are using "uniform non-rational b splines", unfortunately some implementations use "uniform clamped" and some "unclamped".</p>
            <p>Since a NURBS cannot be rendered correctly without the knowledge of all parameters and to avoid further misconceptions the VEC allows the definition of all parameters of a NURBS. Furthermore, it requires the specification of all parameters, even if some known default assignment (e.g. non-rational) is used. </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Curve3D">
            <xs:sequence>
               <xs:element name="Degree" type="xs:integer">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the degree of the NURBS (for details see the class description of<i>NURBSCurve).</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Knots"
                           type="xs:double"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the knot-vector of the NURBS(for details see the class description of<i>NURBSCurve).</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ControlPoint"
                           type="vec:NURBSControlPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the control points of the NURBS curve (for details see the class description of<i>NURBSCurve)</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Net">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Net is an undirected link between<i>NetworkPorts</i>. It defines that the<i>NetworkPorts</i>are related to each other with the<i>Net</i>.</p>
            <p>A<i>Net</i>is normally an instance of a<i>NetType.</i> E.g. if "CAN-BUS" is defined as a<i>NetType</i>typical<i>Nets</i>would be "BODY-CAN", "AUDIO-CAN".</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Net. The identification is guaranteed to be unique within the NetSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the Net.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetType" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetType" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetworkPort" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the NetworkPorts that are connected by the Net.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetworkPort"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetGroup">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines a logical grouping of specific<i>Nets</i>. For example, it can be used to identify all<i>Nets</i>of specific CAN domain, a function, a requirement level (e.g. Safety &amp; Security).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the NetGroup. The identification is guaranteed to be unique within the NetSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetGroupType" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the group.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the NetGroup.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Net" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Nets that are grouped by the NetGroup.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Net"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of electrological nets.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Net" type="vec:Net" minOccurs="0" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Nets defined in the NetSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetGroup"
                           type="vec:NetGroup"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the NetGroup defined in the NetSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetType"
                           type="vec:NetType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetworkNode"
                           type="vec:NetworkNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the NetworkNodes defined in the NetSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>NetType</i>defines the different types of Nets used in the<i>NetSpecification</i>. The level of detail of the<i>NetTypes</i>for the can be process dependent.</p>
            <p>A NetType could be just used to differentiate between conventional (analogue) communication and bus communication (digital), it can also already define the different types of digital communication (e.g. CAN, MOST, Ethernet).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the NetType. The identification is guaranteed to be unique within the NetSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the<i>NetType</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalType" type="vec:SignalType" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalSubType" type="vec:SignalSubType" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalInformationType"
                           type="vec:SignalInformationType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalTransmissionMediumType"
                           type="vec:SignalTransmissionMediumType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the transmission medium for signals of this type.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetViewSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>NetViewSpecification</i>supports the exchange of a basic layout for a<i>NetSpecification</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="CartesianPoint"
                           type="vec:CartesianPoint2D"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>CartesianPoint2Ds</i>
                        <i>NetViewSpecification.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacedViewItems"
                           type="vec:NetworkNodeViewItem"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>NetworkNodeViewItems</i>
                        <i>NetViewSpecification</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetworkNode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A NetworkNode is a representative for an actor in the electric system, e.g. an actuator, a sensor, an ECU.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the NetworkNode. The identification is guaranteed to be unique within the NetSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Abbreviation"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for a short name of the NetworkNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetworkNodeType" type="vec:NetworkNodeType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of a NetworkNode. Common values are agreed as an<i>OpenEnumeration</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the NetworkNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubType" type="vec:NetworkNodeSubType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the sub type of a NetworkNode. The sub type allows a differentiation within a specific type. E.g. an actuator can be differentiated into lamps, speakers, motors.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RealizedUsageNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>UsageNode</i>that is realized by this<i>NetworkNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:UsageNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Port"
                           type="vec:NetworkPort"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the NetworkPorts of a NetworkNode.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetworkNodeViewItem">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>NetworkNodeViewItem</i>
            <i>NetworkNode</i>
            <i>NetViewSpecification</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>NetworkNodeViewItem</i>. The identification is guaranteed to be unique within the<i>NetViewSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GridSquare" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the grid square in which the<i>NodeViewItem</i>is placed (e.g. E/40).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetworkNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>NetworkNode</i>
                        <i>NetworkNodeViewItem.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetworkNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DisplayedPort"
                           type="vec:NetworkPortViewItem"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies all<i>NetworkPortViewItems</i>that are displayed on this<i>NetworkNodeViewItem.</i>The order of this association defines the clockwise arrangement of the ports on the node. As each<i>NetworkPortViewItem</i>can also define the side on which it is placed, side definitions take precedence over order.</p>
                        <p>
                           <i> </i>
                        </p>
                        <p>
                           <b>Caution:</b>This association is<u>ordered</u>!</p>
                        <p>
                           <i> </i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Orientation" type="vec:Transformation2D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>NetworkNodeViewItem</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetworkPort">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>NetworkPort is the source or the receiver of a of a Net.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the NetworkPort. The identification is guaranteed to be unique within the NetSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the element.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalDirection" type="vec:SignalDirection" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the direction of the signal on this NetworkPort.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the NetworkPort.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetType" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetType" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NetworkPortViewItem">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>NetworkPortViewItem</i>
            <i>NetworkPort</i>
            <i>NetworkNodeViewItem</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Side" type="vec:NetworkPortViewItemSide" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>NetworkNodeViewItem</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetworkPort" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>NetworkPort</i>
                        <i>NetworkPortViewItem.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetworkPort" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NodeLocation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a TopologyNode as a Location.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Location">
            <xs:sequence>
               <xs:element name="ReferencedNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the TopologyNode on which the Location is located.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologyNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NodeMapping">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the relationship of an inner node to its outer topology. The relationship to the outer topology is expressed with a<i>Location</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="InnerNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologyNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MappedPosition" type="vec:Location">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NumericalValue">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A quantity expressed with a numerical value and a unit.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ValueWithUnit">
            <xs:sequence>
               <xs:element name="ValueComponent" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of the numerical value.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Tolerance" type="vec:Tolerance" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the tolerance for the dimension.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="NumericalValueProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property with a numerical value. (see KBLFRM-319)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the<i>CustomProperty.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OccurrenceOrUsage" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An OccurrenceOrUsage is an abstract appearance of a part in the harness. This can either be a concrete part (with a part number or something similar) or the description (specification / requirements) of a part that should be used at that position. In the first case it would be a PartOccurrence in the second case a PartUsage.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>OccurrenceOrUsage</i>. The identification is guaranteed to be unique within the context. For all VEC-documents an<i>OccurrenceOrUsage</i>-instance can be trusted to be the same if the context-instance is the same and the identification of the<i>OccurrenceOrUsage</i>is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify additional identifiers for the<i>OccurrenceOrUsage</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Abbreviation"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies an abbreviation of the<i>OccurrenceOrUsage</i>. Normally this a human readable short name.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>OccurrenceOrUsage</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Quantity" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>OccurrenceOrUsage</i>
                        <i>OccurrenceOrUsage</i>
                        <i>WireRole</i>
                        <i>WireProtectionRole</i>
                        <i>WireLength</i>
                        <i>quantity</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RealizedUsageNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>UsageNode</i>that is realized by this<i>OccurrenceOrUsage</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:UsageNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferenceElement" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>OccurrenceOrUsage</i>for which this<i>OccurrenceOrUsage</i>is an accessory / supplementary component. If an<i>OccurrenceOrUsage</i>defines more than one<i>referenceElement</i>, the semantic is that it is related to the combination all "reference elements" and not to each individually. In other words, in a variable product definition the<i>OccurrenceOrUsage</i>only exists if all<i>referenceElements</i>exist.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstallationInstruction"
                           type="vec:Instruction"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Room to specify InstallationInstruction(s) for the OccurrenceOrUsage.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Role" type="vec:Role" minOccurs="0" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the different roles of the OccurrenceOrUsage.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OccurrenceOrUsageViewItem2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An OccurrenceOrUsageViewItem2D specifies the representation of an OccurrenceOrUsage in a 2DDrawing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the OccurrenceOrUsageViewItem2D. The identification is guaranteed to be unique within the BuildingBlockSpecification2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the OccurrenceOrUsageViewItem2D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GridSquare" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the grid square in which the OccurrenceOrUsageViewItem2D is placed (e.g. E/40).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OccurrenceOrUsage" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>OccurrenceOrUsages</i>which are represented by the view item.</p>
                        <p>
                           <b>Important:</b>To use one<i>OccurenceOrUsageViewItem</i>for multiple<i>OccurrenceOrUsages</i>is only valid, if the referenced items are true alternatives to each other. That means, they must have an identical placement, the geometrical models used for each item must be substitutable and the item must be mutually exclusive to each other.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Orientation" type="vec:Transformation2D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the orientation of the view item.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OccurrenceOrUsageViewItem3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>OccurrenceOrUsageViewItem3D</i>specifies the existence and representation of an<i>OccurrenceOrUsage</i>in a 3D-model.</p>
            <p>The definition of the existence is necessary because a 150% model of a harness might contain different geometric variants and not all of them must be represented in the same<i>BuildingBlockSpecification3D</i>.</p>
            <p>There are two different cases for the representation of<i>OccurrenceOrUsage</i>s in a 3D model. There are components that can be represented explicitly by a 3D model of the component (e.g. connectors, cable ducts, fixings) and there are components that are represented implicitly by a generic visualization and their placement on the topology (e.g. tapes, tubes). If an OccurrenceOrUsage has a 3D model and it shall be placed explicitly in 3D space, the<i>OccurrenceOrUsageViewItem3D</i>defines a<i>Transformation3D</i>in the<i>orientation</i>role. If no<i>orientation</i>is defined the<i>OccurrenceOrUsage</i>is represented implicitly.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the OccurrenceOrUsageViewItem. The identification is guaranteed to be unique within the BuildingBlockSpecification3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the OccurrenceOrUsageViewItem3D.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OccurrenceOrUsage" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>OccurrenceOrUsages</i>which are represented by the view item.</p>
                        <p>
                           <b>Important:</b>To use one<i>OccurenceOrUsageViewItem</i>for multiple<i>OccurrenceOrUsages</i>is only valid, if the referenced items are true alternatives to each other. That means, they must have an identical placement, the geometrical models used for each item must be substitutable and the item must be mutually exclusive to each other.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Orientation" type="vec:Transformation3D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the orientation of the view item.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OnPointPlacement">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An OnPointPlacement is a placement of an OccurrenceOrUsage that places it onto discrete points, in most cases one point. In some cases, it is necessary to place a component (with more than one reference point) onto multiple points (e.g. a cable duct).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Placement">
            <xs:sequence>
               <xs:element name="Location" type="vec:Location" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Locations where Placement places the reference points of the placed element.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OnWayPlacement">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An OnWayPlacement places an OccurrenceOrUsage onto an area of the Topology (e.g. a tape or a tube). The area is defined by a startLocation and an endLocation. If startLocation and endLocation are not located on the same TopologySegment it is possible to specify a Path of TopologySegments over which the OnWayPlacement goes.</p>
            <p>The names start- and endLocation are used to distinguish between the two ends. It does<b>
                  <u>not</u>
               </b>indicate a direction as property of the product (e.g. for tapes).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Placement">
            <xs:sequence>
               <xs:element name="EndLocation" type="vec:Location">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Location where OnWayPlacement ends.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Path" type="vec:Path" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the topology path defining the way the OnWayPlacement takes in the topology.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="StartLocation" type="vec:Location">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Location where OnWayPlacement starts.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OpenCavitiesAssignment">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An OpenCavitiesAssignment groups the cavities of ONE connector that are open in a MultiCavitySeal. If a MultiCavitySeal fits into more than one connector, than there are as many OpenCavitiesAssignments.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="see MultiCavitySealSpecification" since="2.2.0"/>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="OpenCavities" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the cavities that are open.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OpenWireEndTerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An OpenWireEndTerminalRole defines the instance specific properties and relationships of an open wire end.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OpenWireEndTerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of open wire ends. An open wire end is an end of wire located at a specific location in the harness. Open wire ends are not connected to some other component, in contrast to regular connectors or ring terminals. Only one wire is ending at a single open wire end, otherwise it would be a splice.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalSpecification"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="OtherUnit">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The OtherUnit class can be used to define a unit, which is necessary in the context of data exchange but not contained in the standard systems (e.g. Piece).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Unit">
            <xs:sequence>
               <xs:element name="OtherUnitName" type="vec:OtherUnitName">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the unit.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartOccurrence">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A PartOccurrence is an instance of a component with a specified part number (PartVersion).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="part_structure"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:OccurrenceOrUsage">
            <xs:sequence>
               <xs:element name="IsSecondaryAlternative" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If a PartUsage is realized by more than one PartOccurrence it is possible to specify which one is the preferred. (see KBLFRM-264)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AlternativeOccurrence" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the PartOccurrences that are an alternative for this PartOccurrence.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartOccurrence"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstanciatedOccurrence" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the PartOccurrence which is instantiated by the PartOccurrence. This reference is for example needed in the case of usage of assemblies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartOccurrence"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Part" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the PartVersion that is instantiated by this PartOccurrence.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RealizedPartUsage" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the PartUsages that are realized by the PartOccurrence.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartOrUsageRelatedSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Base class for all specifications which are describing a<i>PartVersion</i>or a<i>PartUsage</i>. A<i>PartOrUsageRelatedSpecification</i>specifies a certain aspect of the described part or usage (e.g. general technical part information, connector housing aspects or wire aspects).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="SpecialPartType" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The specialPartType allows the specification of subclassifications for a PartOrUsageRelatedSpecification (e.g. different types of connector housings).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DescribedPart" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the PartVersion(s) to which the information defined in this specification applies. Example: If the PartOrUsageRelatedSpecification is a GeneralTechnicalPartSpecification and it defines that the color is "green" then all PartVersion referenced by this association are "green".</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartRelation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>PartRelation</i>defines additional parts (e.g. accessories) for a specific part. These parts are in some way or usage scenario required for the part itself to be used. However, they are not included with the part number and have to ordered separately. This can be used for example for caps, cable ties etc.</p>
            <p>The associated<i>PartRelations</i>of a<i>GeneralTechnicalPartSpecification</i>represent a configurable bill of material that can/must be ordered together with the part, when it is used. Each<i>PartRelation</i>represents an item / line in this bill of material. The semantic by which a<i>PartRelation</i>is resolved to<i>PartVersions</i>is defined by the<i>PartRelationType.</i>If multiple<i>PartRelations</i>resolve to the same<i>PartVersions</i>the resulting bill of material is the sum of them.</p>
            <p>If a<i>PartRelation</i>references more than one<i>accessoryPart</i>the<i>PartRelationType</i>defines the semantic to resolve this reference for a resulting bill of material. If the type is<i>Mandatory</i>all referenced<i>PartVersions</i>shall be in the resulting bill of material. If the type is<i>Optional</i>, the referenced<i>PartVersions</i>can be selected by choice into the resulting bill of material. However, the choice applies to<u>all</u>
               <i>PartVersion</i>s of one<i>PartRelation.</i>For<i>Mandatory</i>it is semantically equivalent to have<u>one</u>
               <i>PartRelation</i>referencing<u>N</u>
               <i>PartVersions</i>or to have<u>N</u>
               <i>PartRelations</i>, each referencing<u>one</u>
               <i>PartVersion.</i>The<i>PartRelationType OneOfAll</i>defines, that exactly<u>one</u>of the referenced<i>PartVersions</i>shall be chosen for the resulting bill of material.</p>
            <p>If the same<i>PartVersion</i>is referenced multiple times, each reference counts as its own position.</p>
            <p>
               <u>
                  <b>Example:</b>
               </u>To express that a<i>PartVersion</i>shall be used at least three times and with a maximum of 6 times, three mandatory and three optional<i>PartRelations</i>to this<i>PartVersion</i>would be created.</p>
            <p>With these concepts, simple yes/no decisions can be represented. However, there cases where there are constraints between accessory parts (e.g. if part A, then choice of 2 x B or 1 x C). To express such logic in a static object model is not very feasible and inflexible. For such cases, the<i>relationType 'Custom'</i>was introduced. In this case, the relationships and constraints between all referenced<i>accessoryPart</i>can<i/>be expressed with some custom expression language in the<i>customRelationExpression</i>attribute. Even if it is custom, the expression shall only refer to elements that are contained in the<i>accessoryPart</i>relation and shall not influence other<i>PartRelations</i>of the same<i>GeneralTechnicalPartSpecification</i>.</p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="RelationType" type="vec:PartRelationType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the relation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CustomRelationExpression" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the relationship between the accessory parts in a proprietary expression language. This attribute shall only be used, if the<i>relationType = 'Custom'.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AccessoryPart" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the PartVersions that are related by the PartRelation.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion"
                                         relationship-type="Association"
                                         unique="false"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartStructureSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of a part structure. This specification defines the PartOccurrences that are in the bill of material of the described PartOrUsage. This is necessary, because it is possible, that for a definite description a Part more PartOccurrences are needed than the ones that are in the bill of material (see CompositionSpecification).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="part_structure"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="Content" type="vec:PartStructureContentType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of content of the bill of material (e.g. module, harness complete set)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DefinedAsEmpty" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>true</i>
                        <i>PartStructureSpecification</i>
                        <i>OccurrenceOrUsage</i>
                        <i>inBillOfMaterial</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InBillOfMaterial" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the PartOccurrences that are building the bill of material of a composite part.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartSubstitutionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>PartSubstitutionSpecification</i>defines a set of<i>PartVersions</i>that can be used alternatively, due to an incomplete specification for the 150% product description. For a concrete wiring harness only on valid<i>PartVersion</i>remains. The selection logic for valid<i>PartVersions</i>is not included in the VEC.</p>
            <p>A<i>PartSubstitutionSpecification</i>can be used for example tubes or ring terminals, where a part of the specification is known at design time, but not yet the complete specification. For tubes for example the tube diameter is not known at design time, since it depends on the bundle diameter of a specific configuration.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="AlternativePartVersions" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartUsage">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>PartUsages shall be used for the specification of the elements on an electrical system wiring plan and for the specification of the elements on a pure geometry description. PartUsages shall more than ever be used in cases where it is necessary to describe a certain instance of a part or part group, possibly together with certain technical properties, but where it is at the same time yet not possible to define a concrete part number.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="part_usage"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:OccurrenceOrUsage">
            <xs:sequence>
               <xs:element name="PrimaryPartUsageType" type="vec:PrimaryPartType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The primary type of the PartUsage defines the type of the described part (e.g. ConnectorHousing, Fixing, etc.) Since the VEC supports dual use parts (e.g. Fixing &amp; WireProtection) there is no direct connection between the primaryPartUsageType and the allowed specifications for the description of a PartUsage.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstanciatedUsage" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PartOrUsageRelatedSpecification"
                           type="xs:IDREFS"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the PartOrUsageRelatedSpecification(s) that describe the PartOrUsageRelatedSpecification. KBLFRM-399</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartOrUsageRelatedSpecification"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PartSubstitution" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartSubstitutionSpecification"
                                         relationship-type="Association"/>
                        <mt:deprecated reason="&#xA;Replaced by the common concept that the &lt;i&gt;PartSubstitutionSpecification&lt;/i&gt; is a &lt;i&gt;PartOrUsageRelatedSpecification&lt;/i&gt;."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartUsageSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of PartUsages.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="part_usage"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="PartUsage"
                           type="vec:PartUsage"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the PartUsages defined by the PartUsageSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartVersion">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>PartVersion</i>is unique identifier for a part in a company context. A part can be any components within a vehicle. The PartVersion is one of the three anchors for PDM information in the VEC. All technical information about a PartVersion is contained in one or more documents. These describing elements are normally referencing to the PartVersion.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ItemVersion">
            <xs:sequence>
               <xs:element name="PartNumber" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The partNumber is the major identifier of a PartVersion. The format is user defined and respectively company specific. For all VEC-documents a PartVersion-instance can be trusted to be identical if the combination of partNumber, partVersion and companyName is identical.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PartVersion" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The partVersion specifies the version index of a part (see also partNumber).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PrimaryPartType" type="vec:PrimaryPartType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The primary type of the part defines the type of the part (e.g.<i>ConnectorHousing</i>,<i>Fixing</i>, etc.) Since the VEC supports dual use parts (e.g.<i>Fixing</i>&amp;<i>WireProtection</i>) the primary part type is necessary to define which specification associated to part is the primary character of the part. Therefore, all primary part types correspond to a<i>PartOrUsageRelatedSpecification</i>and a<i>Role</i>(e.g.<i>ConnectorHousing</i>--&gt;<i>ConnectorHousingSpecification --&gt; ConnectorHousingRole</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IsPreferredPart" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Flags a part as "preferred" by the means of being a preferred part out of a group of parts with identical technical properties. The preferred part should be used, if the other properties of a couple of parts do not allow a distinct decision.</p>
                        <p>Even though the name suggests a Boolean value, this attribute has the type "string". The way in which preference is expressed varies greatly between the process and usually it is a multi-value flag and not just a yes/no answer.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PreferredUseCase"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Contains a part description from the point of view of the preferred use case. Defines the function for which the part was initially designed. (e.g. "Grommet for Hatch", "...passenger compartment"). This can be an important information for searching and selecting parts.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify additional identifiers for the PartVersion. This field must not be used for alternative PartNumbers. It is intended for identifiers others than PartNumbers, such as human readable identifiers printed on the part e.g. a number of fuse or a relay. Therefore, it does not have to be strictly unique.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Nature" type="vec:PartNature" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>nature</i>specifies how the<i>PartVersion</i>can be used in the different processes or the significance of the<i>PartVersion</i>in the process.</p>
                        <p>The<i>nature</i>of a<i>PartVersion</i>is normally inherent and does not change. If the<i>nature</i>the underlying part changes a new (other)<i>partNumber</i>is assigned to the part and respectively a new<i>PartVersion</i>is created.</p>
                        <p>It used to differentiate for example normal (productive) part numbers from preliminary (prototypic) part numbers.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PartNumberType" type="vec:PartNumberType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>PartVersion</i>
                        <i>PartNumberType</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Project" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the project that develops the PartVersion.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Project" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PartWithSubComponentsRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A PartWithSubComponentsRole defines the instance specific properties and relationships of a part with subcomponents. A PartWithSubComponents is a composite part like an Assembly, a Module, Harness.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="PartStructureSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartStructureSpecification</i>that is instantiated by this<i>PartWithSubComponentsRole</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartStructureSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubComponent" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the subcomponents that belong to this instance of a PartWithSubComponents.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Path">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Describes a path in the topology. A<i>Path</i>is a continuous way through a topology without interruptions, defined by an ordered list of<i>TopologySegments</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Segment" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies an ordered list of TopologySegments the routing goes through.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySegment"
                                         relationship-type="Association"
                                         unique="false"
                                         ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PathSegment">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A PathSegment is a part of the 2D presentation of a GeometrySegment2D. The complete presentation of a GeometrySegment2D is built from an ordered list of PathSegments. Each PathSegment has an ordered list of control points through which the path goes. If no curveRadius is specified the control points are connected by a direct straight line. If a curveRadius is specified, the PathSegment can be drawn by a segment of a circle which touches all control points and has the radius specified.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CurveRadius" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The radius of the curve which describes the appearance of the path segment.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ControlPoint" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">The ordered list of control points through which the PathSegment goes.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CartesianPoint2D"
                                         relationship-type="Association"
                                         unique="false"
                                         ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Permission">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Describes an act of acceptance together with information about the responsible person, department and company who directly provoked the approval level and status as described in the referenced Approval-instance. (see KBLFRM-229)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Permission" type="vec:TypeOfPermission">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of permission. Predefined values are: Seen, Checked, Released.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PermissionDate" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the date when the permission was stated.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Permitter" type="vec:Person" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person who was involved in the approval process giving a certain Permission.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Person">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies all relevant data of a person.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CompanyName" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the company the person belongs to.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Department" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the department the person belongs to.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstName" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person's first name.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LastName" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person's last name.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PhoneNumber"
                           type="xs:string"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person's phone number.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EmailAddress"
                           type="xs:string"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the person's email address.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies identifiers for the<i>Person</i>in different contexts.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinComponent">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A PinComponent describes a pin of an EEComponent. A PinComponent is part of a HousingComponent and is defined by three aspects.</p>
            <ol>
               <li>Its geometric position in the<i>HousingComponent</i>, which is defined by the<i>referencedCavity.</i>
               </li>
               <li>Its physical electrical properties, which are defined by the referenced<i>TerminalSpecification.</i>
               </li>
               <li>Its electrical behavior, which is defined configuration dependent by its<i>PinComponentBehaviour.</i>
               </li>
            </ol>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Identification of the PinComponent, which must be distinct for all PinComponent of a HousingComponents.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>PinComponent</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PinComponentType" type="vec:PinComponentType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of a<i>PinComponent</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentPort" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>ComponentPort</i>
                        <i>PinComponent</i>
                        <i>EEComponentSpecification.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentPort" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PinSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TerminalSpecification describing the electrical connectivity aspect of the PinComponent. (see KBLFRM-300)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedCavity" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Defines the cavity in the corresponding ConnectorHousingSpecification of the HousingComponent where the PinComponent is located. (see KBLFRM-300)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Behaviour"
                           type="vec:PinComponentBehavior"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the configuration dependent electrical behavior of the<i>PinComponent.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinComponentBehavior">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>PinComponentBehavior</i>specifies the electrical behavior of a<i>PinComponent.</i>Since the behavior of a pin is configuration dependent (e.g. the software deployed on an ECU) the<i>PinComponentBehavior</i>inherits from<i>ConfigurableElement.</i>Therefore, a<i>PinComponent</i>can specify multiple<i>PinComponentBehavior.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Identification of the PinComponentBehavior which identifies it from a user perspective, and which must be distinct for all PinComponentBehaviors of a PinComponent.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the element.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalDirection" type="vec:SignalDirection" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The direction of the signal on this pin.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PinType" type="vec:PinType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PinType</i>of the<i>PinComponent</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ApplianceType" type="vec:PinApplianceType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Classifies the appliance of a Pin in terms of the duration of the appliance (see PinApplianceType).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>PinComponentBehaviour</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Signal" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>Signal</i>associated with the pin in this behavior.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Signal" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CurrentInformation"
                           type="vec:PinCurrentInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the current information of the<i>PinComponent</i>in this<i>PinComponentBehavior</i>. Since the current values of a pin can be defined for different types and times it is possible to define multiple<i>PinCurrentInformations</i>for a<i>PinComponentBehavior</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OpticalInformation"
                           type="vec:PinOpticalInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the optical information of the pin, if it has the type optical.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VoltageInformation"
                           type="vec:PinVoltageInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the voltage information of the<i>PinComponent</i>in this<i>PinComponentBehavior</i>. Since the voltage values of a pin can be defined for different types and times it is possible to define multiple<i>PinVoltageInformations</i>for a<i>PinComponentBehavior</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinComponentReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A PinComponentReference represents the usage of a PinComponent in the context of a PartUsage or PartOccurrence. (KBLFRM-401)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the PinComponentReference. The identification is guaranteed to be unique within the HousingComponentReference.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PinComponent" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Points to the PinComponent referenced by the PinComponentReference.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PinComponent" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalRole" type="vec:TerminalRole" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TerminalRole of PinComponentReference. This is required to specify a Mating for EEComponents with other EEComponents or a Harness. (KBLFRM-401)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinCurrentInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of currents for a pin of an EEComponent. A current can be further specified by a duration. Attributes of the type PinCurrentInformation normally have the multiplicity [0..*]. This means that such an attribute can have PinCurrentInformation entries for different types and durations. It must not have multiple entries for the same type and duration.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:PinCurrentType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the current.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Current" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The current of the pin.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DeterminationType"
                           type="vec:ValueDetermination"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the determination type of the<i>PinCurrentInformation</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Timing"
                           type="vec:PinTiming"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the timing of the<i>PinCurrentInformation.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinOpticalInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the specification of optical information in a PinComponentBehavior.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Frequency" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The frequency of the optical signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Attenuation" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The attenuation of the optical pin at the defined frequency.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinTiming">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the timing for a<i>PinCurrentInformation</i>or a<i>PinVoltageInformation</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:PinTimingType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the timing.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Time" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the time value of the timing.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinVoltageInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of voltages for a pin of an<i>EEComponent</i>. A current can be further specified by a duration. Attributes of the type<i>PinVoltageInformation</i>normally have the multiplicity [0..*]. This means that such an attribute can have<i>PinVoltageInformation</i>entries for different types and durations. It must not have multiple entries for the same type and duration.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:PinVoltageType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the voltage.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Voltage" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The voltage of the pin.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DeterminationType"
                           type="vec:ValueDetermination"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the determination type of the<i>PinVoltageInformation</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Timing"
                           type="vec:PinTiming"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the timing of the<i>PinVoltageInformation</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinWireMappingPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>PinWireMappingPoint</i>creates a single variance free mapping between a<i>ContactPoint</i>and a<i>PinComponentReference</i>within a<i>PinWireMappingSpecification</i>(more details there)<i>.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pin_wire_mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="ContactPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ContactPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PinComponentReference" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PinComponentReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PinWireMappingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>PinWireMappingSpecification</i>can be used create<b>variance free</b>mappings between a wire (represented by the contact point) and the pin of an E/E component. This is a possibility to create a shortcut in the model between a wire and its connected E/E-component (e.g. a fuse) that might be only indirectly connected to a wire (e.g. via a fuse and relay carrier). This is a relevant information for e.g. the validation of fusing. See the Pin Wire Mapping Diagram for more details.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pin_wire_mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="PinWireMappingPoint"
                           type="vec:PinWireMappingPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PlaceableElementRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A PlaceableElementRole defines the instance specific properties and relationships of a PlaceableElement.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="PlaceableElementSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PlaceableElementSpecification</i>that is instanced by this<i>PlaceableElementRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlaceableElementSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MeasurementPointReference"
                           type="vec:MeasurementPointReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPointReference"
                           type="vec:PlacementPointReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PlaceableElementSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the general aspects of a component that are enabling the component to be placed in a topology. All components that should have the ability to be placed on a certain position in the topology must have a PlaceableElementSpecification.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placeable_element"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="ValidPlacementTypes" type="vec:PlacementType" maxOccurs="2">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>PlacementTypes</i>that are valid for this element.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MeasurementPoint"
                           type="vec:MeasurementPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>MeasurementPoints</i>of a<i>PlaceableElement</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint"
                           type="vec:PlacementPoint"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PlacementPoints</i>of a<i>PlaceableElementSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Placement" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A placement defines the placement of a PlaceableElementRole onto a Topology. For the definition of the place on the Topology, Locations are used. A Placement can either be a placement on discrete points (OnPointPlacement) or on an area of the topology (OnWayPlacement).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Location. The identification is guaranteed to be unique within the PlacementSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Type" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify additional type information of the placement.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IsOnTopOf" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies constraints on ordering of Placements. All referenced Placements must be below (nearer to the center of the Segment) this Placement. (see KBLFRM-171)</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Placement"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacedElement" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the PlaceableElementRoles placed by the Placement.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlaceableElementRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PlacementPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines a point on the component which can be placed explicitly in the topology (e.g. opening in a grommet, the entry point of a connector housing). If a PlacementPoint requires further specification for a certain component type (e.g. the entry point of a connector housing), this is done by an element specific for the component type, which related to the placement point.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placeable_element"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the PlacementPoint. The identification is guaranteed to be unique within a component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SegmentDiameter" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the valid segment diameter range for which this<i>PlacementPoint</i>is suitable.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SupplementaryParts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartRelations</i>that specify supplementary parts for this<i>PlacementPoint</i>, e.g. cable ties for attaching the component on the harness.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartRelation"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PlacementPointPosition">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the position of a PlacementPoint within the coordinate system of the component. PlacementPoints are points where a component is attached to a<i>TopologySegment.</i>Therefor a<i>PlacementPointPosition</i>can define a tangent vector (in the coordinate system of the component) for a segment that is connected to the<i>PlacementPoint.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="local_geometry"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:LocalPosition">
            <xs:sequence>
               <xs:element name="Tangent" type="vec:CartesianVector3D" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>A vector in the direction of the tangent on the<i>TopologySegment</i>that is attached to the<i>PlacementPoint</i>represented by this instance. The vector is defined in the coordinate system of the 3D model of the component.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PlacementPointReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>PlacementPointReference</i>is the instance of a<i>PlacementPoint</i>in the context of an<i>OccurrenceOrUsage</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the PlacementPointReference. The identification is guaranteed to be unique within the containing PlaceableElementRole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PlacementPoint</i>that is instanced by this<i>PlacementPointReference.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsedSupplementaryParts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PlacementSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of placements.<i>Placements</i>are used to connect<i>OccurrenceOrUsages</i>with a topology.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Dimension"
                           type="vec:Dimension"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Dimensions defined by the PlacementSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Placement"
                           type="vec:Placement"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Placements defined by the PlacementSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PluggableTerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A PluggableTerminalRole defines the instance specific properties and relationships of a pluggable terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PluggableTerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of pluggable terminals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalSpecification">
            <xs:sequence>
               <xs:element name="TerminalType" type="vec:PluggableTerminalType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the terminal. The type defines constraints about the numbers of wire and terminal receptions and their relations.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaximumInsertionForce"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The maximum force that may be applied to the terminal during the insertion process of the terminal into the housing</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ExtractionTool" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ResourceVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PotentialDistributorRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An<i>PotentialDistributorRole</i>defines the instance specific properties and relationships of a potential distributor.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PotentialDistributorSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the properties of a potential distributor (e.g. a joint connector).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="Screwable" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines if the<i>PotentialDistributor</i>can be screwed by itself to be fixed. This fixation is a non-electrical connection. If the<i>PotentialDistributor</i>can be fixated electrical (like a ring terminal) it shall have one<i>PinComponent</i>with a<i>RingTerminalSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the bolt for which the potential distributor is designed for.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltNominalSize"
                           type="vec:TerminalBoltNominalSize"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the size (diameter) of the bolt for which the potential distributor is designed for in a nominal way (e.g. "M8").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltType" type="vec:TerminalBoltType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the bolt to which the potential distributor is compatible.</p>
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="PowerConsumption">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the power consumption of an<i>EEComponent</i>. An<i>EEComponent</i>can have multiple different<i>PowerConsumptions</i>e.g. standby, maximum. An<i>EEComponent</i>can have multiple<i>PowerConsumptions</i>but must not have more than one<i>PowerConsumptions</i>of the same<i>type</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:PowerConsumptionType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The type of a<i>PowerConsumption</i>. This should be an enumeration of values defined in a conformance class.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Value" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the power consumption for this type of<i>PowerConsumption</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Project">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a certain vehicle project. Instances of this class are assumed to be constant. Thus, this is located directly under VEC-root element.</p>
            <p>A vehicle project can be some abstract or concrete node in the product structure, addressed by the car classification levels.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CarClassificationLevel2" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Provides a classification according to "CC8 Recommended Practices Specification and Configuration, Product Structures". Car classification is the identification of a set of similar cars to be offered to the market. Level 2 stands for "Technical information / platform" and reflects the level of a product class in a BoM system which represents a main technical product base (e.g. project, platform, engineering series etc.). In some cases, this level carries a complete BoM ("Maximum BoM") for a project, platform, engineering series etc. This level is in some cases called technical documentation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CarClassificationLevel3" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Provides a classification according to "CC8 Recommended Practices Specification and Configuration, Product Structures". Car classification is the identification of a set of similar cars to be offered to the market. Level 3 stands for "Configuration information / product family" where all variant control mechanisms are attached.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CarClassificationLevel4" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Provides a classification according to "CC8 Recommended Practices Specification and Configuration, Product Structures". Car classification is the identification of a set of similar cars to be offered to the market. Level 4 stands for "Furthest pre-configured abstract product class" and represents the furthest configured class of a product, which is not yet a real product. E.g. this could be a complete vehicle, engine, gearbox etc. which has not been evaluated against customer special choices or an abstract vehicle, engine, gearbox etc. which could become a real one after the associated BoM is evaluated. The purpose of this level of a product class instance is in any case to reflect that level of product class of a BoM system which leads to the individual BoM for a single product.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the development order number (car or engine project)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional information about the item.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ProtectionMaterialLength">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the material length of a<i>WireProtectionRole</i>. A<i>WireProtectionRole</i>can have multiple lengths of different types but must not have more than one length of the same type.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="LengthValue" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValueDetermination" type="vec:ValueDetermination">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="QuantityKind">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>QuantityKind</i>is any observable property that can be measured and quantified numerically. Familiar examples include physical properties such as length, mass, time, force, energy, power, electric charge, etc. A quantity (not represented as class in the VEC) would always be associated with the context of measurement (i.e. the thing measured, the measured value, the accuracy of measurement, etc.) whereas the underlying<i>QuantityKind</i>is independent of any particular measurement.  </p>
            <p>A<i>QuantityKind</i>provides an identifier and an optional human-readable name and is associated with a<i>Unit</i>that specifies how magnitudes of this<i>QuantityKind</i>are expressed within this VEC.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>QuantityKind</i>. The identification is guaranteed to be unique within a VEC<i>.</i>Furthermore, the same<i>QuantityKind</i>shall have the same<i>Identification</i>for different VECs in the same a data exchange context. For example, if using the identification<code>trippingTime</code>for the time-<i>Quantity</i>of a<i>FuseCharacteristic</i>all appearances of this<i>QuantityKind</i>shall have the same<i>Identification</i>, when created by the same publisher.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Name"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>QuantityKind</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Unit" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>Unit</i>
                        <i>QuantityKind</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Unit" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ReferenceSurfaceDefinition">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="HasSurfaces" type="xs:boolean">
            <xs:annotation>
               <xs:documentation xml:lang="en"/>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="DimensionX" type="vec:NumericalValue" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en"/>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="DimensionY" type="vec:NumericalValue" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en"/>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="RelayRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>An RelayRole defines the instance specific properties and relationships of a relay.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RelaySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification of the electrological aspects of a relay.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:EEComponentSpecification">
            <xs:sequence>
               <xs:element name="IMax" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the maximum current allowed for the relais.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelaisType" type="vec:RelaisType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The type of the relay (switching behavior). This is an OpenEnumeration, for values see<i>RelaisType.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LowNoise" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines if the relais switch with low noise / silently or not.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ApplianceType" type="vec:RelaisApplianceType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the appliance type of a relais.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RequirementsConformanceSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>RequirementsConformanceSpecification</i>can be used to express the conformance of a<i>PartVersion</i>(or a group of<i>PartVersions</i>). The<i>PartVersions</i>to which this<i>RequirementsConformanceSpecification</i>applies are expressed through the<i>describedPart</i>reference.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="requirements_conformance"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="ConformanceStatement"
                           type="vec:RequirementsConformanceStatement"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RequirementsConformanceStatement">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>RequirementsConformanceStatement</i>states that the<i>PartVersions</i>referenced by the parent<i>RequirementsConformanceSpecification</i>satisfy or do not satisfy the requirements defined in the associated<i>DocumentVersion</i>(via the<i>requirementsSpecification</i>association)<i>.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="requirements_conformance"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Satisfies" type="xs:boolean">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines if the<i>describedParts</i>satisfy (satisfy = true) or explicitly fail (satisfy = false) to conform with the<i>requirementsSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>A free text description / additional information / comment for the<i>RequirementsConformanceStatement.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DocumentVersion" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>DocumentVersion</i>that contains the requirements to which a conformance statement shall be expressed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:DocumentVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ResourceVersion">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ResourceVersion</i>is unique identifier for a resource in a company context. Resources are elements used to produce, handle or service a harness, e.g. tools or machines, which do not end up in the product (see<i>PartVersion</i>). The<i>ResourceVersion</i>is one of the three anchors for PDM information in the VEC.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ItemVersion">
            <xs:sequence>
               <xs:element name="ResourceNumber" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>ResourceNumber</i>is the major identifier of a<i>ResourceVersion</i>. The format is user defined and respectively company specific. For all VEC-documents a<i>ResourceVersion-instance</i>can be trusted to be identical if the combination of<i>ResourceNumber</i>,<i>ResourceVersion</i>and<i>CompanyName</i>is identical.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ResourceVersion" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>ResourceVersion</i>specifies the version index of a resource (see also<i>ResourceNumber</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PrimaryResourceType" type="vec:PrimaryResourceType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The primary type of the resource defines the type of the resource. In a future version of the VEC the<i>PrimaryResourceType</i>might correspond to<i>Specifications</i>describing the<i>ResourceVersion</i>(see<i>PrimaryPartType</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Reusage">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>Reusage</i>
            <i>template</i>
            <i>usage</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="reusage"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Template" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>template</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ExtendableElement" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Usage" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>usage</i>
                        <i>template.</i>
                        <i>usage</i>
                        <i>template</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ExtendableElement" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ReusageSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>ReusageSpecification</i>
            <i>template</i>
            <i>usage</i>
            <i>Reusage</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="reusage"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Reusage"
                           type="vec:Reusage"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>Reusages</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RingTerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A RingTerminalRole defines the instance specific properties and relationships of a ring terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RingTerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of ring terminals. These are the counterparts to bolt terminals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalSpecification">
            <xs:sequence>
               <xs:element name="BoltDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the bolt for which the ring terminal is designed for in a numerical way.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltNominalSize"
                           type="vec:TerminalBoltNominalSize"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the size (diameter) of the bolt for which the ring terminal is designed for in a nominal way (e.g. "M8").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Thickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the thickness of the contact surface of the ring terminal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BoltType" type="vec:TerminalBoltType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the bolt to which the ring terminal is compatible.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OutsideDimension" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the diameter of the circle around the center of the bolt which passes through the farthest outside point of the contact surface of the ring terminal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TorsionProtection" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the ring terminal is torsion protected or not. (see KBLFRM-311)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NutIntegrated" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines if the ring terminal has nut integrated for the fixation on the corresponding bolt terminal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RobustnessProperties">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of robustness properties. Robustness of a component is specified as a level of robustness against a specific influence (e.g. oil, water, UV-light). The influence is specified by the<i>class</i>and the level is specified by the<i>classKey</i>. Valid robustness classes and keys are specified by the reference system. Attributes of the type RobustnessProperties normally have the multiplicity [0..*]. This means that such an attribute can have RobustnessProperties entries for different<i>classReferenceSystems</i>and<i>classes</i>.</p>
            <p>Constraints for the multiplicity of entries for the same<i>class</i>and<i>classReferenceSystem</i>are defined by the reference system. It most cases an element can have only one single value for a<i>class</i>and<i>classReferenceSystem.</i>This applies for example to cumulative ratings where a "higher" rating includes all "lower" ratings. However, there are reference systems where this is not true, for example in the "ISO 20653 - Liquid Ingress Protection" a component rated as IPX7 is not automatically rated IPX5 and vice versa. In these case, multiple values (<i>classKey</i>) for a single<i>c</i>
               <i>lass</i>and<i>classReferenceSystem</i>are allowed.</p>
            <p>Note: Most reference systems just define one class or at least some of the possible classes, but not all (e.g. the ISO 20653 defines "Solid Particle Protection" and "Liquid Ingress Protection", whereas the ISO 6722 defines "Ambient Temperature" among others).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Class" type="vec:RobustnessClass">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the identifier of a robustness class defined by the robustness class reference system. Robustness classes are for example: oil, petrol, UV, water. Specific known and used classes are defined in an open enumeration.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ClassKey" type="xs:string" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies a key for the robustness level defined in the specified robustness class (e.g. A, B, C). The classKey is the key as specified in the reference system and no additional syntax or prefixes, e.g. for ISO 20653 (Ingress Protection) it is<i>"9K"</i>and not<i>"IPX9K".</i>
                  </p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ClassReferenceSystem" type="vec:RobustnessClassReferenceSystem">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The identification of the robustness class reference system, which is defining possible values and the semantic of robustness classes and robustness class keys. Specific known and used reference systems are defined in an open enumeration.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="HasRobustness" type="xs:boolean">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies if the described element has a robustness in the specified robustness class. (see KBLFRM-260)</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Description"
                     type="vec:LocalizedString"
                     minOccurs="0"
                     maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>On optional human readable description of the robustness (e.g. the name).</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="Role" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Role is the corresponding mechanism for OccurrenceOrUsages to the PartOrUsageRelatedSpecifcations for PartVersions or PartUsages. The PartOrUsageRelatedSpecifcations are describing a certain aspect of the master data of a part. A Role describes the corresponding properties and relationships for instances of a part (e.g. the usage specific properties of a wire occurrence like the length or the contacting).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Role. The identification is guaranteed to be unique within the OccurrenceOrUsage.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RoutableElement" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A RoutableElement is an element that can be routed, which mean it is possible to assign it to a Path in the Topology.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Routing">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A Routing is the assignment of a RoutableElement (Connection or WireElementReference) to a path in the topology.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="routing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Routing. The identification is guaranteed to be unique within the RoutingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SpecialRoutedComment"
                           type="vec:LocalizedString"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Allows the specification of an explanation why this routing has been routed in a special way.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SpecialRouted" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies that routing has been created in a special way. This means it has not been calculated in the standard way, because for some reason the result of the standard calculation has been inconvenient.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MandatorySegment" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies some constraints for the routing. If the path of the routing is recalculated the referenced segments must be visited.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySegment"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RoutedElement" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Element that is routed.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:RoutableElement" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Path" type="vec:Path">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies a Path on the topology that is used for the routing.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="RoutingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of Routings.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="routing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Routing"
                           type="vec:Routing"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Routings described by the RoutingSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SIUnit">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The SIUnit class can define quantities in the terms of the SI-Unit-System by specifying the corresponding SI prefix (optional) and a SI unit name. The usage of SI units must be the preferred way of expressing units, since these units can be easily translated into other SI units.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Unit">
            <xs:sequence>
               <xs:element name="SiUnitName" type="vec:SiUnitName">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of SI unit (e.g. metre, second,...)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SiPrefix" type="vec:SiPrefix" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the prefix of the SI unit (e.g. milli, centi, micro,...)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SealedCavitiesAssignment">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>SealedCavitiesAssignment</i>groups the cavities of ONE connector that are sealed by a MultiCavityPlug. If a MultiCavityPlug fits into more than one connector, than there are as many<i>SealedCavitiesAssignments</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:deprecated reason="see MultiCavityPlugSpecification" since="2.2.0"/>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="SealedCavities" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the Cavities that are sealed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SealingPin">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>CableSealEntry.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Provides an identifier for the<i>SealingPin</i>. The<i>Identification</i>shall be unique within a<i>CableSealPlugSpecification.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OutsideDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the outside diameter in the relaxed state for the<i>SealingPin</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Position" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>Cavity</i>
                        <i>CavityLayout</i>
                        <i>CableSealPlugSpecification</i>
                        <i>SealingPin</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SealingPinReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>SealingPinReference</i>
            <i>CableSealEntry.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Provides an identifier for the<i>SealingPinReference</i>. The<i>Identification</i>shall be unique within a<i>CableSealPlugRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PluggedEntry" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CableSealEntryReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SealingPin" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SealingPin" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SegmentConnectionPoint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a point where the connector can be attached to the topology (sometimes called bundle position point or insertion point).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the SegmentConnectionPoint. The identification is guaranteed to be unique within the ConnectorHousingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PlacementPoint</i>that represents this<i>SegmentConnectionPoint</i>in a<i>PlaceableElementSpecification.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReachableCavities" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>Cavities</i>that are reachable with wires through this<i>SegmentConnectionPoint.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Cavity"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ModularSlotAddOns"
                           type="vec:ModularSlotAddOn"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityAddOns"
                           type="vec:CavityAddOn"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SegmentConnectionPointHC">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a point where the<i>HousingComponent</i>can be attached to the topology [if required] (sometimes called bundle position point or insertion point).</p>
            <p> </p>
            <p>
               <i>Note: The suffix HC is justified by the fact that class names must be unique within the model and the name SegmentConnectionPoint is already used within the ConnectorHousingSpecification. However, the represented semantics of the two connection points are so similar that the use of actually different names for both would rather have led to confusion. So SegmentConnectionPointHC actually is shorthand for "SegmentConnectionPoint within HousingComponent".</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireAddOn" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectorSegmentConnectionPoint"
                           type="xs:IDREF"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>SegementConnectionPoint</i>
                        <i>ConnectorHousingSpecification</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SegmentConnectionPoint"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PlacementPoint</i>that represents this<i>SegmentConnectionPoint</i>in a<i>PlaceableElementSpecification.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SegmentCrossSectionArea">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the cross-section area of a segment. For the data exchange the cross-section area is used and not the diameter, because the diameter is only a valid measure for circular segments. For circular segments, the diameter and the cross-section area can be translated into each other without the loss of information. Attributes of the type SegmentCrossSectionArea normally have the multiplicity [0..*]. This means that such an attribute can have SegmentCrossSectionArea entries for different crossSectionAreaTypes and valueDeterminations. It must not have multiple entries with the same crossSectionAreaType and valueDetermination.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Area" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the value of the cross-section area of the segment.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValueDetermination" type="vec:ValueDetermination">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the method for determination of the value.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CrossSectionAreaType"
                           type="vec:SegmentCrossSectionAreaType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the cross-section area of the segment. Different types are for example needed to differentiate between the designed space of a segment and the required space (e.g. calculated from the wires going through the segment).</p>
                        <p>Attribute is defined as an<i>OpenEnumeration.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SegmentLength">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the length of a<i>TopologySegment</i>. The length of a<i>TopologySegment</i>is defined as the length of the centerline of the segment.</p>
            <p>Attributes of the type SegmentLength normally have the multiplicity [0..*]. This means that such an attribute can have SegmentLength-entries for different classifications. It must not have multiple entries with the same classification.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Length" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the TopologySegment.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Classification" type="vec:LengthClassification">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the classification of the segment length.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SegmentLocation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a point on a TopologySegment as a Location.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Location">
            <xs:sequence>
               <xs:element name="Offset" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the offset / distance of the Location to the anchor of the location.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Anchor" type="vec:AnchorType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the location on the<i>TopologySegment</i>is defined as on offset relative to the startNode of the TopologySegment or the endNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedSegment" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>TopologySegment</i>on which the Location is located.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySegment" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SegmentMapping">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the relationship of an inner segment to its outer topology. The relationship to the outer topology is expressed with a<i>Path.</i>
            </p>
            <p>
               <i> </i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="InnerSegment" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySegment" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MappedPosition" type="vec:Path">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SheetOrChapter">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Documents can be structured into sheets or chapters. Since it is possible, that one document describes a couple of parts it is necessary to be able to specify which sheet, or chapter contains the description of which part. (see KBLFRM-308)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of the sheet or chapter within the document. This value must be distinct within the context of a document.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SheetNumber" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The sheetNumber is the major identifier of a SheetOrChapter. The format is user defined and respectively company specific. This field has to be used if a SheetOrChapter has its own "DocumentNumber".</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SheetVersion" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The sheetVersion specifies the version index of a sheet (see also sheetNumber)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for additional, human readable information about the SheetOrChapter.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SheetFormat" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the format of the SheetOrChapter. This is an alias for a specific sheet / paper size (e.g. DINA4). If both attributes are defined the<i>SheetSize</i>takes precedence.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SheetSize" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedPart" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">The association is an informative link which PartVersions are described by the SheetOrChapter.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ChangeDescription"
                           type="vec:ChangeDescription"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the change history of the SheetOrChapter.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Specification"
                           type="vec:Specification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Specifications contained in the SheetOrChapter. All structured, technical information in the VEC is described by such Specifications.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ShieldSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the properties of a shield.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConductorSpecification">
            <xs:sequence>
               <xs:element name="OpticalTissueDensity" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the optical tissue density of the strands of a shield. This is defined as a value in percentage.</p>
                        <p>
                           <i>Should only be used for ShieldSpecifications with type=Braided.</i>
                        </p>
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                        <mt:deprecated reason="Attribute had incorrectly the data NumericalValue, a value with unit, which is not correct for a value representing a ratio. Use OpticalCoverage instead."
                                       since="2.1.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OpticalCoverage" type="xs:double" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the optical coverage of the strands of a shield. This value is defined as the ratio of overall area to the area covered by the shield. A value of 0.0 would mean no cover at all, a value of 1.0 means a gapless covering by the shield.</p>
                        <p>
                           <i> </i>
                        </p>
                        <p>
                           <i>Should only be used for ShieldSpecifications with type=Braided.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WindingType" type="vec:FoilShieldWindingType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of winding of the shield.</p>
                        <p>
                           <i>Should only be used for ShieldSpecifications with type=Foil.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ShrinkableTubeRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specific<i>WireProtectionRole</i>for instances of<i>ShrinkableTubeSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TubeRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ShrinkableTubeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification of tubes that are shrinkable.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TubeSpecification">
            <xs:sequence>
               <xs:element name="ShrinkingFactor" type="xs:double" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the factor of shrinking for the tube.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaximumLongitudinalShrinkage"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the shrinkage in longitudinal direction.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Resin"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the material of the resin usable for this shrinkable tube.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WaterAbsorbtion" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the water absorption of the shrinkable tube specification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Signal">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a signal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Signal. The identification is guaranteed to be unique within the SignalSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalName" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Name of the Signal, which is not guaranteed to be unique and is normally function oriented.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ClampName" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the clamp e.g. KL15, KL30, KL31.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the<i>Signal</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>A human readable description of the signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalInformationType"
                           type="vec:SignalInformationType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the information type of the signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalTransmissionMediumType"
                           type="vec:SignalTransmissionMediumType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the transmission medium for the signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalForm" type="vec:SignalForm" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the form of the signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalCurve" type="vec:SignalCurve" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the curve of the signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalType" type="vec:SignalType" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalSubType" type="vec:SignalSubType" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CurrentType" type="vec:CurrentType" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NominalVoltage" type="vec:NominalVoltage" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DataRate" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the data rate of the signal. This applies only to signals with<i>signalType = 'information</i>' and<i>signalInformationType = 'digital'</i>. For the numerical value, an appropriate IECUnit combination shall be used (e.g. GBit / Second).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NetType" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:NetType" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RecommendedConductorSpecification"
                           type="xs:IDREF"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines a recommended Specification for the cores that implement this signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConductorSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RecommendedInsulationSpecification"
                           type="xs:IDREF"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines a recommended Specification for the insulation (e.g. the color) that implements this signal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:InsulationSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireTupleRequirements" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines a requirement for wire tuples.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireTupleSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SignalGraph">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>SignalGraph</i>
            <i>SignalGraph</i>
            <i/>
            <i>u</i>
            <i>v</i>
            <i>v</i>
            <i>u</i>
            <i>u</i>
            <i>v</i>
            <i>SignalGraphNodes</i>
            <i>SignalGraph.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal_graph"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>SignalGraph</i>. The<i>identification</i>is guaranteed to be unique within the<i>SignalGraphSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines additional identifiers for the<i>SignalGraph</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>SignalGraph</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Edge"
                           type="vec:SignalGraphEdge"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>SignalGraphEdges</i>in the<i>SignalGraph.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Node"
                           type="vec:SignalGraphNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>SignalGraphNodes</i>in the<i>SignalGraph.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SignalGraphEdge">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>SignalGraphEdge</i>
            <i>SignalGraphNodes</i>
            <i>"fromNode"</i>
            <i>"toNode"</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal_graph"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>SignalGraphEdge</i>. The<i>identification</i>is guaranteed to be unique within the<i>SignalGraph</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FromNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SignalGraphNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SignalGraphNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SignalGraphNode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>SignalGraphNode</i>
            <i>SignalGraph</i>
            <i>representedElement</i>
            <i>SignalGraph</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal_graph"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>SignalGraphNode</i>. The<i>identification</i>is guaranteed to be unique within the<i>SignalGraph</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RepresentedElement" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>ConfigurableElement</i>that is represented by a<i>SignalGraphNode.</i>This is expected to be some physical element of the vehicle network, which participates in signal transmission. In many cases this will be an<i>OccurrenceOrUsage</i>, however in some cases sub elements of the<i>OccurrenceOrUsage</i>might be relevant, e.g. a<i>PinComponentReference</i>or a<i>WireElementReference.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConfigurableElement" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SignalGraphRelation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>SignalGraphRelation</i>
            <i>SignalGraphs</i>
            <i>from" --&gt; "to"</i>
            <i>type.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal_graph"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>SignalGraphRelation</i>. The<i>identification</i>is guaranteed to be unique within the<i>SignalGraphSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines additional identifiers for the<i>SignalGraphRelation</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>SignalGraphRelation</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Type" type="vec:SignalGraphRelationType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>"from"-</i>
                        <i>"to"-SignalGraph.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="From" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SignalGraph" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="To" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:SignalGraph" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SignalGraphSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification to define a list of<i>SignalGraphs</i>in a vehicle network.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal_graph"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="SignalGraph"
                           type="vec:SignalGraph"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SignalGraphRelation"
                           type="vec:SignalGraphRelation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SignalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of a list of valid signals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Signal"
                           type="vec:Signal"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the signals.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SimpleValueProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property with a simple value (string).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the<i>CustomProperty.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Size">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the size of an element by width &amp; height. Per definition is width &gt;= height.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Width" type="vec:NumericalValue">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The width of the element.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Height" type="vec:NumericalValue">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The height of the element.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="Slot">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>Slot</i>is a specific type of<i>AbstractSlot</i>that represents a group of cavities<b>integrated directly</b>into a connector housing. The design of a slot is described by a<i>SlotSpecification</i>.</p>
            <p> </p>
            <p>Slots serve two primary purposes:</p>
            <ol>
               <li>
                  <b>Cavity grouping within a housing:</b>Each slot contains or groups cavities with specific properties and geometric placement.</li>
               <li>
                  <b>Definition of mating-side structure</b>: A slot represents a logical and physical mating region of a connector. This makes it a fundamental unit for modular mating. For example, a connector with three slots can be mated with another connector that has only one slot, occupying just one slot on the multi-slot connector. This supports asymmetric or partial mating scenarios.</li>
            </ol>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AbstractSlot">
            <xs:sequence>
               <xs:element name="ColorInformation"
                           type="vec:Color"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the color of the slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SealingType" type="vec:SlotSealingType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the sealing of the slot, if sealed. The values are defined in an<i>OpenEnumeration</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PermittedTerminalSupplierCompanyNames"
                           type="xs:string"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If this attribute is defined, it is only permitted to use terminals of one of the listed terminal suppliers.</p>
                        <p>The used company name shall be same as the one used as<i>PartVersion.companyName</i>for part numbers of this supplier.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SupplementaryParts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartRelations</i>that specify supplementary parts for this slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartRelation"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Cavity" type="vec:Cavity" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the Cavities forming the Slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SlotCoupling">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>SlotCoupling</i>defines the mapping between two slots of the<i>ConnectorHousingRoles</i>associated with the<i>CouplingPoint</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="coupling"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstSlot" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:AbstractSlotReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondSlot" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:AbstractSlotReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityCoupling"
                           type="vec:CavityCoupling"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SlotLayout">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>For regularly laid out slots the slot layout describes the positions of the cavities</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="GridX" type="vec:NumericalValue" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The horizontal distance between the center points of two cavities.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="GridY" type="vec:NumericalValue" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The vertical distance between the center points of two cavities.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="RowCount" type="xs:integer" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The number of cavity rows of the slot.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="SlotMapping">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the mapping of two slots contained PartVersion A &amp; B of the containing Mapping-object.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="mapping"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="IdentificationA" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of the Slot on side A</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IdentificationB" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of the Slot on side B</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LayoutIdentificationA" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of a ModularSlotLayout, if the Slot on side A refers to a<i>ModularSlot.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LayoutIdentificationB" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of a ModularSlotLayout, if the Slot on side B refers to a<i>ModularSlot.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityMapping"
                           type="vec:CavityMapping"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SlotReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>SlotReference</i>represents the usage of a<i>Slot</i>in the context of PartUsage or PartOccurrence.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:AbstractSlotReference">
            <xs:sequence>
               <xs:element name="TpaState"
                           type="vec:TerminalPositionAssuranceState"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The state of the terminal position assurance (TPA, syn. secondary locking), if applicable. This is the state of the slot in the integration level described by the model to which the<i>SlotReference</i>belongs. For example, if the<i>SlotReference</i>is part of a harness specification from the OEM to the Tier1, it is the state the OEM expects for the delivered product, not the final state in the vehicle.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsedSupplementaryParts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>This is the relationship of the supplementary parts actually used in this<i>SlotReference.</i>This is the actual selection of the potential supplementary parts defined in the corresponding<i>Slot.supplementaryParts</i>association.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:OccurrenceOrUsage"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CavityReference"
                           type="vec:CavityReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the CavityReferences used in the SlotReference.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SlotSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of slots.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="EmvProtectionRequired" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies whether the slot needs EMV protection.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Gender" type="vec:SlotGender" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the gender of the slot. Valid values are defined in an open enumeration.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LayoutType" type="vec:SlotLayoutType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the layout of the slot from a mechanical / geometrical point of view.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondaryLocking" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies whether the slot supports "secondary locking", which refers to a locking or a lock reinforcement of the terminals in the connector, in addition to the primary locking of terminal itself (e.g. lances on the terminal). This is also often referred to as TPA (Terminal Position Assurance).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondaryLockingType"
                           type="vec:SecondaryLockingType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>secondaryLocking=true)</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NumberOfCavities" type="xs:integer">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The possible number of cavities in the layout defined by the SlotSpecification. This includes all cavities in the layout. The actual Slot can define specific cavities in the layout as "not available".</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SlotLayout" type="vec:SlotLayout" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the layout associated with this slot.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SoundDampingClass">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of a sound damping class. The sound damping class of a component is specified as a level of sound damping. The level is specified by the<i>classKey</i>. Valid keys are specified by the<i>referenceSystem</i>. Attributes of the type<i>SoundDampingClass</i>normally have the multiplicity [0..*]. This means that such an attribute can have<i>SoundDampingClass</i>entries for different<i>referenceSystems</i>. It must not have multiple entries for the same<i>referenceSystem</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="ClassKey" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies a key for the level defined in the sound damping class (e.g. A, B, C).</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ReferenceSystem" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The identification of the sound damping class reference system, which is defining possible values and the semantic of sound damping keys.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="SpecificRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>SpecificRole</i>is the possibility to define instance specific properties with custom properties (see<i>ExtendableElement</i>). This is necessary, if the part is described by custom properties of a<i>PartOrUsageRelatedSpecification</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="SpecificRoleType" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type for role.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Specification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartOrUsageRelatedSpecification</i>that is instantiated by this<i>SpecificRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartOrUsageRelatedSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Specification" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract super-class for all specifications. Every technical information exchanged with the VEC is contained in the different specializations of a specification.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the specification. The identification is guaranteed to be unique within the document containing the specification. For all VEC-documents a Specification-instance can be trusted to be identical if the DocumentVersion-instance is the same (see DocumentVersion) and the identification of the Specification is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the specification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SpliceTerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A SpliceTerminalRole defines the instance specific properties and relationships of a splice terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalRole">
            <xs:sequence>
               <xs:element name="SpliceType" type="vec:SpliceType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of splice (inline, end).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationState" type="vec:InsulationState" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the insulation state of the splice, in other words is electrically insulated or not.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SpliceTerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of splice terminals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TerminalSpecification"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="StripeRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specific<i>WireProtectionRole</i>for instances of<i>StripeSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionRole"/>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="StripeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a stripe which has fixed length and width. A stripe is a textile, foam or similar piece with fixed length &amp; width that is wrapped around the harness.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionSpecification">
            <xs:sequence>
               <xs:element name="Length" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the stripe.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SegmentDiameter" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the valid segment diameter range for which the stripe can be used.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Width" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the width of the stripe.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Thickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the thickness of the stripe (adhesive + backing).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="SwitchingState">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>SwitchingState</i>defines a certain static state of an<i>EEComponent</i>. Under which conditions or when such a state applies, should be described in an external description model.</p>
            <p>A<i>SwitchingState</i>references a collection of<i>InternalComponentConnections</i>, with the semantic that these connections exist (and only these connections) when the switching state is active.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Identification of the SwitchingState, which must be distinct for all SwitchingStates of an EEComponent.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SwitchedConnections" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>InternalComponentConnections</i>that are switched by this<i>SwitchingState.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:InternalComponentConnection"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SwitchedLogicalConnections" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>Connections</i>in the internal connectivity of the<i>EEComponentSpecification,</i>that are switched by this<i>SwitchingState.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Connection"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TapeRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specific<i>WireProtectionRole</i>for instances of<i>TapeSpecification.</i>This<i>Role</i>is used for all kinds of taping and the<i>WindingType</i>defines the actual type of execution. Not all attributes in the<i>TapeRole</i>are relevant for all<i>WingingTypes</i>. Generating processes and systems are responsible to fill only attributes relevant for the selected<i>WindingType</i>.</p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionRole">
            <xs:sequence>
               <xs:element name="TapeOverlap" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the amount of overlap two rounds of taping around a segment have, as an absolute value. A negative value means, that there is a gap between two rounds.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TapeOverlapRelative" type="xs:double" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the amount of overlap two rounds of taping around a segment have, as a relative value. A negative value means, that there is a gap between two rounds. Values are defined as a factor, not as a percentage. Values can be between 1.0 and negative "infinity".</p>
                        <p>
                           <b>Examples:</b>An overlap of 1.0 defines that the second round is placed exactly on top of the first one. An overlap of 0.5 specifies that one half of the second round is on top of the first round (50% overlapping), a value of 0 specifies, that there is no overlap, but also no gap. A value of -2.0 specifies that there is a gap twice the width of the tape between two rounds.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TapingDirection" type="vec:TapingDirection" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the direction of the taping.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Gradient" type="vec:ValueWithUnit" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the gradient of the taping.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WindingType" type="vec:WindingType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the tape's winding (see<i>WindingType</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WindingFirmness" type="vec:WindingFirmness" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the firmness of the tape's winding (see WindingFirmness).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NumberOfTurns" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>Spot</i>
                        <i>Cross</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TapeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of tapes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionSpecification">
            <xs:sequence>
               <xs:element name="Backing"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the material of carrier of the tape, on which the adhesive material is applied.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Adhesive"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the adhesive material of the tape.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Width" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the width of the tape.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Thickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the thickness of the tape (adhesive + backing).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CoilCoreDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the inner diameter of the coil on which the tape is delivered.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TemperatureInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid temperature ranges for a general technical part. A part can have different valid temperature ranges in different scenarios e.g. operating temperature, storage temperature, processing temperature, environment temperature. A class can own multiple TemperatureInformations but must not have more than one TemperatureInformations of the same temperatureType.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="TemperatureRange" type="vec:ValueRange" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the allowed temperature range for this type of temperature.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="TemperatureType" type="vec:TemperatureType" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The type of a TemperatureInformation.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="TerminalCurrentInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of valid current ranges for a terminal. A current range is always defined for a<i>coreCrossSectionArea</i>and a<i>nominalVoltage</i>. Attributes of the type<i>TerminalCurrentInformation</i>normally have the multiplicity<i>[0..*].</i>This means that such an attribute can have<i>TerminalCurrentInformation</i>entries for different<i>coreCrossSectionAreas</i>,<i>nominalVoltages</i>,<i>environmentTemperature</i>and mating terminals. It must not have multiple entries for the same values.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="CurrentRange" type="vec:ValueRange">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the valid current range for the terminal. It is defined as a value range, because there are terminals where minimum current is needed to avoid corrosion.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="NominalVoltage" type="vec:NumericalValue" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the nominalVoltage for which the CurrentRangeInformation is valid.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="CoreCrossSectionArea" type="vec:NumericalValue">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the coreCrossSectionArea for which the CurrentRangeInformation is valid. The coreCrossSectionArea is a relevant information, because the thermal absorption of the core depends on the cross-section area and thus is an influence factor for the valid current range.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="EnvironmentTemperature"
                     type="vec:NumericalValue"
                     minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The environment temperature for which this maximum current value is applicable.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ValidForMatingTerminal" type="xs:IDREFS" minOccurs="0">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <i>PartVersions</i>
                  <i>TerminalCurrentInformation</i>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship element-type="vec:PartVersion"
                                   relationship-type="Association"
                                   unique="true"
                                   ordered="false"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="TerminalDistanceInformation">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Allows the definition of valid minimum distances for a terminal. A minimum distance is always a<i>NumericalValue</i>defined for a<i>TerminalDistanceType</i>. Attributes of the type<i>TerminalDistanceInformation</i>normally have the multiplicity [0..*]. This means that such an attribute can have<i>TerminalDistanceInformation</i>entries for different<i>TerminalDistanceType</i>. It must not have multiple entries for the same<i>TerminalDistanceType</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Type" type="vec:TerminalDistanceType">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <i>TerminalDistanceInformation.</i>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="Value" type="vec:NumericalValue">
            <xs:annotation>
               <xs:documentation xml:lang="en"/>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="TerminalPairing">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>TerminalPairing</i>is a standard reference setup of exactly two terminals and a defined length of a core contacted to both terminals. The<i>TerminalPairing</i>defines physical properties that apply to this combination (e.g.<i>contactResistance)</i>. Other values might be independent from a specific conductor (e.g.<i>matingForce</i>). Therefore, the<i>referencedCoreSpecification</i>is optional.</p>
            <p> </p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="terminal_pairing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="ContactResistance" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the resistance of the terminal pairing.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MatingForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the joining force of the two terminals.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UnmatingForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the force required to unmate the two terminals.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MatingCycles" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FirstTerminal" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the first terminal of the TerminalPairing.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedCoreSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the CoreSpecification that is used on both sides of the ContactSystem.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConductorSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondTerminal" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the second terminal of the TerminalPairing (first and second does not imply any specific order).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalPairingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of TerminalPairings.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="terminal_pairing"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="TerminalPairing"
                           type="vec:TerminalPairing"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the TerminalPairings described by this TerminalPairingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalProtectionRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>TerminalProtectionRole</i>defines the instance specific properties and relationships of a<i>TerminalProtection</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="TerminalProtectionSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalProtectionSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalProtectionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>TerminalProtection</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="InsideLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsideDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OutsideLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OutsideDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WallThickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>(outsideDiameter - insideDiameter) / 2.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Shrinkable" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ShrinkingFactor" type="xs:double" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the factor of shrinking for the terminal protection.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaximumLongitudinalShrinkage"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the shrinkage in longitudinal direction.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AdhesivePresent" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Adhesive"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValidConductorMaterial"
                           type="vec:ConductorMaterial"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the materials of a conductor, which are valid to use with this<i>TerminalProtectionSpecification</i>. This material shall be matched against the<i>ConductorSpecification.material.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalReception">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A TerminalReception is the area of a terminal where the contacting with another terminal (e.g. between a connector housing and a control unit) takes place. Normally the terminal reception is placed in a cavity of a connector housing.</p>
            <p>This class represents such an area on the terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the TerminalReception. The identification is guaranteed to be unique within the TerminalSpecification (this might be for example a reception number).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Gender" type="vec:TerminalReceptionGender" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the gender of the TerminalReception. The gender is included in the TerminalReception class in order to be able to refer the same TerminalReceptionSpecification gender independent.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalReceptionSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TerminalReceptionSpecification that specifies the TerminalReception.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalReceptionSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalReceptionReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>TerminalReceptionReference</i>is an instance of a<i>TerminalReception</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>TerminalReceptionReference</i>. The<i>identification</i>is guaranteed to be unique within the<i>TerminalRole</i>(this might be for example a reception number).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalReception" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>TerminalReception</i>that is instanced by this<i>TerminalReceptionReference.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalReception" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalReceptionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of terminal receptions. A TerminalReception is the area of a terminal where the contacting with another terminal (e.g. between a connector housing and a control unit) takes place. Normally the terminal reception is placed in a cavity of a connector housing.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="CavityDesign" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                        <mt:deprecated reason="Has been replaced by the more meaningful mechanism with TerminalTypes."
                                       since="1.1.4"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlatingMaterial"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the plating material of the terminal reception.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PrimaryLockingType"
                           type="vec:PrimaryLockingType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the terminal reception has a primary locking and of what type it is.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PullOutForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The force that the terminal can withstand when being pulled out of the housing. Above that force, the terminal should be expected to be pulled out of the housing (destructive).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TestingPullOutForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The force that must be applied when the terminal is pulled back out of the housing (without further movement) in order to be able to assume that the terminal is securely latched in the housing (check that the terminal is correctly seated in the connector) and that an insertion process was successful.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ContactRangeLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the contact area (see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalType" type="vec:TerminalType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the terminal type that is associated with the terminal reception.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A TerminalRole defines the instance specific properties and relationships of a terminal.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="SealState" type="vec:SealState" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if this instance of a terminal should be sealed (waterproof). This applies for example to SpliceTerminals.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ComponentPort" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the ComponentPort that is realized by the referenced Terminal (OccurrenceOrUsage with TerminalRole). KBLFRM-341</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ComponentPort"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> References the<i>TerminalSpecification</i>that is instanced by this<i>TerminalRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TerminalSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalReceptionReference"
                           type="vec:TerminalReceptionReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>TerminalReceptionReferences</i>of this<i>TerminalRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReceptionReference"
                           type="vec:WireReceptionReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>WireReceptionReferences</i>of this<i>TerminalRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of terminals. A terminal can own multiple WireReceptions &amp; TerminalReceptions.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="VoltageRange" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the allowed voltage range for the connector housing.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                        <mt:deprecated reason="&#xA;Replaced by &lt;i&gt;GeneralTechnicalPartSpecification.VoltageRating&lt;/i&gt;."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SealingType" type="vec:TerminalSealingType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>SealingType</i>of the Terminal. This type always refers to the sealing of the terminal itself. However, even a terminal which is not sealable can be used in sealed locations with additional measures (e.g. on the slot).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionALength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the terminal between the contact area (terminal reception) and the crimp are (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OverallLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the overall length the terminal (see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TransmissionMedium"
                           type="vec:SignalTransmissionMediumType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the transmission medium for the terminal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CurrentInformation"
                           type="vec:TerminalCurrentInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>TerminalCurrentInformation</i>that is applicable for the terminal.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InternalTerminalConnection"
                           type="vec:InternalTerminalConnection"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the InternalTerminalConnections of the terminal.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MinimumDistance"
                           type="vec:TerminalDistanceInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>TerminalDistanceInformation.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TerminalReception"
                           type="vec:TerminalReception"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the TerminalReceptions of the terminal described by the TerminalSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReception"
                           type="vec:WireReception"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the WireReceptions of the terminal described by the TerminalSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TerminalType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the type (system) of a terminal. The type is specified by a combination of a name for the system and an optional nominalSize.</p>
            <p>In some processes the terminal type is referred as cavity system, because the system of cavities, terminals, seals, plugs and other cavity accessories must match / be compatible.</p>
            <p>However, since a terminal has only one since type and a cavity can be compatible to more than one it is named<i>TerminalType</i>in the VEC.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Name" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the cavity (e.g. MQS, DFK, ...).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NominalSize" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the nominal size of terminals that fit into the cavity. (e.g. 2x4).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TextBasedInstruction">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A TextBasedInstruction is used to specify human readable instructions in text.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instructions"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Instruction">
            <xs:sequence>
               <xs:element name="InstallationInstruction"
                           type="vec:LocalizedString"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the instruction in a human readable form. Different languages are possible.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Tolerance">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>Tolerance</i>defines the permissible limit or limits of variation for defined values (e.g. a<i>NumericalValue</i>). The tolerated value is defined by the context in which the<i>Tolerance</i>is contained / used.</p>
            <p>The values of the limits of the<i>Tolerance</i>,<i>LowerBoundary</i>and<i>UpperBoundary</i>, shall be interpreted as "modifiers" to the actual value. To obtain an absolute range of valid values, the values of boundaries shall be added to the actual value, regardless of the<i>Upper</i>or<i>Lower</i>prefix. For example, to define a value of 100mm with a tolerated variation between 95mm and 105mm, the definition would be<i>Value</i>= 100 mm,<i>LowerBoundary=-5, UpperBoundary=+5</i>. The<i>Unit</i>of the<i>Tolerance</i>boundaries is always the same as in the defining context.</p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="LowerBoundary" type="xs:double">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the lower boundary for the tolerance.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="UpperBoundary" type="xs:double">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the upper boundary for the tolerance.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="TopologyBendingRestriction">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>As the name implies, a<i>TopologyBendingRestriction</i>defines restrictions on the bendability a path in the<i>Topology.</i>There are multiple reasons, why such restrictions exist, for example:</p>
            <ul>
               <li>There is a bending restriction for a wire in the segment.</li>
               <li>The number of wires and the segment diameter is such, that excessive bending causes intolerable torsion forces on wires in the segment.</li>
               <li>Other technical reasons</li>
            </ul>
            <p>Since these restrictions can be determined using a variety of methods the VEC provides a concept to store this information for later use. This makes the information available in the downstream processes, without detailed knowledge of the determination procedure (e.g. during form board design, packaging or installation).</p>
            <p>The restriction applies to a path of segments as this can cover different case:</p>
            <ul>
               <li>a single segment</li>
               <li>two adjacent segments at a node</li>
               <li>the complete path of a wire</li>
            </ul>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="MinBendRadiusDynamic" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the minimum bend radius for the restricted path, if it is used in a dynamic environment, where it is bended repeatedly (e.g. in the grommet of the back door).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MinBendRadiusStatic" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the minimum bend radius for the restricted path, if it is used in a static environment, where it is bended once during installation. After that it remains unchanged in its bended position during usage.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RestrictedPath" type="vec:Path">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The path that defines the restricted way in the topology.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologyBendingRestrictionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>TopologyBendingRestrictionSpecification</i>can be used to define<i>TopologyBendingRestrictions.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="TopologyBendingRestriction"
                           type="vec:TopologyBendingRestriction"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologyGroupSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A TopologyGroupSpecification defines a new Topology based on the grouped Topologies. (see KBLFRM-240)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:TopologySpecification">
            <xs:sequence>
               <xs:element name="TopologySpecification" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySpecification"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologyMappingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A <i>TopologyMappingSpecification</i>allows the definition of hierarchical topologies. It relates an outer topology with an enclosed inner topology.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="InnerTopolgy" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OuterTopology" type="xs:IDREF">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NodeMapping"
                           type="vec:NodeMapping"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SegmentMapping"
                           type="vec:SegmentMapping"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologyNode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A TopologyNode is a point in the Topology where TopologySegments are starting and ending.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the TopologyNode.</p>
                        <p>Example: TopologyNode Ids may vary from one CAD system export to another. Therefore, the CAD system Id is improper for identification attribute. The identification shall have a value which is unique within the Topology. AliasId may be used for the CAD system Id.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the TopologyNode. The identification is guaranteed to be unique within the TopologySpecification. For all VEC-documents a TopologyNode-instance can be trusted to be the same if the TopologySpecification-instance is the same (see TopologySpecification) and the identification of the TopologyNode is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MatchingPointId" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies an identifier that can be used for matching<i>TopologyNodes</i>that belong to different<i>TopologySpecifications</i>and are actually representing the same node. Example: There are two<i>TopologySpecif</i>ications, each specifying the topology of a certain zone of the car. If the zones are adjacent, it is possible that there are<i>TopologyNodes</i>in both zones where the two topologies are connected / have contact. These "connection-nodes" would then define the same<i>matchingPointId</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ProcessingInstruction"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies processing instructions for the TopologyNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NodeType" type="vec:NodeType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the TopologyNode. A Node can either be an EndNode, a Junction or an Inliner.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstantiatedNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If this<i>TopologyNode</i>is an instance of another<i>To</i>
                           <i>pologyNode</i>that is defined elsewhere (e.g. the topology of an assembly), then the instantiated may be referenced here.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologyNode" relationship-type="Association"/>
                        <mt:deprecated reason="Replaced by general concept, see &#34;ReusageSpecification&#34;"
                                       since="2.2"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RealizedUsageNode" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>UsageNode</i>that is realized by this<i>TopologyNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:UsageNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologySegment">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>TopologySegment</i>is a distance in the Topology where no intermediate electrical contacts appear. If a Topology contains routed wires, then the wire at the beginning of a TopologySegment must be the same as in the ending.</p>
            <p>
               <i>TopologySegments</i>are a logical construct to describe the physical representation of a wiring harness topology. Therefore, a<i>TopologySegment</i>is only valid if it has a physical manifestation.<i>TopologySegments</i>with a length of 0 or less do not have a physical manifestation and are therefore<u>not</u>valid.</p>
            <p>Additionally, the usage of<i>TopologySegments</i>with a length of 0 create problems in the overall process. For example, the synchronization of 3D / 2D systems becomes harder or even impossible and the handling of wire protections on those<i>TopologySegment</i>is also unclear.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the TopologySegment. The identification is guaranteed to be unique within the TopologySpecification. For all VEC-documents a TopologySegment-instance can be trusted to be the same if the TopologySpecification-instance is the same (see TopologySpecification) and the identification of the TopologySegment is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Form" type="vec:SegmentForm" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the form of the TopologySegment. A TopologySegment can either be circular or noncircular.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional identifiers for the TopologySegment.</p>
                        <p>Example: TopologySegment Ids may vary from one CAD system export to another. Therefore, the CAD system Id is improper for identification attribute. The identification shall have a value which is unique within the Topology. AliasId may be used for the CAD system Id.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ProcessingInstruction"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies processing instructions for the TopologySegment.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="EndNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TopologyNode where the TopologySegment ends.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologyNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InstantiatedSegment" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If this<i>TopologySegment</i>is an instance of another<i>To</i>
                           <i>pologySegment</i>that is defined elsewhere (e.g. the topology of an assembly), then the instantiated may be referenced here.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySegment" relationship-type="Association"/>
                        <mt:deprecated reason="Replaced by general concept, see &#34;ReusageSpecification&#34;"
                                       since="2.2"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="StartNode" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the TopologyNode where the TopologySegment starts.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologyNode" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CrossSectionAreaInformation"
                           type="vec:SegmentCrossSectionArea"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the different SegmentCrossSectionAreas of the TopologySegment.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LengthInformation"
                           type="vec:SegmentLength"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the different SegmentLengths of the TopologySegment.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of a topology. A topology consists of TopologyNodes, TopologySegments.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="TopologyNode"
                           type="vec:TopologyNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the TopologyNodes defined by the TopologySpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TopologySegment"
                           type="vec:TopologySegment"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the TopologySegments defined by the TopologySpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologyZone">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>TopologyZone</i>divides a topology in different sections / design spaces. A<i>TopologyZone</i>may be subdivided in further<i>TopologyZone</i>. There can be multiple reasons for creating an orthogonal sectioning on a<i>Topology</i>. Therefore,<i>TopologyZones</i>can be overlapping.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the Zone (normally the name). The identification is guaranteed to be unique within the TopologySpecification. For all VEC-documents a Zone-instance can be trusted to be the same if the TopologySpecification-instance is the same (see TopologySpecification) and the identification of the Zone is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Type" type="vec:TopologyZoneType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The type of the TopologyZone. Valid values are defined in an OpenEnumeration.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the zone.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AmbientTemperature"
                           type="vec:TemperatureInformation"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the ambient temperature that can occur in this zone. This can result in specific requirements for the used components.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RequiredRobustnessProperties"
                           type="vec:RobustnessProperties"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the robustness properties that are required in this zone. This can result in specific requirements for the used components (e.g. the ability for sealing).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Assignment"
                           type="vec:ZoneAssignment"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The assignments of specific topology elements to this zone.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubZone"
                           type="vec:TopologyZone"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the sub<i>TopologyZones</i>that are part the<i>TopologyZone</i>. All<i>ZoneAssignments</i>defined for subZones are automatically inherited by the parent zone.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TopologyZoneSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of TopologyZones.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Zone"
                           type="vec:TopologyZone"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>TopologyZones</i>that are part of the<i>TopologyZoneSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Transformation2D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>Transformation2D</i>is used to position an object in 2D space (e.g. on a drawing).</p>
            <p>It consists of a reference to a<i>CartesianPoint2D</i>as<i>
                  <b>origin</b>
               </i>and a 2 ⨯ 2 matrix<b>
                  <i>a</i>
               </b>. The matrix is given by the attributes<i>[<b>a11</b>...<b>a22</b>]</i>, with the numbers representing the index of the matrix element<i>
                  <b>a<sub>ij</sub>
                  </b>
                  <sub/>
               </i>where<i>
                  <b>i</b>
               </i>is the row and<b>
                  <i>j</i>
               </b>the column index of the matrix.</p>
            <p>To place an object with a<i>Transformation2D</i>its origin is translated in space to the<i>CartesianPoint2D</i>
               <i>
                  <b>origin</b>
               </i>and every point<i>
                  <b>P = (x,y)</b>
               </i>
               <b/>of the object is transformed to<b>
                  <i>P'</i>
               </b>by applying the matrix multiplication:<b>
                  <i>P'= a · P</i>
               </b>
            </p>
            <p>With a suitable definition of the transformation matrix, a wide variety of geometric operations can be mapped. Which of these operations are permissible depends on the respective application and cannot be defined in general terms. For example, scaling and mirroring are probably not permissible operations when creating drawings in true scale.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_2d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="A11" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A12" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A21" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A22" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Origin" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the CartesianPoint2D that is the origin of the Transformation2D.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CartesianPoint2D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Transformation3D">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>Transformation3D</i>is used to position an object in 3D space (e.g. on a DMU model).</p>
            <p>It consists of a reference to a<i>CartesianPoint3D</i>as<i>
                  <b>origin</b>
               </i>and a 3 ⨯ 3 matrix<b>
                  <i>a</i>
               </b>. The matrix is given by the attributes<i>[<b>a11</b>...<b>a33</b>]</i>, with the numbers representing the index of the matrix element<i>
                  <b>a<sub>ij</sub>
                  </b>
                  <sub/>
               </i>where<i>
                  <b>i</b>
               </i>is the row and<b>
                  <i>j</i>
               </b>the column index of the matrix.</p>
            <p>To place an object with a<i>Transformation3D</i>its origin is translated in space to the<i>CartesianPoint3D</i>
               <i>
                  <b>origin</b>
               </i>and every point<i>
                  <b>P = (x,y,z)</b>
               </i>
               <b/>of the object is transformed to<b>
                  <i>P'</i>
               </b>by applying the matrix multiplication:<b>
                  <i>P'= a · P</i>
               </b>.</p>
            <p>With a suitable definition of the transformation matrix, a wide variety of geometric operations can be mapped. Which of these operations are permissible depends on the respective application and cannot be defined in general terms. For example, scaling and mirroring are probably not permissible operations in a normal DMU process with harmonized 3D models.</p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="A11" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A12" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A13" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A21" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A22" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A23" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A31" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A32" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="A33" type="xs:double">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Origin" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the coordinates of the translation.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CartesianPoint3D" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TubeRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specific<i>WireProtectionRole</i>for instances of<i>TubeSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionRole">
            <xs:sequence>
               <xs:element name="SlitStyle" type="vec:TubeSlitStyle" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the style of the slitting of the tube. If a<i>slitStyle</i>is defined, it implies that<i>isSlit=true</i>.</p>
                        <p>This attribute is defined as an<i>OpenEnumeration.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IsSlit" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies whether the tube is slit or not. The style of the slitting can be defined with the<i>slitStyle.</i>If a<i>slitStyle</i>is defined, it implies that<i>isSlit=true</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="TubeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies tubes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:WireProtectionSpecification">
            <xs:sequence>
               <xs:element name="BendRadius" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the bend radius of the tube.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InnerDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the inner diameter of a tube. In the case of a shrinkable tube, it is the diameter of the tube in the unshrinked state.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WallThickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the thickness of the wall of the tube.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="IsSlit" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies whether the tube is slit or not. The style of the slitting can be defined with the<i>slitStyle.</i>If a<i>slitStyle</i>is defined, it implies that<i>isSlit=true</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SlitStyle" type="vec:TubeSlitStyle" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the style of the slitting of the tube. If a<i>slitStyle</i>is defined, it implies that<i>isSlit=true</i>.</p>
                        <p>This attribute is defined as an<i>OpenEnumeration.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="NominalSize" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the nominal size of a tube. The nominal size is a name for the size of the tube that is somehow related to the inner diameter of the tube. However, it is not the inner diameter (e.g. "10.5").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondaryNominalSize" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the secondary nominal size of a tube. The nominal size is a name for the size of the tube that is somehow related to the inner diameter of the tube. However, it is not the inner diameter (e.g. "10.5").</p>
                        <p>The secondary nominal size shall only be used for two-parted tubes (see TubeSlitStyle = TwoParts). The secondary nominal size defines the size of the outer (larger) tube of a two-parted tube.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Shape" type="vec:TubeShape" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the shape of the cross section of the tube.</p>
                        <p>This attribute is defined as an<i>OpenEnumeration</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OuterDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the outer diameter of the tube. The outer diameter of a tube shall only be used for circular tubes (shape = Circular). For other shapes, height and width shall be used.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Height" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the height of the tube. If the height is defined, a width shall be defined, too. The height and width of a tube shall only be used for tubes that are not circular (shape != Circular). For circular shapes, the outside diameter shall be used.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Width" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the width of the tube. If the width is defined, a height shall be defined, too. The height and width of a tube shall only be used for tubes that are not circular (shape != Circular). For circular shapes, the outside diameter shall be used.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Length" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the tube if it is a predefined value.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="USUnit">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The USUnit class can define quantities in the terms of the US-Unit-System by specifying the corresponding US unit name. The US Unit System is quite similar to the imperial unit system; however, some units are defined slightly different.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Unit">
            <xs:sequence>
               <xs:element name="UsUnitName" type="vec:USUnitName">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the<i>USUnit</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Unit" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A precisely specified quantity in terms of which the magnitudes of other quantities of the same kind can be stated. The different systems to define units are represented by the subclasses of this class (e.g. SIUnit, ImperialUnit).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Exponent" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the exponent with which this unit instance should be used. In order to define square meters for example, the SIUnit "metre" with an exponent of 2 will be used. If no exponent is defined it is equivalent to the value 1.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UnEceCode" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The UNECE provides a list of "<a href="https://unece.org/trade/cefact/UNLOCODE-Download">Codes for Units of Measurement used in the International Trade</a>". This attribute shall be used for traceability of <i>Units</i>defined in the VEC into the UNECE system only. It provides<u>additional</u>meta information about the unit but shall not be used as the only definition of a<i>Unit.</i>Specifying a UNECE code does not exempt the creating system from generating a correct VEC mapping of the corresponding unit. In case of doubt, the VEC mapping has priority.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="UsageConstraint">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a constraint of the possible usages for PartVersion or PartUsages. UsageConstraints are of part master data information. UsageConstraints specify general restrictions for the application of a PartVersion or PartUsage (e.g. a certain period of time in which the part is allowed to be used). (see KBLFRM-229)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="usage_constraint"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Type" type="vec:UsageConstraintType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines if the usage constraint is positive (allowance) or negative (denial).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FromDate" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the lower bound of the time period to which the usage constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToDate" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the upper bound of the time period to which the usage constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FromSerialNumber" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the lower bound of a serial number range to which the usage constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToSerialNumber" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the upper bound of a serial number range to which the usage constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ProjectPhase"
                           type="xs:string"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the project phases to which the usage constraint applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FromEffectivityControlKey" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>In the production logistics of complex products (like vehicles), the control of operation and cancellation dates of changes, features, components or the like is usually not carried out via concrete dates but via "date keys". These keys are then mapped in planning systems with concrete time specifications for certain plants or production steps. In the VEC these keys are called<i>EffectivityControlKey.</i>
                        </p>
                        <p>With the<i>FromEffectivityControlKey</i>and<i>To</i>
                           <i>EffectivityControlKey</i>a validity interval can be defined. If one of the two values is defined and the other is omitted, the meaning shall be "unbounded".</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ToEffectivityControlKey" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>See<i>FromEffectivityControlKey.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Project" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>Projects</i>to which the<i>UsageConstraint</i>applies. This means the described PartVersion is allowed / denied in the referenced UsageConstraint.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Project"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsageNode" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>UsageNode</i>to which the<i>UsageConstraint</i>applies. This means the described<i>PartVersion</i>is allowed / denied in the referenced UsageNode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:UsageNode"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="UsageConstraintSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of usage constraints. The associated UsageConstraints are restricting the possible usages of the associated PartVersions and PartUsages.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="usage_constraint"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="ConstrainedParts" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>PartVersions</i>to which this<i>UsageConstraintSpecification</i>applies.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PartVersion"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PartUsageConstraint"
                           type="vec:UsageConstraint"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the UsageConstraints that apply to the PartVersion or PartUsages described by the UsageConstraintSpecification. The ordering of this association is relevant. The elements shall be arranged in the order of ascending priority. That means, elements further back in the collection have a higher priority.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="UsageNode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>UsageNode</i>represents a position in an abstract vehicle. For example, the "Head Light Left".<i>UsageNodes</i>belong to the master data, and they are defined on some companywide level. They can be used to enforce consistent naming over different projects and different development streams (e.g. between Geometry and Electrologic).</p>
            <p>A<i>UsageNode</i>can be realized by different elements in the VEC (e.g.<i>NetworkNode, OccurrenceOrUsage, TopologyNode, ComponentNode</i>).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="usage_node"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ConfigurableElement">
            <xs:sequence>
               <xs:element name="Abbreviation"
                           type="vec:LocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies an abbreviation of the<i>UsageNode</i>. Normally this a human readable short name.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>UsageNode</i>. The<i>identification</i>is guaranteed to be unique within the context. For all VEC-documents a<i>UsageNode-instance</i>can be trusted to be the same if the context-instance is the same and the<i>identification</i>of the<i>UsageNode</i>is the same.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies additional, human readable information about the<i>UsageNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsageNodeType" type="vec:UsageNodeType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the UsageNode. The type determines how the UsageNode is handled in the latter processes.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="UsedInProject" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>Projects</i>in which the<i>UsageNode</i>can be used.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Project"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubUsageNodes"
                           type="vec:UsageNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="UsageNodeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>UsageNodeSpecification</i>is a container for the specification of<i>UsageNodes.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="usage_node"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="UsageNodes"
                           type="vec:UsageNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>UsageNodes</i>defined by this<i>UsageNodeSpecification.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ValueRange">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A pair of numerical values representing a value range.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ValueWithUnit">
            <xs:sequence>
               <xs:element name="Minimum" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Lower bound of the value range.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Maximum" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Upper bound of the value range.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ValueRangeProperty">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A custom property with a value range. (see KBLFRM-319)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="custom_properties"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:CustomProperty">
            <xs:sequence>
               <xs:element name="Value" type="vec:ValueRange">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the value of the CustomProperty.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ValueWithUnit" abstract="true">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Abstract class either for a single numerical measure or a range of numerical measures with upper, lower, or upper and lower bounds.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="UnitComponent" type="xs:IDREF">
            <xs:annotation>
               <xs:documentation xml:lang="en">References the unit of the value.</xs:documentation>
               <xs:appinfo>
                  <mt:relationship element-type="vec:Unit" relationship-type="Association"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="VariantCode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>VariantCodes are defining the literals on which VariantConfiguration are stated. Possible VariantCodes might be different for steering types, optional equipment, engine-power class.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the variant code. This is also the literal value for the VariantCode, which shall be used in the logisticControlExpressions of VariantConfigurations.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify additional identifiers for the VariantCode.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Abbreviation" type="vec:LocalizedString" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for a human readable short name, title etc. of the VariantConfiguration.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CodeType" type="vec:VariantCodeType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Allows the classification of a VariantCodes.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>On optional human readable description of the variant code.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VariantCodeSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of variant codes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="VariantCode"
                           type="vec:VariantCode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the individual VariantCodes defined in the VariantCodeSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VariantConfiguration">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A variant configuration defines a condition with which it is possible to express the inclusion or exclusion of ConfigurableElements in different variants of a product.</p>
            <p>A<i>VariantConfiguration</i>can reference another<i>VariantConfiguration</i>as<i>baseInclusion</i>. In this case, a<i>VariantConfiguration</i>can only be satisfied if its<i>baseInclusion</i>is also satisfied.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the variant configuration. The identification is guaranteed to be unique within the specification and does not change over the time.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>On optional human readable description of the variant configuration.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LogisticControlString" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a logisticControlString which can be used if the variant management is not done by Boolean logic.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LogisticControlExpression" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a logisticControlExpression expressed as Boolean term.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConfigurationType"
                           type="vec:VariantConfigurationType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Allows the classification of a VariantConfiguration.</p>
                        <p>(see KBLFRM-250, KBLFRM-314, KBLFRM-290)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="BaseInclusion" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>A<i>VariantConfiguration</i>can only be satisfied if its<i>baseInclusion</i>is satisfied as well.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:VariantConfiguration" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VariantConfigurationSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of variant configurations.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="VariantConfiguration"
                           type="vec:VariantConfiguration"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the individual VariantConfigurations defined in the VariantConfigurationSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VariantGroup">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>With a VariantGroup it is possible to group VariantCodes. The semantic of this grouping should be defined with the groupType (e.g. composition, choice, etc.).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the variant code.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify additional identifiers for the VariantGroup.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Abbreviation" type="vec:LocalizedString" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for a human readable short name, title etc. of the VariantGroup.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>On optional human readable description of the variant group.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GroupType" type="vec:VariantGroupType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Allows the classification of a VariantGroups into different types. For example: - composition (e.g. winter package) - choice (e.g. right hand / left hand driving). Agreed literals for this attribute are defined in the OpenEnumeration<i>VariantGroupType.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="VariantCode" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the VariantCodes that are member of the VariantGroup.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:VariantCode"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VariantGroupSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of variant groups.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="VariantGroup"
                           type="vec:VariantGroup"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the individual VariantGroups defined in the VariantGroupSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VariantStructureNode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>VariantStructureNodes</i>can be used to define a hierarchical structure on<i>VariantGroups</i>. Every<i>VariantStructureNodes</i>can reference<i>VariantGroups</i>and<i>VariantStructureNodes</i>as children.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the<i>VariantStructureNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AliasId"
                           type="vec:AliasIdentification"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room to specify additional identifiers for the<i>VariantStructureNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Abbreviation" type="vec:LocalizedString" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Room for a human readable short name, title etc. of the<i>VariantStructureNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Description"
                           type="vec:AbstractLocalizedString"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>On optional human readable description of the<i>VariantStructureNode</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ContainedGroups" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:VariantGroup"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ChildNodes"
                           type="vec:VariantStructureNode"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VariantStructureSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification to define any hierarchical structure on variant groups (e.g. by the means of a functional organization). The hierarchy starts with a single root node.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="RootNode" type="vec:VariantStructureNode">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="VecContent">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The VecContent is the XML-Root node for any VEC-Document.</p>
            <p>
               <b> </b>
            </p>
            <p>
               <b>Note about<i/>
                  <i>GeneratingSystemName</i>and<i>GeneratingSystemVersion:</i>
               </b>Both together are intended to provide meta information to identify the generating system and its version for reasons of traceability (system is used as general term and can also be a system landscape, a highly modularized micro service architecture or a tool chain). It is not intended to provide detailed information about the composition or configuration of a system and its modules. Especially in a scenario where a system is highly modularized (e.g. a micro service architecture) any detailed information would be subject to very individual interpretation.</p>
            <p>Therefore, the VEC provides only the means to<u>identify</u>a specific system configuration,<u>not to describe</u>it. The<i>GeneratingSystemName</i>allows identification in space (who did it), and the<i>GeneratingSystemVersion</i>provides identification in time (when was it done, with which version of the configuration). The generator of the dataset is responsible to provide meaningful identifications for both, that satisfy the traceability requirements in the context.</p>
            <p>The following scenarios are explicitly allowed:</p>
            <ol>
               <li>Single System: Single identifiers are used which are mapping directly to a system / system version (e.g. "Component DB" / "V7.1.0")</li>
               <li>Combined System: The identifiers are a combination of the participating modules (e.g. "Design System X+Userware ACME+DBExport" / "V3+V2.7+V1.2.3").</li>
               <li>Baseline / System Configuration: The identifiers are pointing to a baseline in the configuration management of a system landscape. The systems and their versions are tracked there, outside the VEC (e.g. "Harness Tool Chain" / "V12-2023-5").</li>
            </ol>
            <p> </p>
            <p> </p>
            <p> </p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="VecVersion" type="vec:VecVersion">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the version of the VEC used for the file.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GeneratingSystemName" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the name of the system that has generated the VEC-file (see note in class documentation).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DateOfCreation" type="xs:dateTime" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the date of creation of the VEC-file.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GeneratingSystemVersion" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the version of the system that has generated the VEC-file (see note in class documentation).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="StandardCopyrightInformation" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>CopyrightInformation</i>that is in effect for the complete content of this<i>VecContent</i>. It is applied to all<i>ItemVersions</i>that do not references their own individual<i>CopyrightInformation.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CopyrightInformation" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Contract"
                           type="vec:Contract"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the contracts used in the VEC-file.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CopyrightInformation"
                           type="vec:CopyrightInformation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the CopyrightInformation used in the VEC-file.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="DocumentVersion"
                           type="vec:DocumentVersion"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the DocumentVersions contained in the VEC-file.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ItemHistoryEntry"
                           type="vec:ItemHistoryEntry"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ItemVersionHistoryEntries for ItemVersions contained in the VEC-file.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PartVersion"
                           type="vec:PartVersion"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the PartVersions contained in the VEC-file.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Project"
                           type="vec:Project"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Projects used in the VEC-file.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="QuantityKind"
                           type="vec:QuantityKind"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>QuantityKind</i>used in the VEC-file.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ResourceVersion"
                           type="vec:ResourceVersion"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Unit" type="vec:Unit" minOccurs="0" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the Units used in the VEC-file.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireElement">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireElement</i>specifies a<i>WireElementSpecification</i>in the context of a<i>WireSpecification</i>. This is necessary to define a unique<i>identification</i>of a<i>WireElementSpecification</i>in the context of a<i>WireSpecification.</i>Additionally, the<i>WireElement</i>serves as anchor for the instancing of a wire (<i>WireElementReference</i>) as the<i>WireElementSpecifications</i>are not uniquely related to a<i>WireSpecification</i>for reasons of reusability.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The identification of the WireElement. The identification is guaranteed to be unique within a wire and immutable. The identification is guaranteed to be the same for the same WireElement over different VEC documents.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Index" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>index</i>
                        <i>WireElements</i>
                        <i>SubWireElements</i>
                        <i>WireElement</i>
                        <i>layer.</i>
                        <i>WireElement</i>
                        <i>index</i>
                        <i>SubWireElements</i>
                        <i>WireElement</i>
                        <i>.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Layer" type="xs:integer" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>WireElements</i>
                        <i>subWireElements</i>
                        <i>WireElement</i>
                        <i>WireElements</i>
                        <i>layer</i>
                        <i>WireElement</i>
                        <i>layer</i>
                        <i>SubWireElements</i>
                        <i>WireElement</i>
                        <i>.</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireElementSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Reference the<i>WireElementSpecification</i>that is represented by the<i>WireElement.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireElementSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubWireElement"
                           type="vec:WireElement"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>subWireElements</i>of this<i>WireElement</i>. The<i>subWireElements</i>shall be consistent with the<i>subWireElementSpecifications</i>of the<i>WireElementSpecification</i>referenced by this<i>WireElement</i>and shall resemble that hierarchy.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireElementReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A WireElementReference represents the usage of a WireElement in the context of a PartUsage or PartOccurrence. For contacting purposes, a WireElementReference has WireEnds. KBLFRM-384</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:RoutableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the WireElementReference. The identification is guaranteed to be unique within the WireRole.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Unconnected" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If this attribute is<i>true</i>, the<i>WireElementReference</i>is not connected (unused) on purpose. This can be the case for example if a multi core is used, but not all cores are necessary in a specific situation.</p>
                        <p>However, for all<i>WireElements</i>defined in the<i>WireSpecification</i>a corresponding<i>WireElementReference</i>shall exist. This attribute can be used to mark these unused cores explicitly.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelValue" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>WireElementReference</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelType" type="vec:LabelType" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelPosition" type="vec:LabelPosition" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>WireElementReference</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LabelingTechnology"
                           type="vec:LabelingTechnology"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>LabelingTechnology</i>
                        <i>WireElementReference</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Connection" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the Connection that is realized by the referenced WireElement (WireElementReference). KBLFRM-341</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Connection"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionGroup" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>ConnectionGroup</i>that is realized by this<i>WireElementReference.</i>This applies normally to<i>WireElementReference</i>that have<i>subWireElements</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectionGroup"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedWireElement" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the WireElement that is represented by the WireElementReference.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireElement" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Signal" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the signal that is transmitted by the WireElementReference.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:Signal" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireEnd"
                           type="vec:WireEnd"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the ends of the WireElementReference for contacting purposes.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireLength"
                           type="vec:WireLength"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the different length of a wire.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireElementSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A WireElementSpecification is the basic element to describe a wire in the VEC. A WireElementSpecification can be atomic or composed recursively out of other WireElementSpecifications. A WireElementSpecification can reference an InsulationSpecification, if it has an insulation, a CoreSpecification, if it has a core or a WireGroupSpecification if it is a grouping of other WireElementSpecifications in the Wire (e.g. a multi-core wire with twisted pairs).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="Type"
                           type="vec:WireType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the wire. A wire must not have more than one type. This attribute allows more than one value for the reason, that the same type can be expressed in multiple reference systems.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MinBendRadiusDynamic" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the minimum bend radius for wire element, if it is used in a dynamic environment, where it is bended repeatedly (e.g. in grommet of the back door). (see KLBFRM-311)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MinBendRadiusStatic" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the minimum bend radius for wire element, if it is used in a static environment, where it is bended once during installation. After that it remains unchanged in its bended position during usage. (see KLBFRM-311)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="OutsideDiameter" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the outside diameter of the WireElement.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SuitedForDynamicUse" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if it is allowed to use the WireElement in a dynamic environment. (see KBLFRM-311)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Impedance" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the impedance of this wireElement. Typically used for WireElements that have subWireElements e.g. twisted pair or coax wires.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Size" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the size of a WireElement if it has not the shape of circle. If it has the shape of a circle the size is normally defined by its outside diameter.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValidWireReceptionTypes"
                           type="vec:WireReceptionType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>WireReceptionTypes</i>that are allowed for joining with the specified<i>WireElement.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="GridSpacing" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the grid spacing. The grid spacing is the distance between the centers of two adjacent sub wire elements.</p>
                        <p>This attribute is only valid for<i>WireElementSpecifications</i>that have<i>SubWireElementSpecifications.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Shape" type="vec:WireElementShape" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the shape of a<i>WireElement.</i>Circular wire elements are defined by their outsideDiameter, all others are defined by their size.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="TransmissionMediumType"
                           type="vec:TransmissionMediumType"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConductorSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If the<i>WireElement</i>has a core then the specification of the core is referenced here.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConductorSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FillerSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If the<i>WireElement</i>is a filler then the specification of the filler is referenced here.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:FillerSpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If the<i>WireElement</i>has an insulation then the specification of the insulation is referenced here.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:InsulationSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SubWireElementSpecification" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the contained subWireElements if the WireElement has sub elements. If a<i>WireElementSpecification</i>contains the same<i>WireElementSpecification</i>multiple times, then it shall be referenced as often as it occurs in the reality. Otherwise, the<i>WireElementSpecification</i>wouldn't specify a wire element unambiguously, because the representation in the model would be the same, regardless of the number of sub elements. Therefore, this association must not be realized with a "set" semantic.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireElementSpecification"
                                         relationship-type="Association"
                                         unique="false"
                                         ordered="false"/>
                        <mt:deprecated reason="Redundant to WireElement-&gt;SubWireElement (exists for historical reasons and reuse of complex wire structures is not recommended)."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireGroupSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>If the<i>WireElementSpecification</i>is representing a wire group, then the specification of the wire group is referenced here. That means as well, that the<i>WireElementSpecification</i>shall have<i>subWireElementSpecifications</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireGroupSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireEnd">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A WireEnd is the end of a wire. This class mainly needed for the definition of a contacting. As a wire can be contacted on more than two ends (e.g. IDC) the WireEnd has a position on the wire.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the WireEnd. The identification is guaranteed to be unique within the WireElementReference.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PositionOnWire" type="xs:double">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the order of the<i>WireEnds</i>on the<i>WireElementReference</i>. This must be a value between 0 and 1. The<i>PositionOnWire</i>is defined as a floating-point number, to allow the ordering of an arbitrary number of<i>WireEnds</i>while having constant known values for the first and last<i>WireEnd</i>("0.0" &amp; "1.0"). The<i>PositionOnWire</i>is<u>not</u>defined as a relative factor with respect to the<i>WireLength</i>to determine an exact position of the<i>WireEnd</i>on the wire. This would not be defined unambiguously, since a<i>WireElementReference</i>can define multiple lengths of different<i>WireLengthTypes</i>. If such an interpretation can be made, it is tool or process specific definition.</p>
                        <p>In case of<i>WireRole</i>with multiple<i>WireElementReferences</i>the ordering of the<i>WireEnds</i>shall be consistent for all<i>WireElementReferences.</i>That means that all<i>WireEnds</i>with<i>PositionOnWire = 0.0</i>are on the same side of the<i>WireRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CutBackLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the length, by which this<i>WireEnd</i>is cut back relative to the cut length of the outer most<i>WireElementReference</i>(see<i/>
                           <i>strippingLength</i>for an example).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="StrippingLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the length by which an insulation on this stripped relative to this<i>WireEnd,</i>defined by the<i>cutBackLength</i>. E.g. a<i>cutBackLength</i>of 20mm and a<i>strippingLength</i>of 10mm means, that this<i>WireElementReference</i>is cutback by 20mm relative to length of whole wire, on the side of the defining<i>WireEnd.</i>Form the remaining<i>WireElementReference</i>are then 10mm insulation removed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationPullbackLength"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>insulationPullbackLength</i>
                        <i>strippingLength</i>
                        <i>WireEnd</i>
                        <i>insulationPullbackLength</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionEnd" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectionEnd"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireEndAccessoryRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireEndAccessoryRole</i>defines the instance specific properties and relationships of a<i>WireEndAccessory</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="WireEndAccessorySpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>WireEndAccessorySpecification</i>that is instanced by this<i>WireEndAccessoryRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireEndAccessorySpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireEndAccessorySpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>WireEndAccessorySpecifications</i>are describing parts that are used for a treatment of a wire end before the actual terminal is attached to the<i>WireEnd</i>(e.g. a ferrule).</p>
            <p>The actual specification of the properties of the wire end accessory is done by the referenced<i>WireReceptionSpecification</i>since this is the<i>Specification</i>to describe joining properties of a part with a wire end.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="WireReceptionSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the single<i>WireReceptionSpecification</i>that is specifying the properties of the<i>WireEndAccessory</i>that are related to wire.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireReceptionSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireGroupSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of WireGroups. Wire groups are for example used for the representation of twisted pairs.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="GroupType" type="vec:WireGroupType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the group (e.g. twisted pair, ...).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LengthOfTwist" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of twist if the wire group is representing a twisted pair.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireGrouping">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireGrouping</i>is the definition of a multi core wire in its usage. The elements of a<i>WireGrouping</i>are well defined wires (e.g. with a part number). The grouping itself is only created in its concrete usage. The most common use case is the individual definition of unshielded twisted pair wires without creating the full combinatorics of every possible core / insulation / twist combination in a part master data system (and by this creating part numbers for all of them). However, there are other use cases as well.</p>
            <p>A<i>WireGrouping</i>groups the<i>relatedWireElementReferences</i>on an equal level containedWireGroupings are on a lower level. So, in order to create something like a shielded twisted pair, one<i>WireGrouping</i>"A" that references two<i>WireElementReferences</i>is required to represent the twisted pair and another<i>WireGrouping "</i>B" that contains<i>WireGrouping</i>"A" and references the "shield wire element".</p>
            <p> The referenced<i>WireGroupSpecification</i>defines the handling of the<i>WireGrouping</i>during its assembly (e.g. twist).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the WireGrouping. The identification is guaranteed to be unique within the WireGroupingSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionGroup" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>ConnectionGroup</i>that is realized by this<i>WireGrouping.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:ConnectionGroup"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelatedWireElementReference" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the concrete wire elements (<i>WireElementReference</i>) that are grouped by the WireGrouping.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireElementReference"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireGroupSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>WireGroupSpecification</i>that applies to the<i>WireGrouping</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireGroupSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ContainedWireGroupings"
                           type="vec:WireGrouping"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>WireGroupings</i>that are contained in this<i>WireGrouping</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireGroupingSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of WireGroupings.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="WireGrouping" type="vec:WireGrouping" maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the WireGroupings described by the WireGroupingSpecification.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireLength">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the length of a WireElementReference. A WireElementReference can have multiple lengths of different types but must not have more than one length of the same type.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="LengthType" type="vec:WireLengthType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The type of the length. Possible values are defined in an open enumeration (see WireLengthType).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="LengthValue" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The length value for the type.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireMounting">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireMounting</i>defines the mounting of a wire end to terminal. If the contacting is required to be waterproof a cavity seal can be mounted additionally.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="contacting"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="MountedCavitySeal" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the cavity seal that is used for the wire mounting.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:CavitySealRole" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedWireEnd" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the wire ends that are used for the wire mounting. The minimum cardinality is one, because a wire mounting without wire end makes no sense.</p>
                        <p>The maximum cardinality is * in order to support multi crimps.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireEnd"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireEndAccessory" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireEndAccessoryRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireMountingDetail"
                           type="vec:WireMountingDetail"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the WireMoutingDetails, if a detailed description of the relationships between WireEnds and WireReceptions is needed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireMountingDetail">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>With a WireMountingDetail it is possible to describe a detailed wire mounting.</p>
            <p>This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="contacting"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="CoreCrimpSize" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the required core crimp size (width &amp; height) of this specific wire mounting situation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationCrimpSize" type="vec:Size" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the required insulation crimp size (width &amp; height) of this specific wire mounting situation.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireTipProtrusion" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the valid length range in which the protrusion of the conductor from the conductor crimp must be located.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReceptionType" type="vec:WireReceptionType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the joining method to be applied for this<i>WireMountingDetail.</i>This is particularly relevant for wire receptions that support multiple joining methods (see<i>WireReceptionSpecification.WireReceptionType</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AbsoluteSealPosition" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>absoluteSealPosition</i>
                        <i>CavitySeal</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PullOffForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The minimum force, of this specific wire mounting situation, that the completed crimp should withstand when the wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. This value applies when both core &amp; insulation crimp are functional.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CorePullOffForce" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The minimum force, of this specific wire mounting situation, that the completed crimp should withstand when the wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. This value applies when only the core crimp is present or functional (insulation crimp is either not present or disabled).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationPullOffForce"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The minimum force, of this specific wire mounting situation, that the completed crimp should withstand when the wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. This value applies when only the insulation crimp is functional.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ContactedWireReception" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the WireReception that is used for the WireMounting.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireReceptionReference"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ReferencedWireEnd" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the WireEnds that are mounted to referenced WireReception. A cardinality of more than one is allowed in order support parallel connectors, where multiple wire ends are placed on one side of the connector (one wire reception) and the other wire ends are placed on the other side of the connector (the other wire reception).</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireEnd"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireProtectionGroup">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireProtectionGroup</i>is the definition of a set of<i>WireProtectionRoles</i>to which the following rules apply:</p>
            <ul>
               <li>The<i>WireProtectionGroup</i>defines a processing instruction, not a precise product specification.</li>
               <li>All transitions between adjacent elements in group shall be implemented continuous, without interruption, wherever technically possible.</li>
               <li>The elements of a<i>WireProtectionGroup</i>can be subject to variance depending on the scenario in a specific 100% configuration. Meaning, some elements of the group might only be applicable in some scenarios, e.g. a cross-taping might only occur, if at least three segments with wires in them exist in a configuration.</li>
               <li>The existence of the elements of a group in a specific 100% configuration is not controlled by the<i>WireProtectionGroup,</i>but by the individual variance control applied to the participating<i>Roles</i>and the corresponding<i>OccurrenceOrUsages</i>.</li>
            </ul>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>WireProtectionGroup</i>. The<i>identification</i>is guaranteed to be unique within the<i>WireProtectionGroupSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RelatedWireProtections" type="xs:IDREFS">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the members in the<i>WireProtectionGroup.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireProtectionRole"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireProtectionGroupSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of<i>WireProtectionGroups</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="WireProtectionGroup"
                           type="vec:WireProtectionGroup"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireProtectionRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A WireProtectionRole defines the instance specific properties and relationships of a wire protection. This is a general-purpose role for instances of all types of<i>WireProtectionSpecifications</i>that do not have specific instance attributes. For<i>TapeSpecifications</i>the more specific<i>TapeRole</i>shall be used.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="ProtectionLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>ProtectionLength</i>specifies the length of the area covered by the protection. As a consequence, the<i>ProtectionLength</i>may differ from the real length of the material (e.g. for tapes).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireProtectionSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>WireProtectionSpecification</i>that is instanced by this<i>WireProtectionRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireProtectionSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaterialLength"
                           type="vec:ProtectionMaterialLength"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireProtectionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the description of wire protections.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="SoundDampingClass"
                           type="vec:SoundDampingClass"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the class of sound damping. According to the VDA this is a value between A &amp; E. KBLFRM-311</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireReception">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. This class represents such an area on the terminal. Its description is done with a WireReceptionSpecification, which is independent from the TerminalSpecification. This allows the reuse of the specification of similar WireReception on different terminals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique identification of the WireReception. The identification is guaranteed to be unique within the TerminalSpecification (this might be for example a reception number).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Angle"
                           type="vec:NumericalValue"
                           minOccurs="0"
                           maxOccurs="2">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the angles against two planes of the connector housing a wire reception can be buckled. The planes are defined in a way, that angles of  [0.0, 0.0] specify an unbuckled (regular) terminal. The two planes are perpendicular to each other and parallel to the plugging direction of the terminal (the direction of the pin).</p>
                        <p>The plane for the first angle is the plane in which the uncrimped wire reception would be, if the terminal has not been buckled. Since most terminals are cut or punched in some way out of a sheet of metal, this plane would be the same as metal sheet before further deformation.</p>
                        <p>For ring terminals, the first plane is perpendicular to the bolt direction.</p>
                        <p>With a viewing direction from the wire reception to the terminal reception and the intended wire position above the terminal, buckling directions up and right are expressed by positive angles, down and left by negative angles.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="true"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Rotation" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the rotation of a<i>WireReception</i>relative to the<i>TerminalReception.</i>The rotation of the<i>WireReception</i>is the angle between the normal vector on base plane of the crimp area and the y-axis, which is a rotation around the z-axis (right hand rule, compare illustration in<i>"Terminal Coordinate System"</i>).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlacementPoint" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>PlacementPoint</i>that represents this<i>WireReception</i>in a PlaceableElementSpecification.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:PlacementPoint" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReceptionSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">References the WireReceptionSpecification that specifies the WireReception.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireReceptionSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireReceptionAddOn">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the wire addon required for this wire reception.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="WireAddOn" type="vec:NumericalValue">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the wire length add on needed for the wire reception.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Type" type="vec:WireAddOnType">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the type of the add-on.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireReceptionReference">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireReceptionReference</i>is an instance of a<i>WireReception</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Identification" type="xs:string" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a unique<i>identification</i>of the<i>WireReceptionReference</i>. The<i>identification</i>is guaranteed to be unique within the<i>TerminalRole</i>(this might be for example a reception number).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReception" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>WireReception</i>that is instanced by this<i>WireReceptionReference.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireReception" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireReceptionSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="CoreCrossSectionArea" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a value range for cross-section areas of cores that are compatible with the wire reception.</p>
                        <p>For wire receptions where a single core is attached to, this value defines the<i>ValueRange</i>of the<i>crossSectionArea</i>of the core. For wire receptions where more than one core is attached to (e.g. ring terminals, splices), this attribute defines the valid value range for the sum of the cross-section areas of all attached cores.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationDisplacementLength"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the insulation which must be stripped off to fit to this wire reception.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MultiContact" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if it is possible to contact more than one core at the wire reception. If this attribute is set to true, the wire reception is allowed for more than one wire, but one wire is possible as well. If set to false, only one wire is allowed.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireReceptionType"
                           type="vec:WireReceptionType"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the type of the wire reception. The<i>WireReceptionType</i>defines how the wire is joined with the wire reception.</p>
                        <p>This attribute is defined in an OpenEnumeration. As there are terminals that support multiple joining techniques, e.g. crimping, soldering and a combination of both, it is possible to define multiple values for this attribute.</p>
                        <p>Joining methods that are a combination of other joining methods are represented as a separate literal. For example, a<i>WireReceptionSpecification</i>with<i>WireReceptionType = [Crimp,Soldering]</i>supports crimping<u>or</u>soldering, but not a combination of both, where as the definition<i>[Crimp,CrimpAndSoldering]</i>would support crimping and crimping with subsequent soldering, but not soldering alone.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireElementOutsideDiameter"
                           type="vec:ValueRange"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies a value range for valid diameters a WireElement must have to fit to the wire reception.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PlatingMaterial"
                           type="vec:Material"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the plating material of the wire reception.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute" unique="true" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Sealable" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies if the wire reception can be sealed. (see KBLFRM-311)</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FrontBellMouthLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the front (facing the terminal reception) bell mouth of the conductor crimp (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConductorCrimpLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the conductor crimp (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConductorCrimpShape" type="vec:CrimpShape" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> The shape of the conductor crimp (e.g. F).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConductorCrimpLegHeight"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The maximum height of the legs above the normal plane of the terminal (uncrimped state).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="RearBellMouthLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the rear bell mouth of the conductor crimp (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CrimpConnectionLength"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the crimp area, conductor + insulation crimp (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationCrimpLength"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the insulation crimp (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationCrimpShape" type="vec:CrimpShape" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p> The shape of the insulation crimp (e.g. O).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="InsulationCrimpLegHeight"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The maximum height of the legs above the normal plane of the terminal (uncrimped state).</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CutOffTabLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the cut off tab (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ConnectionBLength" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the length of the connection between the conductor and the insulation crimp (wire reception, see diagram "Terminal Dimensions").</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SheetThickness" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The thickness of the material of terminal (metal sheet) in the crimp area.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireTipProtrusion" type="vec:ValueRange" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the valid length range in which the protrusion of the conductor from the conductor crimp must be located.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CrimpBarrelType" type="vec:CrimpBarrelType" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>CrimpBarrelType</i>defines the shape of the crimp barrel in its unprocessed state. When the crimp barrel is open the wire can be laid into the terminal from above. If the crimp barrel is closed the wire must be fed in from the front.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AddOns"
                           type="vec:WireReceptionAddOn"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="CoreCrimpDetails"
                           type="vec:CoreCrimpDetail"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Defines the<i>CrimpDetails</i>for this WireReception.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ValidConductorMaterials"
                           type="vec:ConductorMaterial"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the materials of a conductor, which are valid to use with this<i>WireReceptionSpecification</i>. This material shall be matched against the<i>ConductorSpecification.material.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A WireRole defines the instance specific properties and relationships of a wire.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Role">
            <xs:sequence>
               <xs:element name="WireSpecification" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>WireSpecification</i>that is instanced by this<i>WireRole.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireSpecification" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireElementReference"
                           type="vec:WireElementReference"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">Specifies the WireElementReferences used in the WireRole. For multi core wires more than one WireElementReference is needed.</xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specification for the definition of a wire. This can either be a complex multicore wire or a normal single core. In the VEC a wire is defined by one WireElement, which may be composed from other WireElements.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:PartOrUsageRelatedSpecification">
            <xs:sequence>
               <xs:element name="WireElementSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>References the<i>WireElementSpecification</i>that defines the properties of the top-most<i>WireElement.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireElementSpecification"
                                         relationship-type="Association"/>
                        <mt:deprecated reason="Redundant to WireSpecification-&gt;WireElement-&gt;WireElementSpecification (exists for historical reasons)."
                                       since="2.2.0"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireElement" type="vec:WireElement">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Specifies the<i>WireElement</i>that represents the root of the<i>WireSpecification</i>.</p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireTupleSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>Specification</i>to define requirements for the handling of wire / wire element tuples (pairs, triple,...) with the focus on twisting. More precisely, the allowed untwisting at the wire ends and required measures against it.</p>
            <p>This definition is made independent from the<i>WireGroup</i>, as it might be defined for the part master data (the wire on the roller). The specifications for untwisting are based on the concrete usage.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="FixationRequired" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FixationOffset" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaximumUntwistSingleSided"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="MaximumUntwistDualSided"
                           type="vec:NumericalValue"
                           minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FixationAccessory"
                           type="vec:PartRelation"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>PartRelations</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireTupleTermination">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireTupleTermination</i>is to define the handling of wire ends in a tuple (group). This is mostly relevant for twisted pairs / triple / tuple to define the handling of untwisting.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="Fixation" type="xs:boolean" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <i>associatedWireEnds</i>
                        <i>WireTupleTermination</i>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="FixationOffset" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="PermittedUntwist" type="vec:NumericalValue" minOccurs="0">
                  <xs:annotation>
                     <xs:documentation xml:lang="en"/>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Attribute"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="AssociatedWireEnds" type="xs:IDREFS" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireEnd"
                                         relationship-type="Association"
                                         unique="true"
                                         ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="WireTupleSpecification" type="xs:IDREF" minOccurs="0">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:WireTupleSpecification"
                                         relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireTupleTerminationSpecification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>WireTupleTerminationSpecification</i>is the container specification for<i>WireTupleTerminations</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:Specification">
            <xs:sequence>
               <xs:element name="WireTupleTermination"
                           type="vec:WireTupleTermination"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="WireType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies a wire type. A wire type is always defined by a key value. What wire type is meant by this key value is defined by a standard reference system.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="Type" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the type of the wire (e.g. FLRY, NYFAZw). Valid values are defined by the wireTypeReferenceSystem.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
         <xs:element name="ReferenceSystem" type="xs:string">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Specifies the reference system for the wire type.</p>
               </xs:documentation>
               <xs:appinfo>
                  <mt:relationship relationship-type="Attribute"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="required"/>
      <xs:attribute name="immutable-global-iri" type="xs:anyURI"/>
   </xs:complexType>
   <xs:complexType name="ZoneAssignment">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ZoneAssignment</i>defines that a specific TopologySegment is affected by the<i>TopologyZone.</i>If a coverage is defined, only the parts of the Segment that have a coverage are affected. If no coverage is defined, the whole segment is affected.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="AssignedSegment" type="xs:IDREF">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>The<i>TopologySegment</i>that is assigned to<i>TopologyZone</i>with this<i>ZoneAssignment.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship element-type="vec:TopologySegment" relationship-type="Association"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="Coverage"
                           type="vec:ZoneCoverage"
                           minOccurs="0"
                           maxOccurs="unbounded">
                  <xs:annotation>
                     <xs:documentation xml:lang="en">
                        <p>Contains a set of<i>ZoneCoverages</i>that define the areas of a<i>TopologySegment</i>that is affected by the TopologyZone. If no coverage is defined, the complete segment is affected. Multiple coverages can be necessary if the<i>TopologySegment</i>zigzags in and out of the<i>TopologyZone.</i>
                        </p>
                     </xs:documentation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition" ordered="false"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="ZoneCoverage">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>A<i>ZoneCoverage</i>defines an area on a<i>TopologySegment</i>that lies within a<i>TopologyZone.</i>The area is defined with two<i>Locations</i>.<i>Locations</i>are the same mechanism that is used to define placements for components. The area that is in the<i>TopologyZone</i>is the area between the two locations. There is no semantic in the direction of the definition, so the assignment of first &amp; second Location is completely arbitrary.</p>
            <p>However, there are some restrictions for the definition of the locations. All locations have to be in relation to the <i>TopologySegment</i>that is referenced by the containing<i>ZoneAssignment</i>. This means the<i>Locations</i>have to be either a<i>SegmentLocation on the</i>respective<i/>
               <i>TopologySegment</i>or a<i>NodeLocation</i>on the start or end node of this particular<i>T</i>
               <i>opologySegment.</i>A<i>ZoneCoverage</i>from start to end node of a<i>TopologySegment</i>is equivalent to the complete omission of<i>ZoneCoverages</i>for a particular<i>ZoneAssignment</i>.</p>
            <p> </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="vec:ExtendableElement">
            <xs:sequence>
               <xs:element name="FirstLocation" type="vec:Location">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="SecondLocation" type="vec:Location">
                  <xs:annotation>
                     <xs:appinfo>
                        <mt:relationship relationship-type="Composition"/>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:simpleType name="AliasIdentificationType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="AnchorType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of AnchorType of the SegmentLocation.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="FromStartNode">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The offset of the location is measured from the startNode of the TopologySegment.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="FromEndNode">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The offset of the location is measured from the endNode of the TopologySegment.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ApplicationConstraintType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the type of an ApplicationConstraints. Valid values are<i>Allow</i>and<i>Deny</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Allow"/>
         <xs:enumeration value="Deny"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ApplicationType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>OpenEnumeration</i>defines different fields of application / application types for and within wiring harnesses.</p>
            <p> </p>
            <p>For definitions of 12V to HV5 see<i>NominalVoltage.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="BaselineContent">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration to define the state of the content of the baseline in regard of its defined scope.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="BaselineState">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration the define the valid states of a baseline.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="BoltMountedFixingBoltShape">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration for the shapes of the bolts on which the fixing can be mounted.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="BoltMountedFixingBoltType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration for the types of the bolts on which the fixing can be mounted.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="CableLeadThroughGeometry">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid values for the geometry of a<i>CableLeadThrough</i>in the sealing area.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="CableLeadThroughType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid types for CableLeadThroughs.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="CavityGeometry">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid values of the geometry of cavities in the sealing area (crimp end).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ChangeRestrictionType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>ChangeRestrictionType</i>
            <i>changeRestriction</i>
            <i>ItemVersion.changeRestriction</i>
            <i>.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="CodingName">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ColorReferenceSystem">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the literals that shall be used for specific color reference systems.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ComponentNodeSubType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines agreed values for<i>ComponentNodeSubTypes</i>. Not all combinations of<i>ComponentNodeSubTypes</i>and<i>ComponentNodeTypes</i>are semantically correct (e.g. Lamp, Microphone, Speaker, Motor are all Actuators).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ComponentNodeType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the common agreed values for the types of a ComponentNode.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ComponentPortViewItemSide">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Top"/>
         <xs:enumeration value="Bottom"/>
         <xs:enumeration value="Left"/>
         <xs:enumeration value="Right"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ConductorStructure">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the structure of the conductor according to ISO 6722-1 for ConductorSpecifications with Type = Stranded.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConductorType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the type of the conductor, e.g. if it is rigid or stranded.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConfidentialityLevel">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines different levels of confidentiality for<i>DocumentVersions.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConnectionEndGender">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the gender of a connection end.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConnectionGroupType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the type of physical realization that is expressed by a<i>ConnectionGroup.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="schematic"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConnectorLockingState">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid states for the connector locking.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConnectorLockingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid primary locking types for connectors.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConnectorOutletDirection">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the<i>OutletDirection</i>of a connector for wires.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConnectorPositionAssuranceState">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid states for the connector position assurance (CPA).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ConnectorPositionAssuranceType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid connector position assurance types for connectors.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ContractRole">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of roles a contractor has in a contract.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="CrimpBarrelType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The CrimpBarrel<i>Type</i>defines in an<i>OpenEnumeration</i>the shape of the crimp barrel in its unprocessed state.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="CrimpShape">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>OpenEnumeration</i>of possible<i>CrimpShapes</i>for<i>Core-</i>and<i>InsulationCrimps.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="CurrentType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="DefaultDimensionType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>dimensionType</i>defines to which measurements this<i>DefaultDimension</i>applies.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placement"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="DocumentRelationType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="DocumentType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the predefined<i>DocumentTypes</i>of a<i>PartVersion.</i>A certain<i>DocumentType</i>has normally a typical set of information that is defined within its scope. E.g. a part master document contains<i>Specifications</i>that are used for the description of a defined<i>PartVersion.</i>
            </p>
            <p>
               <i>The content and the degree of information a DocumentType</i>may vary in the different processes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="FittingForm">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration to define different fitting forms.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="FoilShieldWindingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the type of winding for foil shields. It can be folded around and along the inner wire elements like a cigarette paper or it can be wound around them in a spiral. Both types result in different manufacturing and EMC properties.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="FunctionalRequirementType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="assignment_groups"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="FuseType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the values for the type a fuse. This is the geometrical type.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="GeometryType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the GeometryType.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="geo_3d"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="GrommetMountingType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="GrommetType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="HistoryEntryType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the type of relationship represented by an ItemHistoryEntry. (see KBLFRM-271)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Derivation"/>
         <xs:enumeration value="Sequence"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="HoleMountedFixingHoleShape">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="HoleMountedFixingHoleType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="HousingComponentType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid HousingComponentTypes. The values in this Enumeration are matching the relevant<i>PrimaryPartTypes.</i>For a description of the values see<i>PrimaryPartType.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="IECPrefix">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of IEC unit prefixes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Yobi"/>
         <xs:enumeration value="Zebi"/>
         <xs:enumeration value="Exbi"/>
         <xs:enumeration value="Pebi"/>
         <xs:enumeration value="Tebi"/>
         <xs:enumeration value="Gibi"/>
         <xs:enumeration value="Mebi"/>
         <xs:enumeration value="Kibi"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="IECUnitName">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of IEC unit names.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Bit"/>
         <xs:enumeration value="Byte"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ImperialUnitName">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of imperial unit names.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Thou"/>
         <xs:enumeration value="Inch"/>
         <xs:enumeration value="Foot"/>
         <xs:enumeration value="Yard"/>
         <xs:enumeration value="Chain"/>
         <xs:enumeration value="Furlong"/>
         <xs:enumeration value="Mile"/>
         <xs:enumeration value="League"/>
         <xs:enumeration value="FluidOunce"/>
         <xs:enumeration value="Gill"/>
         <xs:enumeration value="Pint"/>
         <xs:enumeration value="Quart"/>
         <xs:enumeration value="Gallon"/>
         <xs:enumeration value="Grain"/>
         <xs:enumeration value="Drachm"/>
         <xs:enumeration value="Ounce"/>
         <xs:enumeration value="Pound"/>
         <xs:enumeration value="Stone"/>
         <xs:enumeration value="Quarter"/>
         <xs:enumeration value="HundredWeight"/>
         <xs:enumeration value="Ton"/>
         <xs:enumeration value="Perch"/>
         <xs:enumeration value="Rood"/>
         <xs:enumeration value="Acre"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="InsulationState">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the insulation state of the splice.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="LabelPosition">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>WireElementReferences.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="LabelType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="LabelingTechnology">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="LanguageCode">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of ISO language codes. (see KBLFRM-317)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Aa">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Afar</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="Ab">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Abkhazian</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="Af"/>
         <xs:enumeration value="Am"/>
         <xs:enumeration value="Ar"/>
         <xs:enumeration value="As"/>
         <xs:enumeration value="Ay"/>
         <xs:enumeration value="Az"/>
         <xs:enumeration value="Ba"/>
         <xs:enumeration value="Be"/>
         <xs:enumeration value="Bg"/>
         <xs:enumeration value="Bh"/>
         <xs:enumeration value="Bi"/>
         <xs:enumeration value="Bn"/>
         <xs:enumeration value="Bo"/>
         <xs:enumeration value="Br"/>
         <xs:enumeration value="Ca"/>
         <xs:enumeration value="Co"/>
         <xs:enumeration value="Cs"/>
         <xs:enumeration value="Cy"/>
         <xs:enumeration value="Da"/>
         <xs:enumeration value="De"/>
         <xs:enumeration value="Dz"/>
         <xs:enumeration value="El"/>
         <xs:enumeration value="En"/>
         <xs:enumeration value="Eo"/>
         <xs:enumeration value="Es"/>
         <xs:enumeration value="Et"/>
         <xs:enumeration value="Eu"/>
         <xs:enumeration value="Fa"/>
         <xs:enumeration value="Fi"/>
         <xs:enumeration value="Fj"/>
         <xs:enumeration value="Fo"/>
         <xs:enumeration value="Fr"/>
         <xs:enumeration value="Fy"/>
         <xs:enumeration value="Ga"/>
         <xs:enumeration value="Gd"/>
         <xs:enumeration value="Gl"/>
         <xs:enumeration value="Gn"/>
         <xs:enumeration value="Gu"/>
         <xs:enumeration value="Ha"/>
         <xs:enumeration value="Hi"/>
         <xs:enumeration value="He"/>
         <xs:enumeration value="Hr"/>
         <xs:enumeration value="Hu"/>
         <xs:enumeration value="Hy"/>
         <xs:enumeration value="Ia"/>
         <xs:enumeration value="Id"/>
         <xs:enumeration value="Ie"/>
         <xs:enumeration value="Ik"/>
         <xs:enumeration value="In"/>
         <xs:enumeration value="Is"/>
         <xs:enumeration value="It"/>
         <xs:enumeration value="Iu"/>
         <xs:enumeration value="Iw"/>
         <xs:enumeration value="Ja"/>
         <xs:enumeration value="Ji"/>
         <xs:enumeration value="Jw"/>
         <xs:enumeration value="Ka"/>
         <xs:enumeration value="Kk"/>
         <xs:enumeration value="Kl"/>
         <xs:enumeration value="Km"/>
         <xs:enumeration value="Kn"/>
         <xs:enumeration value="Ko"/>
         <xs:enumeration value="Ks"/>
         <xs:enumeration value="Ku"/>
         <xs:enumeration value="Ky"/>
         <xs:enumeration value="La"/>
         <xs:enumeration value="Ln"/>
         <xs:enumeration value="Lo"/>
         <xs:enumeration value="Lt"/>
         <xs:enumeration value="Lv"/>
         <xs:enumeration value="Mg"/>
         <xs:enumeration value="Mi"/>
         <xs:enumeration value="Mk"/>
         <xs:enumeration value="Ml"/>
         <xs:enumeration value="Mn"/>
         <xs:enumeration value="Mo"/>
         <xs:enumeration value="Mr"/>
         <xs:enumeration value="Ms"/>
         <xs:enumeration value="Mt"/>
         <xs:enumeration value="My"/>
         <xs:enumeration value="Na"/>
         <xs:enumeration value="Ne"/>
         <xs:enumeration value="Nl"/>
         <xs:enumeration value="No"/>
         <xs:enumeration value="Oc"/>
         <xs:enumeration value="Om"/>
         <xs:enumeration value="Or"/>
         <xs:enumeration value="Pa"/>
         <xs:enumeration value="Pl"/>
         <xs:enumeration value="Ps"/>
         <xs:enumeration value="Pt"/>
         <xs:enumeration value="Qu"/>
         <xs:enumeration value="Rm"/>
         <xs:enumeration value="Rn"/>
         <xs:enumeration value="Ro"/>
         <xs:enumeration value="Ru"/>
         <xs:enumeration value="Rw"/>
         <xs:enumeration value="Sa"/>
         <xs:enumeration value="Sd"/>
         <xs:enumeration value="Sg"/>
         <xs:enumeration value="Sh"/>
         <xs:enumeration value="Si"/>
         <xs:enumeration value="Sk"/>
         <xs:enumeration value="Sl"/>
         <xs:enumeration value="Sm"/>
         <xs:enumeration value="Sn"/>
         <xs:enumeration value="So"/>
         <xs:enumeration value="Sq"/>
         <xs:enumeration value="Sr"/>
         <xs:enumeration value="Ss"/>
         <xs:enumeration value="St"/>
         <xs:enumeration value="Su"/>
         <xs:enumeration value="Sv"/>
         <xs:enumeration value="Sw"/>
         <xs:enumeration value="Ta"/>
         <xs:enumeration value="Te"/>
         <xs:enumeration value="Tg"/>
         <xs:enumeration value="Th"/>
         <xs:enumeration value="Zi"/>
         <xs:enumeration value="Tk"/>
         <xs:enumeration value="Tl"/>
         <xs:enumeration value="Tn"/>
         <xs:enumeration value="To"/>
         <xs:enumeration value="Tr"/>
         <xs:enumeration value="Ts"/>
         <xs:enumeration value="Tt"/>
         <xs:enumeration value="Tw"/>
         <xs:enumeration value="Ug"/>
         <xs:enumeration value="Uk"/>
         <xs:enumeration value="Ur"/>
         <xs:enumeration value="Uz"/>
         <xs:enumeration value="Vi"/>
         <xs:enumeration value="Vo"/>
         <xs:enumeration value="Wo"/>
         <xs:enumeration value="Xh"/>
         <xs:enumeration value="Yi"/>
         <xs:enumeration value="Yo"/>
         <xs:enumeration value="Za"/>
         <xs:enumeration value="Zh">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Chinese</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="Zu">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Zulu</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="LengthClassification">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of a LengthClassification.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="LevelOfApproval">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The LevelOfApproval standardizes the approval levels most engineering processes have in common. See<i>Approval.levelOfApproval</i>for more details.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="LocalizedTypedStringType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="MassInformationSource">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines possible sources for<i>MassInformations</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="MultiFuseType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration for the manufacturing types of the multi-fuses.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="NetworkNodeSubType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines agreed values for<i>NetworkNodeSubTypes</i>. Not all combinations of<i>NetworkNodeSubTypes</i>and<i>NetworkNodeTypes</i>are semantically correct (e.g. Lamp, Microphone, Speaker, Motor are all Actuators).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="NetworkNodeType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the common agreed values for the Types of a NetworkNode.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="NetworkPortViewItemSide">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Top"/>
         <xs:enumeration value="Bottom"/>
         <xs:enumeration value="Left"/>
         <xs:enumeration value="Right"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="NodeType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the type of a TopologyNode.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="NominalVoltage">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>OpenEnumeration</i>defines the nominal voltage levels currently known and used in vehicles.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="OtherUnitName">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of other unit names.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Pi"/>
         <xs:enumeration value="Piece"/>
         <xs:enumeration value="ArcDegree">
            <xs:annotation>
               <xs:documentation xml:lang="en"/>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="ArcMinute">
            <xs:annotation>
               <xs:documentation xml:lang="en"/>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="ArcSecond">
            <xs:annotation>
               <xs:documentation xml:lang="en"/>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="PartNature">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>OpenEnumeration</i>that defines the nature of a<i>PartVersion</i>. The nature specifies how the<i>PartVersion</i>can be used in the different processes or the significance of the<i>PartVersion</i>in the process.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PartNumberType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PartRelationType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines how the set of<i>acessoryParts</i>referenced by a<i>PartRelation</i>should be interpreted.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Mandatory">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>
                     <i>Mandatory</i>means that in a usage of a component<u>all</u>referenced<i>acessoryParts</i>must be used.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="Optional">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>
                     <i>Optional</i>means that in a usage of a component<u>some</u>referenced<i>acessoryParts</i>can be used by choice.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="OneOfAll">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>
                     <i>OneOfAll</i>means that in a usage of a component exactly<u>one</u>of the referenced<i>acessoryParts</i>must be selected.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="Custom">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>Custom means, that there is some kind of custom constraints / logic between referenced<i>PartVersions</i>that has to be evaluated to determine the selected accessories.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="PartStructureContentType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration that defines standard content types for the<i>PartStructureSpecification.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="part_structure"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PinApplianceType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Classifies the appliance of a Pin in terms of the duration of the appliance.</p>
            <p>E.g. the power supply pin of a power window has "shortTerm" PinApplianceType, in contrast to the head light which is a "long term".</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PinComponentType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the type of a<i>PinComponent</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PinCurrentType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the different available current types of a pin.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PinTimingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the different available timing types of a pin.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PinType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the type of a pin.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PinVoltageType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the different available voltage types of a pin.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PlacementType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the type for which a<i>PlaceableElement</i>can be used.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="placeable_element"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="OnWay">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>
                     <i>OnWay</i>refers to an<i>OnWayPlacement</i>.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="OnPoint">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>
                     <i>OnPoint</i>refers to an<i>OnPointPlacement</i>.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="PluggableTerminalType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid values for the type of PluggableTerminals. The type defines constraints about the numbers of wire and terminal receptions and their relations.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PowerConsumptionType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>PowerConsumptionTypes.</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PrimaryLockingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid primary locking types for terminals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="PrimaryPartType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The primary type of the part defines the type of the part (e.g. ConnectorHousing, Fixing, etc.) Since the VEC supports dual use parts (e.g. Fixing &amp; WireProtection) the primary part type is necessary to define which specification associated to part is the primary character of the part. Therefore, all primary part types correspond to a PartOrUsageRelatedSpecification (e.g. ConnectorHousing --&gt; ConnectorHousingSpecification).</p>
            <p>The primary part type '<i>Other</i>' is used if the PartVersion is not further specified by the VEC, which means it has no PartOrUsageRelatedSpecification, only a GeneralTechnicalPartSpecification or a direct instance of PartOrUsageRelatedSpecification.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Antenna"/>
         <xs:enumeration value="Battery"/>
         <xs:enumeration value="BoltMountedFixing"/>
         <xs:enumeration value="BoltTerminal"/>
         <xs:enumeration value="BridgeTerminal"/>
         <xs:enumeration value="CableDuct"/>
         <xs:enumeration value="CableSeal"/>
         <xs:enumeration value="CableSealPlug"/>
         <xs:enumeration value="CableTie"/>
         <xs:enumeration value="Capacitor"/>
         <xs:enumeration value="CavityAccessory"/>
         <xs:enumeration value="CavityPlug"/>
         <xs:enumeration value="CavitySeal"/>
         <xs:enumeration value="Coating"/>
         <xs:enumeration value="ConnectorHousing"/>
         <xs:enumeration value="ConnectorHousingCap"/>
         <xs:enumeration value="ConnectorHousingCover"/>
         <xs:enumeration value="CorrugatedPipe"/>
         <xs:enumeration value="Diode"/>
         <xs:enumeration value="EdgeMountedFixing"/>
         <xs:enumeration value="EEComponent"/>
         <xs:enumeration value="Ferrite"/>
         <xs:enumeration value="Fitting"/>
         <xs:enumeration value="Fixing"/>
         <xs:enumeration value="Fuse"/>
         <xs:enumeration value="Grommet"/>
         <xs:enumeration value="HoleMountedFixing"/>
         <xs:enumeration value="MultiCavityPlug"/>
         <xs:enumeration value="MultiCavitySeal"/>
         <xs:enumeration value="MultiFuse"/>
         <xs:enumeration value="Other">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The<i>PrimaryPartType</i>"<i>Other</i>" is used for parts that are described by a direct instance of<i>PartOrUsageRelatedSpecification</i>. These are parts that do not have a specific classification in the VEC and can be described with a<i>PartOrUsageRelatedSpecification</i>and<i>CustomProperties.</i>The corresponding<i>Role</i>is the<i>SpecificRole.</i>
                  </p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="OpenWireEndTerminal"/>
         <xs:enumeration value="OpenWireEnd">
            <xs:annotation>
               <xs:appinfo>
                  <mt:deprecated reason="The literal is violating VEC conventions. OpenWireEndTerminal shall be used."
                                 since="2.1.0"/>
               </xs:appinfo>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="PartStructure">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The<i>PrimaryPartType</i>"<i>PartStructure</i>" has an inconsistency with VEC conventions for historical reasons, which is kept for backwards compatibility. The corresponding<i>PartOrUsageRelatedSpecification</i>is the<i>PartStructureSpecification.</i>However, the corresponding<i>Role</i>is the<i>PartWithSubComponentsRole</i>.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="PluggableTerminal"/>
         <xs:enumeration value="PotentialDistributor"/>
         <xs:enumeration value="Relay"/>
         <xs:enumeration value="RingTerminal"/>
         <xs:enumeration value="ShrinkableTube"/>
         <xs:enumeration value="SpliceTerminal"/>
         <xs:enumeration value="Stripe"/>
         <xs:enumeration value="Tape"/>
         <xs:enumeration value="Terminal"/>
         <xs:enumeration value="TerminalProtection"/>
         <xs:enumeration value="Tube"/>
         <xs:enumeration value="Wire"/>
         <xs:enumeration value="WireEndAccessory"/>
         <xs:enumeration value="WireProtection"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="PrimaryResourceType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The primary type of the resource defines the type of the resource. In a future version of the VEC the<i>PrimaryResourceType</i>might correspond to<i>Specifications</i>describing the<i>ResourceVersion</i>(see<i>PrimaryPartType</i>).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="CrimpTool"/>
         <xs:enumeration value="ExtractionTool">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>A tool for safely extracting a terminal from a cavity without causing any damage.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="RelaisApplianceType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies the appliance type of a relais.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="RelaisType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the type of a relais (switching behavior).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="RobustnessClass">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the literals that shall be used for specific robustness classes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="RobustnessClassReferenceSystem">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the literals that shall be used for specific robustness class reference systems.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SealState">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the sealing state of the splice.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SealingGeometry">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid values of the geometry of a cavity sealing. It defines the cross-section geometry.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SecondaryLockingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid secondary locking types within slots (syn. Terminal Position Assurance).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SegmentCrossSectionAreaType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid values the type of the cross-section area of a<i>TopologySegment</i>, since a<i>TopologySegment</i>can have different cross section areas with different meanings in the process.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SegmentForm">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the SegmentForm.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SiPrefix">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of SI unit prefixes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Yotta"/>
         <xs:enumeration value="Zetta"/>
         <xs:enumeration value="Exa"/>
         <xs:enumeration value="Peta"/>
         <xs:enumeration value="Tera"/>
         <xs:enumeration value="Giga"/>
         <xs:enumeration value="Mega"/>
         <xs:enumeration value="Kilo"/>
         <xs:enumeration value="Hecto"/>
         <xs:enumeration value="Deca"/>
         <xs:enumeration value="Deci"/>
         <xs:enumeration value="Centi"/>
         <xs:enumeration value="Milli"/>
         <xs:enumeration value="Micro"/>
         <xs:enumeration value="Nano"/>
         <xs:enumeration value="Pico"/>
         <xs:enumeration value="Femto"/>
         <xs:enumeration value="Atto"/>
         <xs:enumeration value="Zepto"/>
         <xs:enumeration value="Yocto"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="SiUnitName">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of SI unit names. In difference to the SI-System gram is used as literal for the measurement of mass, instead of kilogram. Since a unit is formed with prefix and unit name gram would have to be defined as milli kilogram otherwise.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Metre"/>
         <xs:enumeration value="Gram"/>
         <xs:enumeration value="Second"/>
         <xs:enumeration value="Ampere"/>
         <xs:enumeration value="Kelvin"/>
         <xs:enumeration value="Mole"/>
         <xs:enumeration value="Candela"/>
         <xs:enumeration value="Radian"/>
         <xs:enumeration value="Steradian"/>
         <xs:enumeration value="Hertz"/>
         <xs:enumeration value="Newton"/>
         <xs:enumeration value="Pascal"/>
         <xs:enumeration value="Joule"/>
         <xs:enumeration value="Watt"/>
         <xs:enumeration value="Coulomb"/>
         <xs:enumeration value="Volt"/>
         <xs:enumeration value="Farad"/>
         <xs:enumeration value="Ohm"/>
         <xs:enumeration value="Siemens"/>
         <xs:enumeration value="Weber"/>
         <xs:enumeration value="Tesla"/>
         <xs:enumeration value="Henry"/>
         <xs:enumeration value="DegreeCelsius"/>
         <xs:enumeration value="Lumen"/>
         <xs:enumeration value="Lux"/>
         <xs:enumeration value="Becquerel"/>
         <xs:enumeration value="Gray"/>
         <xs:enumeration value="Sievert"/>
         <xs:enumeration value="Katal"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="SignalCurve">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SignalDirection">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of SignalDirections.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="net"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="In"/>
         <xs:enumeration value="Out"/>
         <xs:enumeration value="InOut"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="SignalForm">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SignalGraphRelationType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>This<i>OpenEnumeration</i>defines a set of predefined semantics for the<i>SignalGraphRelation</i>between two<i>SignalGraph</i>("from" &amp; "to").</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="signal_graph"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SignalInformationType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SignalSubType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SignalTransmissionMediumType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SignalType">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="signal"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SlotGender">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the gender of a slot.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SlotLayoutType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration that defines standard slot layouts. A slot layout represents the mechanical / geometrical properties / layout of the slot, not the electrical properties.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SlotSealingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the possible sealing types for a slot, if the slot shall be sealed in its usage.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="SpliceType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of type of splice.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="StatusOfApproval">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the state of an approval.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TapingDirection">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the direction in relation to the start &amp; end-Location of the corresponding placement. If no TapingDirection is defined it is arbitrary.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="FromStart"/>
         <xs:enumeration value="FromEnd"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="TemperatureType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TerminalBoltNominalSize">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the nominal sizes for threaded bolts as "ISO metric screw thread" or as "Unified Thread Standard" (Imperial).</p>
            <p>See also<i>TerminalBoltType.MetricThread / ImperialThread.</i>
            </p>
            <p>
               <i> </i>
            </p>
            <p>For the definition of the values see<a href="https://en.wikipedia.org/wiki/ISO_metric_screw_thread">https://en.wikipedia.org/wiki/ISO_metric_screw_thread</a>and<a href="https://de.wikipedia.org/wiki/Unified_Thread_Standard">https://de.wikipedia.org/wiki/Unified_Thread_Standard</a>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TerminalBoltType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TerminalDistanceType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>
               <i>OpenEnumeration</i>of possible<i>TerminalDistanceTypes</i>for<i>TerminalDistanceInformation</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TerminalPositionAssuranceState">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the valid states for the terminal position assurance (TPA, syn. secondary locking).</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TerminalReceptionGender">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <i>OpenEnumeration</i>
            <i>TerminalReception</i>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TerminalSealingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the possible sealing types for a terminal, if the terminal shall be sealed in its usage.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TopologyZoneType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>There can be various reasons to define TopologyZones. These can be differentiated with these type literals.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="topology"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TransmissionMediumType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TubeShape">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid shapes of the cross section of a tube.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TubeSlitStyle">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid types / styles of a slitted tube.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="TypeOfPermission">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the type of a permission.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="pdm"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="USUnitName">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of US unit names.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Thou"/>
         <xs:enumeration value="Inch"/>
         <xs:enumeration value="Foot"/>
         <xs:enumeration value="Yard"/>
         <xs:enumeration value="Chain"/>
         <xs:enumeration value="Furlong"/>
         <xs:enumeration value="Mile"/>
         <xs:enumeration value="League"/>
         <xs:enumeration value="FluidOunce"/>
         <xs:enumeration value="Gill"/>
         <xs:enumeration value="Pint"/>
         <xs:enumeration value="Quart"/>
         <xs:enumeration value="Gallon"/>
         <xs:enumeration value="Grain"/>
         <xs:enumeration value="Drachm"/>
         <xs:enumeration value="Ounce"/>
         <xs:enumeration value="Pound"/>
         <xs:enumeration value="Stone"/>
         <xs:enumeration value="Quarter"/>
         <xs:enumeration value="HundredWeight"/>
         <xs:enumeration value="Ton"/>
         <xs:enumeration value="Perch"/>
         <xs:enumeration value="Rood"/>
         <xs:enumeration value="Acre"/>
         <xs:enumeration value="AWG">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>American wire gauge (AWG), also known as the Brown &amp; Sharpe wire gauge, is a standardized wire gauge system used in the United States and Canada.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="UsageConstraintType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of the type of a UsageConstraint. Valid values are A<i>llow</i>and<i>Deny</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="usage_constraint"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Allow"/>
         <xs:enumeration value="Deny"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="UsageNodeType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the different types of<i>UsageNodes.</i>
            </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="usage_node"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="ValueDetermination">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Enumeration for the definition of a value determination. (see KBLFRM-316)</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="physical_information"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="Calculated">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The value is determined by a calculation algorithm.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="Measured">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The value is determined by an exact measurement.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
         <xs:enumeration value="Estimated">
            <xs:annotation>
               <xs:documentation xml:lang="en">
                  <p>The value is estimated by a person.</p>
               </xs:documentation>
            </xs:annotation>
         </xs:enumeration>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="VariantCodeType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration for the available types of the variant codes.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="VariantConfigurationType">
      <xs:annotation>
         <xs:documentation xml:lang="en"/>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="VariantGroupType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines valid values for the type of VariantGroups.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="variants"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="VecVersion">
      <xs:annotation>
         <xs:appinfo>
            <mt:package name="core"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="1.1.1"/>
         <xs:enumeration value="1.1.2"/>
         <xs:enumeration value="1.1.3"/>
         <xs:enumeration value="1.2.0"/>
         <xs:enumeration value="1.2.1"/>
         <xs:enumeration value="1.2.2"/>
         <xs:enumeration value="2.0.0"/>
         <xs:enumeration value="2.0.1"/>
         <xs:enumeration value="2.0.2"/>
         <xs:enumeration value="2.1.0"/>
         <xs:enumeration value="2.2.0"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="WindingFirmness">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the firmness with which a tape is applied to a segment.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="WindingType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p> Defines the type of taping.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_non_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="WireAddOnType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies possible values for the t<i>ype</i>of wire add-ons (e.g.<i>CavityAddOn</i>). </p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="WireElementShape">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Defines the shape of a wire element.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="WireGroupType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>OpenEnumeration for the types of wire groups.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="WireLengthType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>Specifies possible values for the<i>lengthType</i>of<i>WireLength</i>.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="instancing_electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="WireReceptionType">
      <xs:annotation>
         <xs:documentation xml:lang="en">
            <p>The<i>WireReceptionType</i>defines in an<i>OpenEnumeration</i>how a wire is joined with a wire reception.</p>
         </xs:documentation>
         <xs:appinfo>
            <mt:package name="electrical_parts"/>
         </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
</xs:schema>
