Business To Manufacturing Markup Language Extensions Version 6.0 - March 2013 B2MML-Extensions
Business To Manufacturing Markup Language Extensions Version 6.0 - March 2013 B2MML-Extensions
Markup Language
Extensions
Version 6.0 - March 2013
B2MML-Extensions
MESA • 107 S. Southgate Drive • Chandler, AZ 85226 USA • 480-893-6110 • [email protected] • www.mesa.org
B2MML-V0600-Extensions.docx
IMPORTANT: While the information, data, and standards provided in this publication were developed and are presented
in good faith in accordance with a reasonable process that was subject to intellectual property and antitrust policies to
benefit the industry as a whole, the publication is provided “as is” for information and guidance only, and there is no
representation or warranty of any type or kind, including but not limited to warranties of merchantability or fitness for a
particular purpose, and no warranty that use of the information, data, or standards will not infringe patent, copyright,
trademark, trade secret, or other intellectual property rights of any party.
Material from ANSI/ISA-88 and ANSI/ISA-95 series of standards used with permission of ISA - The Instrumentation,
Systems, and Automation Society, www.isa.org
Table of Contents
CHANGE HISTORY
Change Date Person Description
V03 26 Aug Dennis Brandl • Initial version to explain the extension methods. V0300
2005 Dave Emerson added substitution groups. One group added just
before each Any element.
V04 04 June Dennis Brandl • Added Transaction elements
2007
V0600 Oct 2008 Dennis Brandl • Added chapter 5 to show a custom schema
V0500 Mar 2011 Dennis Brandl • Updated version for ISA 95.02-2010 changes
• Removed the ##any extensions, except in back
supported Production schemas
V0600 Aug 2012 D. Brandl Updated MESA Copyright
SCHEMA SCOPE
This document defines the information that is used in the B2MML schemas to provide user defined extensions to the
schemas.
This information is based on the data models and attributes defined in the ANSI/ISA 95.00.02 Enterprise/Control System
Integration standard. Contact ISA (The Instrumentation, System, and Automation Society) for copies of the standard.
Additional information on the standard is available at www.isa.org.
EXTENSION METHODS
The B2MML schemas follow the ANSI/ISA 95 standard in user extensions. There are four methods for user extensions
which are defined within the standard itself;
1. properties
2. segments
3. process and product parameters
4. user extended enumerations
Each method is described below, even though they are not really schema extensions. These four methods are the
recommended method for the addition of project or company specific information.
However, there are situations where the four methods will not provide the required flexibility, readability, or validation.
Therefore in order to make the schemas more useful, selected elements include the ability for the elements to be
extended. The two methods for extending schemas are defined in this document, but the user defined extended
elements are not defined here and should not be considered understandable between applications without prior
agreement.
The recommended extension mechanisms are listed below:
1. Properties JJJ
• Define properties where available to avoid requiring schema extensions
2. Process and Product Parameters JJJ
• Define parameters for process segment specific information or for product specific information
3. Segments JJJ
• Define process segments to represent activity sets for business reasons
4. User Enumerations JJ
• Define project or company specific extensions to standard name lists
• No way to formally document user enumerations within a single schema
5. Substitution groups JJ
• New extension method in v0300
• Allows for XML validation of extended schemas
• Recommended method for schema extensions
6. Any element L
• Original B2MML extension method
• Validation turned off in v0200 in favor of substitution groups
• Removed in V0500 except in Production schemas
7. Customize base schemas LLL
• Changing core schemas is possible, the license allows any modification
• However, it makes interoperability impossible
• Not recommended
There are two types of schema extension methods defined (5 & 6), the first method uses substitution groups and
provides a method for extension that allows for validation of the extensions against a schema. It is the recommended
method to be used, if extensions are absolutely required.
The second extension method uses the XSD ##any definition and does not allow validation of the extensions against a
schema. This method is defined for those cases where validation of the extensions is not required or possible.
Properties
ANSI/ISA 95 defines “properties” as the standard method to add project or company specific information. Each project,
or company, may define the properties that are important to their information exchange. Properties are the method to
define the specific attributes of exchanged information about personnel, equipment, and material.
Properties are defined by either the end user (specifying what information they want to exchange), or by the ERP or MES
vendor (specifying what information they export and import), or by a combination of both
For example: Important information may be the equipment status (clean, sterile, and not available) and equipment location (production,
clean room, and warehouse). An equipment B2MML document may define the current value of the status and current equipment
location. A production schedule B2MMLdocument may specify that equipment to be used has a certain status (sterile). A production
performance B2MML document may specify the activity where the status and location changed.
For example: Important information may be the Octane level of a “Fuel” material class. In this case there may be multiple properties
defined:
<MaterialClass>
<ID “Fuel” />
<MaterialClassProperty> <ID “Octane.Target” /> </MaterialClassProperty>
<MaterialClassProperty> <ID “Octane.LowLimit” /> </MaterialClassProperty>
<MaterialClassProperty> <ID “Octane.HighLimit” /> </MaterialClassProperty>
</MaterialClassProperty>
A production schedule could then specify the target, high limit, and low limit for the fuel to be produced.
NOTE: There are no B2MML restrictions on property names, but there may be restrictions on sending or receiving systems. The example
above shows the use of a hierarchical name space using a “.” as the element separator.
You can use the class elements (personnel class, equipment class, material class, and material definition) to define the
exchanged properties. Property definitions don’t have to be dynamically exchanged; they can be statically defined or
entered as configuration information. However B2MML documents are a good way to document what definitions have
been agreed upon.
For example: If exchanging an equipment “Status” property, then the equipment class should have a “Status” property.
However, properties are only defined for personnel, equipment, and material objects. Therefore other user extension
methods have to be used for other information.
For example: A process parameter may be the results on environmental tests that were run (room temperature, humidity, last cleaned
date, number of people entering during production).
Process parameters are elements of data that are related to a process segment. The allowable process parameters may
be defined in a process segment B2MML document.
Product parameters are elements of data that are related to a product segment for a specific product. The allowable
product parameters may be defined in a product definition B2MML document.
For example: A product parameter may be the color to paint a part during a paint segment, or the tests to run on a part during an
inspection segment.
Parameter definitions don’t have to be dynamically exchanged. However ProcessSegment B2MML documents are a
good way to document what product independent parameters have been agreed upon, and ProductDefinition B2MML
documents are a good way to document what product specific parameters have been agreed upon.
NOTE: Parameter types are recursive (a parameter may contain a parameter), and each parameter may have multiple values (such as for
an array or a set of named elements). This flexibility allows parameters to represent very complex elements of exchanged data
(structures, arrays …)
There are no differences between process parameters and product parameters in production schedules and production
responses.
• A ProductionSchedule may define the values for parameters in ProductionParameters elements in
SegmentRequirementTypes.
• A ProductionPerformance may define values for parameters in ProductionData elements in
SegmentResponseTypes.
Segments
Process segments are used to identify activities that are visible to the business. These do not have to directly
correspond to production activities, but may correspond to summaries of activities, inspection, daily report, shift report,
etc …
Instead of adding elements under a segment, such as adding an “InspectionData” element under a
ProductionPerformance – SegmentResponse”, a new “Inspection” segment can be defined with specific process segment
parameters.
For example: The following B2MML segment defines a process segment and multiple parameters.
<ProcessSegment>
<ID “Inspection” />
<Parameter> <ID “InspectionLotNumber" /> </Parameter>
<Parameter> <ID “NumberOfInspections" /> </Parameter>
</ProcessSegment>
The following B2MML segment defines a Production Response with parameter values for the “Inspection” segment parameters.
<ProductionResponse>
<ID “2005-07-04AAA” />
<SegmentResponse>
<ID “SR5525" />
<ProcessSegmentID “Inspection” />
<ProductionData>
<ID “InspectionLotNumber" />
<Value “2005-07-04AAA123” />
</ProductionData>
<ProductionData>
<ID “NumberOfInspections" />
<Value “14” />
</ProductionData>
</ProductionResponse >
Schema definition:
<b2mml:CapabilityType>
Committed
</b2mml: CapabilityType >
Extended Namespace
When none of the previous extension methods will meet the requirements, then an extension mechanism using an end
user managed schema file has been defined. The extension mechanism provides for fully validated B2MML documents.
Each complex type that is not an enumerated set contains an XSD:GROUP reference. The reference is to the element
name in the “Extended” name space. The extended namespace is defined in the user editable b2mml-v0600-
extensions.xsd file. The user extensions may be the specific schema extensions, or the extensions file could import
company specific extensions.
The figure below shows how “Imports” and “Includes” are used in managing the extended name spaces.
B2MML B2MML
Import
Equipment Extensions
XSD XSD
Namespace
Reference
B2MML
XML End user
Document Namespace editable file
Reference
Basically the end user may edit the b2mml-v0600-extensions.xsd file to contain the added elements. It may include
company specific extensions or vendor supplied extensions.
For example: The following schema segment defines the “Extended:MaterialProducedRequirement” element within a
“MaterialProducedRequirementType”.
The following schema segment defines a sample user extension to MaterialProducedRequirement and includes two company specific
extensions:
<xsd:group name="MaterialProducedRequirement">
<xsd:sequence>
<xsd:element name="ByProduct" type="xsd:string" minOccurs="0"/>
<xsd:element name="ReservationNumber" type="xsd:string" minOccurs="0"/>
<xsd:element name="ReservationItem" type="xsd:string" minOccurs="0"/>
<xsd:group ref="AAA-Control:SpecialKey" minOccurs="0" maxOccurs="1"/>
<xsd:group ref="XYZ-Eng:SpecialKey" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
NOTE: When company specific extensions are added to an extended element, then the extended names spaces should be added in
alphabetical order with a minOccurs of 0, and all end users extended elements should be listed first. This allows the mixing of schemas
from different vendors, so that any B2MML document may have none, some, or all of the extensions without any element sequencing
problems.
The use of the extended namespace construct allows for intra-vendor or intra-company extensions to the schemas with
full schema validation, extending the number of places that they may be applied. The extended namespace does this
without affecting the ability to perform inter-vendor or inter-company information exchange as defined by the
standards for exchanged information in ANSI/ISA-95.
ANSI/ISA-95 Part 2 includes a list of objects and attributes, mapped as elements in the schemas, which can be used to
measure the completeness of an implementation. Excessive use of extended namespace constructs combined with
minimal coverage of supported objects will result in a minimal measure of completeness of an implementation.
##any Extensions
Each complex type in the Production schemas (ProductionSchedule, ProductionPerformance, ProductionCapability,
ProductDefinition) that is not an enumeration set contains the XSD element Any, which contains the element ##any.
This allows any user-defined element to be included at the end of the element sequence. The additional elements must
be defined in a schema whose namespace is referenced in order to create a valid XML document.
Schema definition:
<PersonnelCapabilityPropertyType>
<ID>XYZ Weigh Scale Certified</ID>
<Description ”Training in use and certified to use the XYZ Weigh SCALE” />
<Any>
<mySchema:CD>Class Date</mySchema:CD>
<mySchema:CG>Class Grade</mySchema:CG>
</Any>
</ PersonnelCapabilityPropertyType >
The use of the ##any construct allows for intra-vendor or intra-company extensions to the schemas, extending the
number of places that they may be applied. However the extensions can not be validated with the standard “AnyType”
definition. The ##any does this without effecting the ability to perform inter-vendor or inter-company information
exchange as defined by the standards for exchanged information in ANSI/ISA-95.
ANSI/ISA-95 Part 2 includes a list of objects and attributes, mapped as elements in the schemas, which can be used to
measure the completeness of an implementation. Excessive use of ##any constructs combined with minimal coverage
of supported objects will result in a minimal measure of completeness of an implementation.
Many of the transaction elements contain ##any constructs for compatibility with OAGiS transaction rules. The use if
the ##any constructs in the transaction elements is not recommended in B2MML.
<xsd:annotation>
<xsd:documentation>
This custom schema is developed within the infrastructure of the MESA Work
(including specifications, documents, software, and related items)
referred to as the Business To Manufacturing Markup Language (B2MML).
</xsd:documentation>
<xsd:documentation>
Revision History
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="EngineeringChangeOrderStateType">
<xsd:simpleContent>
<xsd:extension base="b2mml:CodeType"/>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>
About MESA: MESA promotes the exchange of best practices, strategies and innovation
in managing manufacturing operations and in achieving operations excellence. MESA’s
industry events, symposiums, and publications help manufacturers achieve
manufacturing leadership by deploying practical solutions that combine information,
business, manufacturing and supply chain processes and technologies. Visit us online at
http://www.mesa.org.
About the XML Committee: The XML Committe was formed within MESA to provide a
forum for the development of the B2MML and BatchML specifications.