Nexeed
    • Introduction
    • User manual
      • General descriptions
        • Result lists
        • Scope Concept
      • Basic setup
        • Connection management
        • Scope Management
          • Configuration Scopes
          • Reporting Scopes
      • Traceability
        • Types of evaluations
        • Search Forms for creating an evaluation
        • Part Protocol
          • Quick Search
          • Extended Search
          • Part View
          • Process View
          • Component View
          • Part Information
          • Process Information
        • Forward Search
          • Quick Search
          • Extended Search
        • Backward Search
        • Tool Usage
        • Packaging Information
          • Quick Search
          • Extended Search
      • Archiving
        • Enable archiving
        • Monitoring
      • Quality Gate
        • Types of Quality Gate Checks
        • Working with Test Specifications
        • Testing of Test Specifications
          • Basic test client
          • Expert test client
          • JSON based test client
      • Terms and definitions
        • Archiving states
        • Connection states
        • Packaging data
        • Part blocks
        • Process data
        • SPC session data
        • Test Specifications
    • Operations manual
      • Overview
      • System architecture and interfaces
        • Data Collector Service
        • Data Browser Service
        • Archiving Bridge Adapter Service
        • Configuration Service
        • Quality Gate Service
        • Reporting Service
        • Quality Database (QDB)
        • Archiving Bridge Adapter Service database
      • System requirements
      • Migration from previous versions
        • Migration from MES QualityData
        • Part Traceability upgrades
      • Setup and configuration
        • Base configuration
        • Quick start configuration
        • Application and service account roles
        • Scope-based configurations
        • Data Collector Service
        • Data Browser Service
        • Archiving Bridge Adapter Service
        • Reporting Service
        • Quality Database (QDB)
        • Module database
        • Archiving Bridge Adapter Service database (QDAB)
        • Resources in Part Traceability
        • Dos and don’ts in databases
      • Start and shutdown
      • Regular operations
      • Failure handling
      • Backup and restore
      • Logging and monitoring
      • Known limitations
    • Developer documentation
      • Deep Dives
        • Forwarding via Data Publisher
        • Resolving of Scopes
      • Quality Gate Checks
        • Structuring of Test Specifications
        • Input and output parameters
          • Check Block List
          • Check Complete (location based)
          • Check Complete (process based)
          • Check Component
          • Bypass Check Complete
          • Check Trace Mapping
          • Check Characteristics
      • Troubleshooting
    • API documentation
      • Data Browser Service
      • Data Collector Service
        • Structure and content of telegrams
          • basicInfo
          • partDetails
          • componentTrace
          • additionalInfo
          • packaging
      • Quality Gate Service
      • Archiving Bridge Adapter Service
    • Glossary
Part Traceability
  • Industrial Application System
  • Core Services
    • Block Management
    • Deviation Processor
    • ID Builder
    • Multitenant Access Control
    • Notification Service
    • Ticket Management
    • Web Portal
  • Shopfloor Management
    • Andon Live
    • Global Production Overview
    • KPI Reporting
    • Operational Routines
    • Shift Book
    • Shopfloor Management Administration
  • Product & Quality
    • Product Setup Management
    • Part Traceability
    • Process Quality
    • Setup Specs
  • Execution
    • Line Control
    • Material Management
    • Order Management
    • Packaging Control
    • Rework Control
  • Intralogistics
    • AGV Control Center
    • Stock Management
    • Transport Management
  • Machine & Equipment
    • Condition Monitoring
    • Device Portal
    • Maintenance Management
    • Tool Management
  • Enterprise & Shopfloor Integration
    • Archiving Bridge
    • Data Publisher
    • Direct Data Link
    • Engineering UI
    • ERP Connectivity
    • Gateway
    • Information Router
    • Master Data Management
    • Orchestrator

Nexeed Learning Portal

  • Part Traceability
  • API documentation
  • Data Collector Service
  • Structure and content of telegrams
  • partDetails

partDetails

