b2mml v01 Common
b2mml v01 Common
Business To Manufacturing
Markup Language
B2MML
Version 01
April 7, 2002
Common Schema
Documentation
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
1 Schema Scope..................................................................................................................................... 3
1.1 Key Information Assumptions........................................................................................................ 3
1.2 Key Use Assumptions................................................................................................................... 3
1.3 Type Names.................................................................................................................................. 3
1.4 User Element Extensibility............................................................................................................. 3
1.5 User Enumeration Extensibility...................................................................................................... 4
1.6 Use of IDs in Schema Definitions.................................................................................................. 5
1.7 Diagram Convention...................................................................................................................... 6
2 Element Definitions............................................................................................................................... 7
Change History:
Change Date Person Description
V01 7 April 2002 Dennis Brandl Initial release
Dave Emerson
Copyright © 2002 The World Batch Forum. All Rights Reserved. http://www.wbf.org
This World Batch Forum Work (including specifications, documents, software, and related items)
referred to as the Business To Manufacturing Markup Language (B2MML) is provided by the
copyright holders under the following license.
Permission to use, copy, modify, or redistribute this Work and its documentation, with or without
modification, for any purpose and without fee or royalty is hereby granted provided the World
Batch Forum is acknowledged as the originator of this Work using the following statement:
"The Business To Manufacturing Markup Language (B2MML) is used courtesy of the World Batch
Forum."
In no event shall the World Batch Forum, its members, or any third party be liable for any costs,
expenses, losses, damages or injuries incurred by use of the Work or as a result of this
agreement.
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
1 Schema Scope
This document defines the information that is used in common by B2MML personnel, equipment, materials,
maintenance, capabilities, product definition, production schedule, and production performance 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.
The common schema defines data types used in the other schemas.
Schema definition:
<xsd:element name = "SubmissionDate" type = " SubmissionDate Type"/>
Each complex type that is not an enumeration set contains the XSD 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:
<xsd:complexType name = "TestResultType" >
<xsd:sequence>
<xsd:element name = "ID" type = "IDType" minOccurs = "0" maxOccurs = "1"/>
<xsd:element name = "Description" type = "DescriptionType" minOccurs = "0" maxOccurs = "unbounded"/>
<xsd:element name = "DateTime" type = "DateTimeType" minOccurs = "0" maxOccurs = "1"/>
<xsd:element name = "Result" type = "ResultType" minOccurs = "0" maxOccurs = "1"/>
<xsd:element name = "UnitOfMeasure" type = "UnitOfMeasureType" minOccurs = "0" maxOccurs = "1"/>
<xsd:element name = "ExpirationTime" type = "ExpirationTimeType" minOccurs = "0" maxOccurs = "1"/>
<xsd:any namespace="##any" minOccurs = "0" maxOccurs = "unbounded"/>
</xsd:sequence>
</xsd:complexType>
The use of the ##any construct allows for easy intra-vendor or intra-company extensions to the schemas,
extending the number of places that they may be applied. 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, that 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.
To provide for user extended enumerations all types that contain enumerated values have an enumeration
value of “Other” and an attribute of “OtherValue”. Any element, in an instance document, with an extended
enumeration should use the enumeration value of Other and place the actual enumeration in the OtherValue
attribute.
The enumerations and “OtherValue” attribute are added in two steps in the schemas. This is done due to a
restriction in W3C schemas that prevent restrictions (enumeration values) and extensions (adding an
attribute) at the same time. The complex type naming convention used is a “1” in the name of temporary
complex type (complex type name = ‘element name’ + ‘1’ + ‘Type’) and the same name without the ‘1’ for the
final complex type name. The two step process can be ignored by XML authors as the temporary type is not
intended for use in XML documents.
Schema definition:
<xsd:complexType name = "CapabilityType1Type">
<xsd:simpleContent>
<xsd:restriction base = "xsd:string">
<xsd:enumeration value = "Committed " />
<xsd:enumeration value = "Available " />
<xsd:enumeration value = "Unattainable" />
<xsd:enumeration value = "Other" />
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<b2mml:CapabilityType>
Committed
</b2mml: CapabilityType >
This will usually require translation of the element IDs from one system’s internal identification into a
standard representation. For example, a unit may be identified as resource “R100011” in the scheduling
system and “East Side Reactor” in the manufacturing system. A unique identification set must be agreed to in
order to exchange information. Often the IDs may be the IDs of one or the other system in an exchange,
assuming that the IDs are unique (within the scope of the exchanged information)
The element IDs are defined only to identify objects within related exchanged information sets. The element
IDs are not intended to act as global object IDs or database index attributes.
Generally elements that are elements of aggregations, and are not referenced elsewhere in the model, do
not require unique IDs.
Where unique identification of elements is required for other reasons, such as for XSLT transformations, then
the “##any” construct can be used to add application specific IDs to elements.
I n d ic a t e s a n e le m e n t
I n d ic a t e s t y p e o f e le m e n t
I n d ic a t e s 0 o r 1 in s t a n c e s
I n d ic a t e s 0 o r m a n y in s t a n c e s
I n d ic a t e s 1 a n d o n ly 1 in s t a n c e
I n d ic a t e s a s e le c t io n o f 1 e le m e n t o n ly
O p t io n a l a n d r e p e a t a b le c h o ic e
I n d ic a t e s n o c o n t a in e d e le m e n t s
I n d ic a t e s c o n t a in e d e le m e n t s
I n d ic a t e s a n a t t r ib u t e
I n d ic a t e s a t t r ib u t e s o f e le m e n t
I n d ic a t e s e x t e n s ib le e le m e n t s
##any nam espace
2 Element Definitions
Type Name Description
ActualEndTimeType A date/time defining an actual ending time of an element.
ActualFinishType A date/time defining an actual time an element finished.
ActualStartTimeType A date/time defining an actual starting time of an element
BillOfMaterialIDType A string containing an identification of a material in a bill of material
for a product
BillOfMaterialsIDType A string containing an identification of a bill of materials for a
product.
BillOfResourcesIDType A string containing an identification of a bill of resources for a
product.
CapabilityTypeType Identifies the type of a capability/capacity definition.
This may be either a standard type or an application specific
extended type. Standard enumerations are: "Committed",
"Available", "Unattainable", and "Other".
Committed The portion of a production capacity that is
currently in use or is scheduled for use.
Available The portion of a production capacity that is
currently available for use.
Unattainable The portion of a production capacity that is
currently not available for use, for example due to scheduled
maintenance, unscheduled maintenance, or the current
product mix.
If “Other” then the type is an application specific extension and the
value is defined in the attribute “OtherValue”.
CauseType A string containing the cause description of a maintenance
response.
CertificateOfAnalysisReferenceType A string containing a reference (or ID) of a certification of analysis.
ConsumableType A string containing the definition of a consumable resource used in
a maintenance element.
CorrectionType A string containing the description of the correction of a
maintenance element.
DataTypeType An identification of the type of a parameter. These types are based
on the W3C types defined in the XSD specification, with the
addition of “Enumeration” for user defined enumerations and
“Other” for application specific extended types.
This may be either a standard type or an application specific
extended type. Standard enumerations are:
“string", "byte", "unsignedByte", "binary", "integer",
"positiveInteger", "negativeInteger", "nonNegativeInteger",
"nonPositiveInteger", "int", "unsignedInt", "long",
"unsignedLong", "short", "unsignedShort", "decimal", "float",
"double", "boolean", "time", "timeInstant", "timePeriod",
"duration", "date", "month", "year", "century", "recurringDay",
"recurringDate", "recurringDuration", "Name", "QName",
"NCName", "uriReference", "language", "ID", "IDREF",
"IDREFS", "ENTITY", "ENTITIES", "NOTATION", "NMTOKEN",
"NMTOKENS", "Enumeration", and "Other".
If “Other” then the type is an application specific extension and the
value is defined in the attribute “OtherValue”.
supply the “Area” name, because the site and enterprise are
implicitly defined through the messaging system.
7).
ProblemType A string containing a description of a problem in a maintenance
request.
ProcessSegmentIDType A string containing an identification of a process segment.
ProductionRequestIDType A string containing an identification of a production request.
ProductionScheduleIDType A string containing an identification of a production schedule.
ProductProductionRuleIDType A string containing an identification of a product production rule.
ProductProductionRuleType A string containing a reference to an external product production
rule (e.g. a recipe)
ProductSegmentIDType A string containing an identification of a product segment.
PropertyIDType A string containing the ID of a property.
PublishedDateType A date/time defining the published date/time of an element.
QAMaterialTestSpecificationIDType A string containing an identification of a QA Material Test
Specification.
QualificationTestSpecificationIDType A sting containing an identification of a qualification test
specification.
QuantityStringType A string containing the value of a quantity, encoded as a string
type.
QuantityType A complex type defining the quantity of a resource (e.g. 15 KG). It
contains a value, a data type of the value and the unit of measure
of the value.
In many element definitions multiple quantities are allowed. This
supports the concept of “catch weight” where there may be multiple
measures of quantity, such as a count and a weight. For example,
a catch weight quantity for lobsters may include a count of the
number of lobsters as one quantity and the total weight of lobsters
as another quantity.