Business Information Conformance Statement (BICS)

Version 2.0

Authors

Scott Hinkelman, IBM

Copyright Notice

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.

Abstract

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.

Relationship to Previous Versions

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.

Status

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.

Table of Contents

1 Introduction

1.1 Notational Conventions

1.2 Namespaces

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

4 Multiple Constraint Example

5 Structural Semantics

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

6 References

A1 Formal W3C XML Schema

1 Introduction

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.

1.1 Notational Conventions

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].

1.2 Namespaces

The XML namespace names [XMLNamespace] URIs [URIs] defined by this specification is as follows:

        http://ibm.com/xml/namespaces/businessinformationconformancestatement

2 Defining A Concrete Mechanism

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.

3 Simple Single Constraint Example

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.

3.1.1 Specifying a Constraint In-Line

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.

3.1.2 Specifying a Constraint by Reference

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.

4 Multiple Constraint Example

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.

5 Structural Semantics

This section defines the normative BICS vocabulary semantics as defined using W3C XML Schema representation.

5.1 element InformationConformanceStatement

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"/>

5.2 complexType 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>

5.3 element InformationConformanceStatementType/Name

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>

5.4 element InformationConformanceStatementType/Description

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>