The partDetails section primarily contains detailed information about processing results, such as parameters, characteristics and dimensions, errors, and other component data.

Sample XML telegram (complete)

This document describes the partDetails section of XML telegrams used in Part Traceability.

Click to unfold sample XML telegram
<?xml version="1.0" encoding="UTF-8"?>
<documents contentType="QualityData">
    <document>
            …
        <partDetails>
            <components/>
            <parameters/>
            <errors/>
            <group/>
            <references/>
            <extensionDataItems/>
        </partDetails>
    </document>
</documents>

Sample XML telegrams (detailed sections)

This section provides detailed examples of individual partDetails elements. Each subsection demonstrates the XML structure and usage patterns for specific elements within Part Traceability.

components

The components section contains Unique ID Components (A-components). These components can themselves be unique products with their own manufacturing processes and are provided as sub-elements within the partDetails section.

Click to unfold sample XML telegram
...
<components>
    <component class="FED" compIdentifier="" batch="" state="A" manufacturer="" typeNo="" posX="" posY="" posZ=""/>
    <component class="DEF" compIdentifier="" batch="" state="A" manufacturer="" typeNo="" posX="" posY="" posZ=""/>
    <component class="DEF" compIdentifier="" batch="" state="A" manufacturer="" typeNo="" posX="" posY="" posZ=""/>
    <component class="DEF" compIdentifier="" batch="" state="R" manufacturer="" typeNo="" posX="" posY="" posZ=""/>
</components>
...

parameters

The parameters section contains measurement parameters and their corresponding values with associated units that have been recorded during process execution. Each parameter provides the parameter name, measured value, and unit of measurement to deliver complete measurement context.

Click to unfold sample XML telegram
...
<parameters>
    <parameter name="Angle_1" checkType="" lowLim="" upLim="" resultState="" unit="" value="" paaRel="" resType="" dataType="" refId="" locDetail="" setValue="" />
    <parameter name="Torque_1" checkType="" lowLim="" upLim="" resultState="" unit="" value="" paaRel="" resType="" dataType="" refId="" locDetail="" setValue="" />
    <parameter name="Angle_1" checkType="" lowLim="" upLim="" resultState="" unit="" value="" paaRel="" resType="" dataType="" refId="" locDetail="" setValue=""/>
    <parameter name="Torque_2" checkType="" lowLim="" upLim="" resultState="" unit="" value="" paaRel="" resType="" dataType="" refId="" locDetail="" setValue=""/>
</parameters>
...

errors

The errors section contains detailed information about errors and issues that occurred during process execution. Each error entry provides comprehensive error details including error names, bit positions, error types, and additional diagnostic information to support troubleshooting and quality analysis.

Click to unfold sample XML telegram
...
<errors>
    <error name="ERR_01" bitPos="1" errType="" errNumber="" errInfo=""/>
    <error name="ERR_03" bitPos="3" errType="" errNumber="" errInfo=""/>
    <error name="ERR_04" bitPos="4" errType="" errNumber="" errInfo=""/>
    <error name="ERR_05" bitPos="5" errType="" errNumber="" errInfo=""/>
</errors>
...

group

The group-oriented production data processing is also supported by Part Traceability. It is mandatory that all individual parts that are grouped together and processed within a group must be registered with Part Traceability at the beginning of the manufacturing process. This means the first process result of the group (e.g. a panel) must contain the IDs of the individual products and their respective positions within the group. Subsequently, the individual product IDs can be omitted and work can be performed using only the group ID and respective position numbers.

