Scott Hinkelman, IBM
IBM hereby grants you permission to copy
and display the Business Information Conformance Statement specification, in
any medium without fee or royalty, provided that you include the following on
all copies of the Business Information Conformance Statement specification, or
portions thereof that you make:
1.
A link or URL to the specification at this location
2.
The copyright notice as shown in the Business Information Conformance Statement specification.
EXCEPT FOR THE COPYRIGHT LICENSE GRANTED
ABOVE, IBM DOES NOT GRANT, EITHER EXPRESSLY OR IMPLIEDLY, A LICENSE TO ANY
INTELLECTUAL PROPERTY, INCLUDING PATENTS, THEY OWN OR CONTROL. IBM MAY HAVE
PATENTS, PATENT APPLICATIONS, TRADEMARKS, COPYRIGHTS, OR OTHER INTELLECTUAL
PROPERTY RIGHTS COVERING SUBJECT MATTER IN THIS DOCUMENT.
THE INFORMATION CONSTRAINT FRAMEWORK SPECIFICATION
IS PROVIDED "AS IS," AND IBM MAKES NO REPRESENTATIONS OR WARRANTIES,
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;
THAT THE CONTENTS OF THE BUSINESS INFORMATION CONFORMANCE STATEMENT SPECIFICATION
ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL
NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
IBM WILL NOT BE LIABLE FOR ANY DIRECT,
INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR
RELATING TO ANY USE OR DISTRIBUTION OF THIS SPECIFICATION.
The Business Information Conformance Statement
specification may change before final release and you are cautioned against
relying on the content of this specification.
The name and trademarks of IBM may NOT be
used in any manner, including advertising or publicity pertaining to the
specification or its contents without specific, written prior permission. Title
to copyright in the Business Information Conformance Statement specification
will at all times remain with IBM.
No other rights are granted by
implication, estoppel or otherwise.
The
Business Information Conformance Statement specification
(sometimes referred to as “BICS”) provides an XML vocabulary framework for
declaring a constraint processing model across abstract constraint mechanisms.
BICS
enables various schema, constraint templates, type systems, etc, to be defined
as a concrete constraint mechanism.
A
BICS XML document instance then contains instances of concrete constraint
mechanisms within a constraint processing model, resulting in a comprehensive
statement of information constraints.
IBM’s Business Information Conformance
Statement (BICS) 2.0, this specification, is the evolution of IBM’s Business
Integration – Information Conformance Statements (BI-ICS) 1.0 [BI-ICS]
specification based on feedback and industry evolution. Note that the name has
been shortened to simply “BICS”. Simplification of the constraint processing
model structure has also been achieved in 2.0.
This specification supercedes,
and is a complete replacement for, the BI-ICS 1.0 specification.
This specification contains significant
improvements and simplification of BI-ICS 1.0 specification by decomposing the
functionality into an extensible framework. This specification represents the
core functionality of the framework, and is limited in scope to the constraint
processing model and abstract constraint mechanisms. This specification does
not define specific concrete constraint mechanisms (except for examples).
Additional specifications based
on this specification will define specific concrete constraint mechanisms, such
as W3C XML Schema [XMLSchema1] as a constraint
mechanism, Schematron Schema [Schematron] as a
constraint mechanism, the MIME [RFC2045] type system as
a constraint mechanism, etc.
This specification is an initial
public draft release and is provided for review and evaluation only. IBM makes
no warrantees or representations regarding the specifications in any manner
whatsoever.
2 Defining A Concrete
Mechanism
3 Simple Single
Constraint Example
3.1.1 Specifying a Constraint
In-Line
3.1.2 Specifying a Constraint
by Reference
5.1 element
InformationConformanceStatement
5.2 complexType
InformationConformanceStatementType
5.3 element
InformationConformanceStatementType/Name
5.4 element
InformationConformanceStatementType/Description
5.5 element
InformationConformanceStatementType/InformationConstraintProcessingModel
5.6 complexType
InformationConstraintMechanismType
5. 7element
InformationConstraintMechanismType/Name
5.8 element
InformationConstraintMechanismType/TypeName
5.9 element
InformationConstraintMechanismType/Description
5.10 element
InformationConstraintMechanismType/ProcessableConstraintURL
5.11 element InformationConstraintMechanismType/ConstraintSpecificationURL
5.12 complexType
InformationConstraintProcessingModelType
5.13 element
InformationConstraintProcessingModelType/InformationConstraint
Business information can be specified as adhering to specific constraint
mechanisms.
Information may be declared as adhering to type systems such as provided
within W3C XML Schema [W3C XML Schema], MIME [RFC2045] [RFC2046], etc, and/or to various processing mechanisms. This
leads to the possibility of a declaration stating that information is considered
conformant if adhered to, for example, sequential processing of a specific W3C
XML Schema instance validation followed by specific XPath [XPath] processing, for
example. Other declarations may include different constraint mechanism, and
different processing models than sequential.
The Business Information Conformance Statement specification provides a
formal language targeted directly for declarations of this nature, providing
the ability to declare statements of constraints for business information by introducing
a formal information constraint processing model.
An information constraint processing model defines the collection
semantics for processing at least one constraint mechanism. This formal vocabulary
of a constraint processing model allows for example, in the case of a messaging
B2B middleware environment, involved endpoints to support endpoint-specific
validations based in XSLT [XSLT] transforms in order to reach higher interoperability
levels beyond limitations of W3C XML Schemas which are standardized by industry-level
consortiums. Further, it is import to realize that a given constraint mechanism
typically fulfills less than comprehensive information constraints. Companies
conducting electronic commerce typically require specialized constraints on a
given standardized mechanism, and may require more than one mechanism to
completely define all of the constraint required to advertise, or declare,
exactly what is required to conduct electronic commerce with their company.
Using BICS in a typical B2B scenario, a ‘sequential’ model of processing
constraints can be easily be declared across a schema constraint mechanism and an
XPath-based constraint mechanism, while at the same time continuing to expose
support for the original industry schema, as detectable within the BICS document
being advertised. In a different situation, an ‘any’ conformance model could be
declared to support information being considered conformant as long as the
information under discussion conforms to at least one of a set of information constraint
mechanisms, perhaps two different types of image files which are acceptable for
B2B interchange. Many information constraint mechanisms are used in industry
today, and BICS provides a way to declare a comprehensive view across multiple
mechanism based in a processing model.
The BICS specification specifies a top level Information Conformance
Statement as an XML document structure, several common possible constraint
processing models, and an abstract Information Constraint Mechanism Type.
A BICS instance can indicate each
constraint mechanism as existing “in-line” with the BICS instance document or
“referenced” by a URL [URIs].
BICS is called a ‘framework’ in the sense that schemas importing BICS
can define specific details required to identify specific concrete constraint
mechanisms as subtypes of the Information Constraint Type within the BICS
namespace name [XMLNamespace]. Instance documents are based on the BICS schema
and also utilize the appropriate set of extending schemas in order to declare a
comprehensive XML document defining the constraint processing model across concrete
information constraint mechanism types.
While types within schema instances based on such schema model like W3C
XML Schema can be specified as a constraint mechanism and then an instance of
such schema appear within a BICS instance document (this is exemplified in this
specification), it is important to realize that a schema model itself, such as
the W3C XML Schema model, can be specified as a constraint mechanism and then
instances appear within a BICS instance document (this is not in scope for this
specification). A BICS instance document contains information constraints which
are instances of constraint mechanisms.
The actual relevant information and the actual usage of this specification
are out of scope, but many uses are possible for many types of information and
is referred to in this specification as information under discussion. Formally
stating information constraints using a Business Information Conformance Statement
allows, for example, B2B trading partners to advertise the exact and
comprehensive information constraints required for conducting electronic
business, by embedding an Information Conformance Statement into partner
agreements, registries, web site publishing, etc. Using BICS in this way can
still provide a trading partner declaring support for specific schemas,
allowing dynamic discovery of specific B2B support, but perhaps with additional
constraints. An Information Conformance Statement may also be utilized within
interaction middleware runtimes to check information conformance prior to
application dispatch, or exchanged at runtime to express the information
constraints for conducting electronic business with a specific partner.
A BICS is a statement of information constraints across mechanisms or
just one mechanism. Runtime processing of a BICS for pre-application checking
using the BICS vocabulary is just one approach that can be used; other
approaches include compiling a BICS at deployment time into an application
environment into a potentially more efficient form for processing.
The keywords [keywords] "MUST", "MUST NOT",
"REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be
interpreted as described in RFC2119 [RFC2119].
The XML namespace names [XMLNamespace] URIs [URIs] defined by this specification is as follows:
http://ibm.com/xml/namespaces/businessinformationconformancestatement
In order to use the Business Information Conformance Statement within an
XML instance document, an importing W3C XML Schema must be defined that
provides a concrete subtype of the InformationConstraintMechanismType type from
the Business Information Conformance Statement namespace. Once a concrete
constraint mechanism is defined, an XML instance document is then based on the
BICS schema and makes use of the concrete subtype within the BICS constraint
processing model.
This section shows a fictitious example of providing such a concrete
subtype. It is not intended to be pragmatic, as other existing mechanisms
exists which are capable of its function. It is intended to show, as simple as
possible, how to define a concrete constraint mechanism which can be utilized
by a BICS constraint processing model within a BICS instance document.
In this example, a concrete constraint mechanism, called TreeDepthConstraintMechanism,
is defined.
This fictitious simple constraint mechanism example is formally defined
using W3C XML Schema as follows. It defines a limitation to be used for
checking XML document instance tree depth. It will be used in subsequent
examples sections in this document.
[1] <?xml version="1.0"
encoding="UTF-8"?>
[2] <xs:schema
targetNamespace="http://www.treedepth.com/treedepthconstraintmecanism"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:tdcs="http://www.treedepth.com/treedepthconstraintmecanism"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:bics="http://ibm.com/xml/namespaces/businessinformationconformancestatement">
[3]
<xs:import
namespace="http://ibm.com/xml/namespaces/businessinformationconformancestatement"
schemaLocation="./businessinformationconformancestatement.xsd"/>
[4] <xs:complexType
name="TreeDepthType">
[5]
<xs:complexContent>
[6]
<xs:extension
base="bics:InformationConstraintMechanismType">
[7]
<xs:sequence>
[8]
<xs:element name="MaxDepth"
type="xs:nonNegativeInteger" minOccurs="0"/>
[9] </xs:sequence>
[10]
</xs:extension>
[11] </xs:complexContent>
[12] </xs:complexType>
[13]
</xs:schema>
Lines (002) define the namespaces, etc. The BICS namespace is declared.
Line (003) imports the BICS namespace.
Line (004) to (012) define the TreeDepthType as a concrete extension of
the InformationConstraintMechanismType type from the BICS namespace.
On line (008), the TreeDepthType type adds an additional optional element,
MaxDepth, typed as a non negative integer for representing the max depth
allowed by an instance document.
A BICS instance document is defined in this example using the above
TreeDepth constraint mechanism. Constraint Mechanisms can be defined as
“in-line” to a BICS documents instance, or “referenced” by using a URL.
The
InformationConformanceStatement element is the single root element for instance
documents.
The following BICS states if the TreeDepth constraint is applied with no
errors that the information under discussion is considered conformant with this
BICS. In this example, the TreeDepth constraint is the only constraint within
the statement, and exists within a sequential constraint processing model.
[1]
<?xml version="1.0" encoding="UTF-8"?>
[2]
<InformationConformanceStatement
xmlns="http://ibm.com/xml/namespaces/businessinformationconformancestatement"
xmlns:tdcm="http://www.treedepth.com/treedepthconstraintmecanism"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/xml/namespaces/businessinformationconformancestatement
[3]
./businessinformationconformancestatement.xsd
http://www.treedepth.com/treedepthconstraintmecanism
[4] ./treedepthmechanism.xsd">
[5]
<Name>Tree Depth 4 Inline</Name>
[6]
<Description>This conformance statement uses the tree depth
constraint mechanism to define a depth limit of 4 by defining a single
constraint inline.</Description>
[7]
<InformationConstraintProcessingModel
modelType="sequence">
[8]
<InformationConstraint xsi:type="tdcm:TreeDepthType">
[9]
<Name>Depth limit 4 constraint</Name>
[10]
<TypeName>Tree Depth Constraint Mechanism</TypeName>
[11]
<Description>This constraint specifies a depth limit of
4.</Description>
[12]
<tdcm:MaxDepth>4</tdcm:MaxDepth>
[13]
</InformationConstraint>
[14]
</InformationConstraintProcessingModel>
[15]
</InformationConformanceStatement>
Lines (002) to (004) define the top-level element,
namespaces, etc.
Line (005) provides a simple name of the conformance
statement.
Line (006) provides a description of the conformance
statement.
Lines (007) to (014) define the
InformationConstraintProcessingModel of the BICS. The attribute on line (007) specifies
the constraint processing model as a sequential model. In this example, there
is only one constraint, but if more than one existed, each constraint would
have to be considered in order.
Lines (008) to (013) define the first (and only)
InformationConstraint within the processing model. This constraint is of the concrete
TreeDepthType mechanism type as specified by the xsi:type attribute.
Line (009) provides a simple name of the constraint.
Line (010) specifies the type of constraint mechanism.
Line (011) provides a description of the constraint.
Line (012) specifies the constraint information as a
MaxDepth of 4 from the TreeDepth constraint mechanism namespace.
Within a BICS instance document, an information constraint may exist
either inline, as in the previous example, or by referring to a URL. In either
case, the subtype of the concrete constraint mechanism is specified in the BICS
instance document. BICS provides the ProcessableConstraintURL element for
referring to a URL for an information constraint instead of specifying the
constraint inline.
The following BICS instance refers to a TreeDepth constraint existing at
a URL.
[1]
<?xml version="1.0" encoding="UTF-8"?>
[2]
<InformationConformanceStatement
xmlns="http://ibm.com/xml/namespaces/businessinformationconformancestatement"
xmlns:tdcm="http://www.treedepth.com/treedepthconstraintmecanism"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/xml/namespaces/businessinformationconformancestatement
[3] ./businessinformationconformancestatement.xsd
http://www.treedepth.com/treedepthconstraintmecanism
[4] ./treedepthmechanism.xsd">
[5]
<Name>Tree Depth 4 Referenced</Name>
[6]
<Description>This conformance statement uses the tree depth
constraint mechanism to define a depth limit buy referencing a URL for a
constraint instance.</Description>
[7]
<InformationConstraintProcessingModel
modelType="sequence">
[8]
<InformationConstraint xsi:type="tdcm:TreeDepthType">
[9]
<Name>Depth limit 4 constraint</Name>
[10]
<TypeName>Tree Depth Constraint Mechanism</TypeName>
[11]
<Description>This constraint references a constraint instance
which specifies a depth limit of 4.</Description>
[12]
<ProcessableConstraintURL>http://www.tree.org/constraints/treedepth/limit4.xml</ProcessableConstraintURL>
[13]
</InformationConstraint>
[14]
</InformationConstraintProcessingModel>
[15]
</InformationConformanceStatement>
Lines (002) to (004) define the top-level element,
namespaces, etc.
Line (005) provides a simple name of the conformance
statement.
Line (006) provides a description of the conformance
statement.
Lines (007) to (014) define the
InformationConstraintProcessingModel section of the BICS. The attribute on line
(007) specifies the constraint processing model as a sequential model.
Lines (008) to (013) define the first (and only)
InformationConstraint within the processing model. This constraint is of the
concrete TreeDepthType mechanism type as specified by the xsi:type attribute.
Line (009) provides a simple name of the constraint.
Line (010) specifies the type of mechanism.
Line (011) provides a description of the constraint.
Line (012) defines the location of the constraint.
This section shows an example which further leverages the BICS processing
model, by specifying two information constraints.
In this example, two instances of the TreeDepth constraint mechanism are
declared. The processing model is specified as
indicating information conformance if the depthis used to declare he
only constraint within the statement, and exists within a sequential constraint
processing model.a fictitious industry consortium, members.org, has
standardized the following simple schema which defines a member Name element
and zero or more EducationInformation elements, consisting of a Degree and
InsitutionInfo elements.
[1]
<?xml version="1.0" encoding="UTF-8"?>
[2]
<InformationConformanceStatement
xmlns="http://ibm.com/xml/namespaces/businessinformationconformancestatement"
xmlns:tdcm="http://www.treedepth.com/treedepthconstraintmecanism"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/xml/namespaces/businessinformationconformancestatement
[3]
./businessinformationconformancestatement.xsd http://www.treedepth.com/treedepthconstraintmecanism
[4] ./treedepthmechanism.xsd">
[5] <Name>Tree Depth 4 or 6
InLine</Name>
[6]
<Description>This conformance statement uses the tree depth
constraint mechanism to define a depth limit of 4 or 6 by defining two
constraints within a processing model of "any".</Description>
[7]
<InformationConstraintProcessingModel modelType="any">
[8]
<InformationConstraint xsi:type="tdcm:TreeDepthType">
[9]
<Name>Depth limit of 4 constraint</Name>
[10]
<TypeName>Tree Depth Constraint Mechanism</TypeName>
[11]
<Description>This constraint specifies a depth limit of
4.</Description>
[12]
<tdcm:MaxDepth>4</tdcm:MaxDepth>
[13]
</InformationConstraint>
[14]
<InformationConstraint xsi:type="tdcm:TreeDepthType">
[15]
<Name>Depth limit of 6 constraint</Name>
[16]
<TypeName>Tree Depth Constraint Mechanism</TypeName>
[17]
<Description>This constraint specifies a depth limit of
6.</Description>
[18]
<tdcm:MaxDepth>6</tdcm:MaxDepth>
[19]
</InformationConstraint>
[20]
</InformationConstraintProcessingModel>
[21]
</InformationConformanceStatement>
Lines (002) to (004) define the top-level element,
namespaces, etc.
Line (005) provides a simple name of the conformance
statement.
Line (006) provides a description of the conformance
statement.
Lines (007) to (020) define the
InformationConstraintProcessingModel of the BICS. The attribute on line (007)
specifies the constraint processing model as an “any” model. In this example,
the information under discussion is considered conformant with this conformance
statement if the information under discussion is processed against at least one
constraint with no errors.
Lines (008) to (013) define the first
InformationConstraint within the processing model. This constraint is of the
concrete TreeDepthType mechanism type as specified by the xsi:type attribute.
Line (009) provides a simple name of the constraint.
Line (010) specifies the type of constraint
mechanism.
Line (011) provides a description of the constraint.
Line (012) specifies the constraint information as a
MaxDepth of 4 from the TreeDepth constraint mechanism namespace.
Lines (014) to (019) define the second
InformationConstraint within the processing model. This constraint is of the
concrete TreeDepthType mechanism type as specified by the xsi:type attribute.
Line (015) provides a simple name of the constraint.
Line (016) specifies the type of constraint
mechanism.
Line (017) provides a description of the constraint.
Line (018) specifies the constraint information as a
MaxDepth of 6 from the TreeDepth constraint mechanism namespace.
This section defines the normative BICS vocabulary semantics as defined
using W3C XML Schema representation.
The InformationConformanceStatement
element is the top level element for instance documents. It is defined by the
InformationConformanceStatementType type.
<xs:element
name="InformationConformanceStatement"
type="bics:InformationConformanceStatementType"/>
Elements typed as the InformationConformanceStatementType type represent a statement, or declaration of constraints
for information under discussion.
An optional Description local element is provided which can be used to
describe the statement. An optional name local element is also provided as a
simple label for the statement.
The local InformationConstraintProcessingModel element defines the
processing model for information constraints with the statement. It is defined
by the InformationConstraintProcessingModelType type.
<xs:complexType
name="InformationConformanceStatementType">
<xs:sequence>
<xs:element name="Name"
minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:normalizedString">
<xs:minLength
value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Description"
minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element
name="InformationConstraintProcessingModel"
type="bics:InformationConstraintProcessingModelType"/>
</xs:sequence>
</xs:complexType>
The local Name element provides a simple label for the statement.
<xs:element
name="Name" minOccurs="0">
<xs:simpleType>
<xs:restriction
base="xs:normalizedString">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
The local Description element provides a description label for the
statement.
<xs:element
name="Description" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>