Click to unfold sample XML telegram
...
<group>
    <results>
        <result pos="1" resultState="1" nioBits="0" identifier="DMC2293401"/>
        <result pos="2" resultState="1" nioBits="0" identifier="DMC2293402"/>
        <result pos="3" resultState="1" nioBits="0" identifier="DMC2293403"/>
        <result pos="4" resultState="1" nioBits="0" identifier="DMC2293404"/>
        <result pos="5" resultState="1" nioBits="0" identifier="DMC2293405"/>
        <result pos="6" resultState="1" nioBits="0" identifier="DMC2293406"/>
    </results>
    <parameters>
        <parameter pos="1" name="Angle" checkType="" lowLim="" upLim="" resultState="" unit="" value="12" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
        <parameter pos="1" name="Torque" checkType="" lowLim="" upLim="" resultState="" unit="" value="13" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
        <parameter pos="2" name="Angle" checkType="" lowLim="" upLim="" resultState="" unit="" value="14" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
        <parameter pos="2" name="Torque" checkType="" lowLim="" upLim="" resultState="" unit="" value="15" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
    </parameters>
    <errors>
        <error pos="0" name="" bitPos="" errType="" errNumber="" errInfo=""/>
    </errors>
    <extensionDataItem>
        <extensionData type="TOOL">
            <item pos="1" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" consumption="0" consumption="0"/>
            <item pos="2" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" consumption="1" consumption="0"/>
        </extensionData>
    </extensionDataItems>
</group>
...

The core information is provided in the result section of the group node. Each component in the associated group (e.g. a panel) receives its position and, once available, the individual part identification. The group node must be provided at minimum for proper insertion of group data (results, errors, parameters, …​).

The group node is only considered, if the groupFlag in the basicInfo section is set to 1 or 2. If the value is NULL or 3, the group node is ignored.

nioBits in group-based data processing

  • If the value of the nioBits entry in basicInfo or results is 0, then no nioBits error is written to the database.

  • If a results section is present and the groupFlag in basicInfo is set, then the nioBits from the results at the individual positions are always set and the nioBits in basicInfo are ignored.

  • If no results section is present and the groupFlag in basicInfo is set, then the nioBits from basicInfo are applied to all positions in the group (e.g. a panel).

results

The results section within the group node contains information about individual components and their processing results within a grouped manufacturing context. Each result entry specifies the position of a component within the group (such as a panel), its processing outcome, and any associated error codes or identifiers.

Click to unfold sample XML telegram
...
<results>
    <result pos="1" resultState="1" nioBits="0" identifier="DMC2293401"/>
    <result pos="2" resultState="1" nioBits="0" identifier="DMC2293402"/>
    <result pos="3" resultState="1" nioBits="0" identifier="DMC2293403"/>
    <result pos="4" resultState="1" nioBits="0" identifier="DMC2293404"/>
    <result pos="5" resultState="1" nioBits="0" identifier="DMC2293405"/>
    <result pos="6" resultState="1" nioBits="0" identifier="DMC2293406"/>
</results>
...

parameters

The parameters section within the group node contains measurement parameters and their corresponding values with associated units that have been recorded during group-based process execution. Each parameter provides the parameter name, measured value, unit of measurement, and position reference to deliver complete measurement context for components within the group processing environment.

Click to unfold sample XML telegram
...
<parameters>
    <parameter pos="1" name="Angle" checkType="" lowLim="" upLim="" resultState="" unit="" value="12" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
    <parameter pos="1" name="Torque" checkType="" lowLim="" upLim="" resultState="" unit="" value="13" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
    <parameter pos="2" name="Angle" checkType="" lowLim="" upLim="" resultState="" unit="" value="14" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
    <parameter pos="2" name="Torque" checkType="" lowLim="" upLim="" resultState="" unit="" value="15" paaRel="" resType="" dataType="3" refId="" locDetail=""/>
</parameters>
...

errors

The errors section within the group node contains detailed information about errors and issues that occurred during group-based process execution. Each error entry provides comprehensive error details including error names, bit positions, error types, and position reference within the group to support troubleshooting and quality analysis in grouped manufacturing environments.

Click to unfold sample XML telegram
...
<errors>
    <error pos="0" name="" bitPos="" errType="" errNumber="" errInfo=""/>
</errors>
...

extensionDataItems (type = WAFER)

The extensionDataItems section is optional and allows storing additional specific data using extensionDataItems. Currently, additional wafer and tool data can be stored using the extensionData section. The type attribute with the value WAFER or TOOL must be defined on the extensionData section. Within this section, an item is created for each individual wafer and tool position.

Click to unfold sample XML telegram
...
<extensionDataItems>
    <extensionData type="WAFER">
        <item pos="1" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="0" waferY="0" destination="R300"/>
        <item pos="2" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="1" waferY="0" destination="R300"/>
        <item pos="3" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="2" waferY="0" destination="R300"/>
        <item pos="4" identifier="g0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="0" waferY="0" destination="R300"/>
        <item pos="5" identifier="g0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="1" waferY="1" destination="R300"/>
        <item pos="6" identifier="g0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="2" waferY="2" destination="R300"/>
    </extensionData>
</extensionDataItems>
...

Difference to single-part-oriented data processing: On the item element, the pos attribute is set, which references the wafer or tool assembly information to the respective part in the group.

extensionData type = WAFER: On the item element, the pos attribute is set, which references the wafer assembly information to the respective part in the group.

extensionDataItems (type = TOOL)

The extensionDataItems section with type = TOOL allows storing additional tool-specific data for group-based processing. Each item within this section contains tool consumption information and references the specific position within the group where the tool was utilized during manufacturing.

Click to unfold sample XML telegram
...
<extensionDataItems>
    <extensionData type="TOOL">
        <item pos="1" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" consumption="0" consumption="0"/>
        <item pos="2" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" consumption="1" consumption="0"/>
    </extensionData>
</extensionDataItems>
...

extensionData type = TOOL: On the item element, the pos attribute is set, which references the processed part in the group.

References

The references section is used to link a rework process with its corresponding failure or error position.

Click to unfold sample XML telegram
...
<references>
    <reference targetId="31bc1a64-579d-45ee-aa9e-1aa3e4dc6f98" type="0" category="2" paramName="" refValue="" refString=""/>
</references>
...

extensionDataItems (type = WAFER)

The extensionData section is optional and allows storing additional specific data using extensionDataItems. Currently, additional wafer data can be stored using the extensionData section. The type attribute with the value WAFER must be defined on the extensionData section. Within this section, an item is created for each individual wafer position.

Click to unfold sample XML telegram
...
<extensionDataItems>
    <extensionData type="WAFER">
        <item identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="0" waferY="0" destination="R300"/>
        <item identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="1" waferY="0" destination="R301/>
        <item identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" waferX="2" waferY="0" destination="R302/>
        <item identifier="gbf3b89-5e83-40d9-b660-7e5531aa9351" waferX="0" waferY="0" destination="R303/>
        <item identifier="gbf3b89-5e83-40d9-b660-7e5531aa9351" waferX="1" waferY="1" destination="R304>
        <item identifier="gbf3b89-5e83-40d9-b660-7e5531aa9351" waferX="2" waferY="2" destination="R305/>
    </extensionData>
</extensionDataItems>
…

extensionDataItems (type = TOOL)

The extensionData section is optional and allows storing additional specific data using extensionDataItems. Currently, additional wafer data can be stored using the extensionData section. The type attribute with the value WAFER must be defined on the extensionData section. Within this section, an item is created for each individual wafer position.

Click to unfold sample XML telegram
...
<extensionDataItems>
    <extensionData type="TOOL">
        <item pos="1" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" consumption="0" consumption="0"/>
        <item pos="2" identifier="f0bf3b89-5e83-40d9-b660-7e5531aa9351" consumption="1" consumption="0"/>
    </extensionData>
</extensionDataItems>
...

XSD file

A partDetails XSD file is available for download.

Click to unfold partDetails XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://opcon.dc.modules.qualitydata/dtos/part"
           xmlns="http://opcon.dc.modules.qualitydata/dtos/part"
           xmlns:basic="http://opcon.dc.modules.qualitydata/dtos/basic"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">
  <!-- Import basicInfo schema for AllowedUnicodePlus type -->
  <xs:import namespace="http://opcon.dc.modules.qualitydata/dtos/basic" schemaLocation="basicInfo.xsd"/>

  <!-- ===== Common primitives ===== -->
  <xs:simpleType name="ResultStateEnum">
    <xs:restriction base="xs:integer">
      <xs:enumeration value="-1"/>      <!-- no state -->
      <xs:enumeration value="0"/>      <!-- not measured -->
      <xs:enumeration value="1"/>      <!-- OK -->
      <xs:enumeration value="2"/>      <!-- NOK -->
      <xs:enumeration value="3"/>      <!-- abort -->
      <xs:enumeration value="4"/>      <!-- too small -->
      <xs:enumeration value="5"/>      <!-- too big -->
      <xs:enumeration value="6"/>      <!-- range too big -->
      <xs:enumeration value="7"/>      <!-- timeout -->
      <xs:enumeration value="8"/>      <!-- string comparison wrong -->
      <xs:enumeration value="9"/>      <!-- measured -->
      <xs:enumeration value="10"/>      <!-- pulled out -->
      <xs:enumeration value="11"/>      <!-- element not used -->
      <xs:enumeration value="12"/>      <!-- scrapped -->
      <xs:enumeration value="13"/>      <!-- in process -->
      <xs:enumeration value="255"/>      <!-- incomplete -->
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NioBits_0_31">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="31"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="EmptyOrInteger">
      <xs:union>
          <xs:simpleType>
              <xs:restriction base="xs:integer"/>
          </xs:simpleType>
          <xs:simpleType>
              <xs:restriction base="xs:string">
                  <xs:length value="0"/>
              </xs:restriction>
          </xs:simpleType>
      </xs:union>
  </xs:simpleType>

  <xs:simpleType name="PosInt">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NonNegInt3Digits">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="999"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="EmptyOrNonNegInt3Digits">
    <xs:union memberTypes="NonNegInt3Digits EmptyString"/>
  </xs:simpleType>

  <xs:simpleType name="EmptyOrErrorType">
    <xs:union memberTypes="ErrorTypeEnum EmptyString"/>
  </xs:simpleType>


  <xs:simpleType name="IntRange_1e6">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="-1000000"/>
      <xs:maxInclusive value="1000000"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NonNegInt_1e6">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="1000000"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="BigInt38NonNeg">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:totalDigits value="38"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Str255">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="255"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Str100">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="100"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Str80">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="80"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="EmptyOrStr80">
      <xs:union memberTypes="Str80 EmptyString"/>
  </xs:simpleType>

  <xs:simpleType name="Str30">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="30"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Str20">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="20"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="EmptyOrStr20">
      <xs:union memberTypes="Str20 EmptyString"/>
  </xs:simpleType>

  <xs:simpleType name="Str16">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="16"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Str3">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="3"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Str1">
    <xs:restriction base="basic:AllowedUnicodePlus">
      <xs:maxLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- allow empty string or decimal (for lowLim/upLim="") -->
  <xs:simpleType name="EmptyOrDecimal">
    <xs:union memberTypes="xs:decimal">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:length value="0"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:simpleType name="EmptyString">
      <xs:restriction base="xs:string">
          <xs:length value="0"/>
      </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ErrorTypeEnum">
    <xs:restriction base="xs:integer">
      <xs:enumeration value="1"/>      <!-- nioBit error -->
      <xs:enumeration value="2"/>      <!-- User-defined error with specific name and specific number. -->
      <xs:enumeration value="3"/>      <!-- PseudoError. Trigger job / cyclic job that checks for missing error numbers. -->
      <xs:enumeration value="4"/>      <!-- Actions. The value represents an "action" code for a specific "repair" task. -->
      <xs:enumeration value="5"/>      <!-- Causes. The value represents an associated error cause code. -->
    </xs:restriction>
  </xs:simpleType>

  <!-- ===== components/component ===== -->
  <xs:complexType name="Component">
    <xs:attribute name="compIdentifier" type="Str80" use="required"/>    <!-- Unique component identifier (per process). -->
    <xs:attribute name="class" type="Str3" use="optional"/>    <!--Component class (used for characterization).-->
    <xs:attribute name="batch" type="EmptyOrStr80" use="optional"/>    <!--The associated batch number.-->
    <xs:attribute name="state" use="optional">
      <xs:simpleType>
        <xs:restriction base="Str1">
          <xs:enumeration value="A"/>          <!-- Assembled -->
          <xs:enumeration value="R"/>          <!-- Removed -->
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="typeNo" type="Str20" use="optional"/>    <!--The associated type number.-->
    <xs:attribute name="manufacturer" type="Str30" use="optional"/>    <!--Component manufacturer-->
    <xs:attribute name="posX" type="IntRange_1e6" use="optional"/>    <!--Relative x-position.-->
    <xs:attribute name="posY" type="IntRange_1e6" use="optional"/>    <!--Relative y-position.-->
    <xs:attribute name="posZ" type="IntRange_1e6" use="optional"/>    <!--Relative z-position.-->
  </xs:complexType>

  <xs:complexType name="Components">
    <xs:sequence>
      <xs:element name="component" type="Component" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <!-- ===== parameters/parameter ===== -->
  <xs:simpleType name="ParameterDataTypeEnum">
    <xs:restriction base="xs:integer">
      <xs:enumeration value="2"/>      <!-- short -->
      <xs:enumeration value="3"/>      <!-- integer -->
      <xs:enumeration value="4"/>      <!-- float -->
      <xs:enumeration value="5"/>      <!-- double -->
      <xs:enumeration value="8"/>      <!-- string -->
      <xs:enumeration value="11"/>      <!-- boolean -->
      <xs:enumeration value="16"/>      <!-- signed integer -->
      <xs:enumeration value="17"/>      <!-- byte -->
      <xs:enumeration value="18"/>      <!-- unsigned short -->
      <xs:enumeration value="19"/>      <!-- unsigned integer -->
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="Parameter">
    <xs:attribute name="pos" type="PosInt" use="optional"/>           <!-- Position number of the associated component on the panel, only required for group-based data -->
    <xs:attribute name="name" type="Str255" use="required"/>          <!-- Name of the parameter -->
    <xs:attribute name="checkType" type="xs:integer" use="optional"/> <!-- Type of tolerance evaluation -->
    <xs:attribute name="lowLim" type="EmptyOrDecimal" use="optional"/> <!-- Lower limit of the parameter -->
    <xs:attribute name="upLim" type="EmptyOrDecimal" use="optional"/>    <!-- Upper limit of the parameter -->
    <xs:attribute name="resultState" type="ResultStateEnum" use="optional"/>    <!-- Result evaluation describing the measurement state -->
    <xs:attribute name="unit" type="Str16" use="optional"/>                     <!-- Unit of the parameter -->
    <xs:attribute name="value" type="Str255" use="optional"/>                   <!-- The required parameter value. The corresponding type is defined in the dataType attribute. For dataType = 8 (String), a maximum field length of 255 characters applies -->
    <xs:attribute name="paaRel" type="BigInt38NonNeg" use="optional"/>          <!-- PAA relevance value -->
    <xs:attribute name="dataType" type="ParameterDataTypeEnum" use="optional"/>  <!-- The data type of the current parameter. If no value is provided here, the current parameter is treated as String (value 8) by default -->
    <xs:attribute name="refId" type="xs:positiveInteger" use="optional"/>        <!-- ID of the referenced repository document (for internal use only) -->
    <xs:attribute name="locDetail" type="Str30" use="optional"/>        <!-- Granular location information -->
    <xs:attribute name="setValue" type="xs:decimal" use="optional"/>    <!-- The target value of the current parameter. The corresponding type is defined in the dataType attribute and is normally the same as the value type. For dataType=8 (String), a maximum field length of 100 characters applies. -->
  </xs:complexType>

  <xs:complexType name="Parameters">
    <xs:sequence>
      <xs:element name="parameter" type="Parameter" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <!-- ===== errors/error ===== -->
  <xs:complexType name="Error">
    <xs:attribute name="pos" type="PosInt" use="required"/>              <!-- Position number of the associated component on the panel, only required for group-based data -->
    <xs:attribute name="name" type="Str255" use="required"/>             <!-- Name of the error: `ERR_01`, `ERR_02`, ..., `ERR_31` or `ERR_32` should not be used, as these names are used as default values for recording nioBits errors -->
    <xs:attribute name="bitPos" type="EmptyOrNonNegInt3Digits" use="optional"/> <!-- The bit position where the error occurred -->
    <xs:attribute name="errType" type="EmptyOrErrorType" use="optional"/>      <!-- The error type. Optional information that is currently not used. The value is intended for error categorization, see table below -->
    <xs:attribute name="errNumber" type="EmptyOrStr20" use="optional"/>         <!-- Alphanumeric error number -->
    <xs:attribute name="errInfo" type="xs:string" use="optional"/>       <!-- Additional error information (text). The value is currently not stored in the database schema -->
  </xs:complexType>

  <xs:complexType name="Errors">
    <xs:sequence>
      <xs:element name="error" type="Error" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <!-- ===== results/result ===== -->
  <xs:complexType name="Result">
    <xs:attribute name="pos" type="PosInt" use="required"/>                     <!-- Position number of the component on the panel, only required for group-based data -->
    <xs:attribute name="resultState" type="ResultStateEnum" use="required"/>    <!-- The associated single-part result describing the Measurement state. -->
    <xs:attribute name="nioBits" type="NioBits_0_31" use="required"/>           <!-- The code value for possible errors. If the value is 0, it is the same as if the nioBits field is not set and will not be entered. If a Results section (or array) is present in the telegram, the nioBits from the basicInfo section will not be entered. -->
    <xs:attribute name="identifier" type="xs:string" use="optional"/>           <!-- The associated individual part identifier (if available).-->
  </xs:complexType>

  <xs:complexType name="Results">
    <xs:sequence>
      <xs:element name="result" type="Result" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <!-- ===== references/reference ===== -->
  <xs:simpleType name="ReferenceTypeEnum">
    <xs:restriction base="xs:integer">
      <xs:enumeration value="0"/>      <!-- Result/Param -->
      <xs:enumeration value="1"/>      <!-- Error -->
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ReferenceCategoryInt">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="10"/>      <!-- category range -->
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="Reference">
    <xs:attribute name="targetId" type="Str80" use="required"/>                  <!--The internal identifier of the associated process result-->
    <xs:attribute name="type" type="ReferenceTypeEnum" use="required"/>          <!--The relation/reference type     0 - Result / Parameter1 - Error-->
    <xs:attribute name="category" type="ReferenceCategoryInt" use="required"/>   <!--The relation / reference category-->
    <xs:attribute name="paramName" type="Str80" use="optional"/>                 <!--The name of the affected parameter-->
    <xs:attribute name="refValue" type="xs:double" use="optional"/>              <!--(Optional) Reference value-->
    <xs:attribute name="refString" type="Str100" use="optional"/>                <!--(Optional) Reference string-->
  </xs:complexType>

  <xs:complexType name="References">
    <xs:sequence>
      <xs:element name="reference" type="Reference" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <!-- ===== extensionDataItems/extensionData ===== -->
  <xs:simpleType name="ExtensionTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="WAFER"/>     <!-- wafer data -->
      <xs:enumeration value="TOOL"/>      <!-- tool data -->
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ExtensionDataItems">
    <xs:sequence>
      <xs:element name="extensionData" type="ExtensionData" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Base type for extension items -->
  <xs:complexType name="ExtensionItemBase" abstract="true">
    <xs:attribute name="pos" type="IntRange_1e6" use="optional"/>
    <xs:attribute name="identifier" type="Str80" use="required"/>
  </xs:complexType>

  <!-- WAFER-specific item -->
  <xs:complexType name="WaferItem">
    <xs:complexContent>
      <xs:extension base="ExtensionItemBase">
        <xs:attribute name="waferX" type="IntRange_1e6" use="optional"/>       <!-- Position in x-direction from where the material was taken -->
        <xs:attribute name="waferY" type="IntRange_1e6" use="optional"/>       <!-- Position in y-direction from where the material was taken -->
        <xs:attribute name="destination" type="Str80" use="optional"/>         <!-- Is a RefDes, and indicates the location where the part was installed -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- TOOL-specific item -->
  <xs:complexType name="ToolItem">
    <xs:complexContent>
      <xs:extension base="ExtensionItemBase">
        <xs:attribute name="consumption" type="NonNegInt_1e6" use="optional"/>           <!-- Consumption -->
        <xs:attribute name="consumptionNIO" type="NonNegInt_1e6" use="optional"/>        <!-- NiO consumption -->      
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ExtensionData">
    <xs:sequence>
      <xs:element name="item" minOccurs="1" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="ExtensionItemBase">
              <!-- WAFER-specific attributes -->
              <xs:attribute name="waferX" type="IntRange_1e6" use="optional"/>
              <xs:attribute name="waferY" type="IntRange_1e6" use="optional"/>
              <xs:attribute name="destination" type="Str80" use="optional"/>
              <!-- TOOL-specific attributes -->
              <xs:attribute name="consumption" type="NonNegInt_1e6" use="optional"/>
              <xs:attribute name="consumptionNIO" type="NonNegInt_1e6" use="optional"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="type" type="ExtensionTypeEnum" use="required"/>
    <!-- Type of extension data: WAFER or TOOL -->
  </xs:complexType>

  <!-- ===== group & partDetails ===== -->
  <xs:complexType name="Group">
    <xs:sequence>
      <xs:element name="results" type="Results" minOccurs="0"/>            <!-- Contains position-based results for each component in the group. Each component receives its position and individual part identification. -->
      <xs:element name="extensionDataItems" type="ExtensionDataItems" minOccurs="0"/>      <!-- Optional additional data (wafer/tool). The pos attribute references data to respective parts in the group. -->
      <xs:element name="components" type="Components" minOccurs="0"/>      <!-- Unique ID Components (A-components) that are part of this group. -->
      <xs:element name="parameters" type="Parameters" minOccurs="0"/>      <!-- Position-based measurement parameters. The pos attribute references the associated component on the panel. -->
      <xs:element name="errors" type="Errors" minOccurs="0"/>              <!-- Position-based errors. The pos attribute references the associated component on the panel. -->
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PartDetails">
    <xs:sequence>
      <xs:element name="group" type="Group" minOccurs="0" maxOccurs="unbounded"/>      <!-- Optional group elements for group-based data -->
      <xs:element name="extensionDataItems" type="ExtensionDataItems" minOccurs="0"/>  <!-- Optional wafer/tool data (can be at top level regardless of group) -->
      <xs:element name="components" type="Components" minOccurs="0"/>                  <!-- Unique ID Components (A-components) as sub-elements -->
      <xs:element name="parameters" type="Parameters" minOccurs="0"/>                  <!-- Measurement parameters and properties -->
      <xs:element name="errors" type="Errors" minOccurs="0"/>                          <!-- Error information and properties -->
      <xs:element name="references" type="References" minOccurs="0"/>                  <!-- References linking rework with failures -->
    </xs:sequence>
  </xs:complexType>

  <xs:element name="partDetails" type="PartDetails"/>

</xs:schema>

Contents

© Robert Bosch Manufacturing Solutions GmbH 2023-2025, all rights reserved

Changelog Corporate information Legal notice Data protection notice Third party licenses