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>

5.5 element InformationConformanceStatementType/InformationConstraintProcessingModel

The local InformationConstraintProcessingModel element specifies the processing model for the information constraints and is defined by the InformationConstraintProcessingModelType type.

<xs:element name="InformationConstraintProcessingModel" type="bics:InformationConstraintProcessingModelType"/>

5.6 complexType InformationConstraintMechanismType

Elements typed as the InformationConstraintMechanismType type represent some mechanism which is capable of constraining information.The InformationConstraintMechanismType type is abstract, and is intended to be subtyped to establish concrete types of various constraint mechanisms.

A required name element is provided as a simple label for a constraint within BICS instance documents. It is recommended that names of constraints be unique within BICS instance documents.

A required TypeName element is provided as a label for the type of constraint mechanism. Concrete implementations should specify a distinguished fixed name for this field to indicate the type of constraint mechanism.

An optional Description local element is provided which can be used to describe the constraint instance.

The optional ConstraintSpecificationURL local element provides elements typed as concrete subtypes the ability to refer to a URL which contains specification information about an information constraint. The specification information is not required to be machine readable. This element is typed as a W3C XML Schema anyURI, however, this specification further restricts the format to that of a URL scheme.

Information constraints may exist within a BICS instance document “in-line” by inclusion of an element typed as a concrete subtype of this type, or by referencing a URL. The optional ProcessableConstraintURL local element provides concrete subtypes the ability to refer to a URL which contains a machine readable information constraint instance of subtype type. This element is typed as a W3C XML Schema anyURI, however, this specification further restricts the format to that of a URL scheme.

If a BICS instance document includes an element typed as a concrete subtype of this type with extended mechanism-specific entities (an “in-line” constraint instance), the optional ProcessableConstraintURL element must not exist. If a BICS instance document does not include an element typed as a concrete subtype of this type with extended mechanism-specific entities, the optional ProcessableConstraintURL element must exist and refer to the location of a constraint instance of the subtype type.

<xs:complexType name="InformationConstraintMechanismType" abstract="true">

  <xs:sequence>

    <xs:element name="Name">

      <xs:simpleType>

        <xs:restriction base="xs:normalizedString">

          <xs:minLength value="1"/>

        </xs:restriction>

      </xs:simpleType>

    </xs:element>

    <xs:element name="TypeName">

      <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="ProcessableConstraintURL" minOccurs="0">

      <xs:simpleType>

        <xs:restriction base="xs:anyURI">

          <xs:minLength value="1"/>

        </xs:restriction>

      </xs:simpleType>

    </xs:element>

    <xs:element name="ConstraintSpecificationURL" minOccurs="0">

      <xs:simpleType>

        <xs:restriction base="xs:anyURI">

          <xs:minLength value="1"/>

        </xs:restriction>

      </xs:simpleType>

    </xs:element>

  </xs:sequence>

</xs:complexType>

5.7element InformationConstraintMechanismType/Name

Refer to section 5.6.

<xs:element name="Name">

  <xs:simpleType>

    <xs:restriction base="xs:normalizedString">

      <xs:minLength value="1"/>

    </xs:restriction>

  </xs:simpleType>

</xs:element>

5.8 element InformationConstraintMechanismType/TypeName

Refer to section 5.6.

<xs:element name="TypeName">

  <xs:simpleType>

    <xs:restriction base="xs:normalizedString">

      <xs:minLength value="1"/>

    </xs:restriction>

  </xs:simpleType>

</xs:element>

5.9 element InformationConstraintMechanismType/Description

Refer to section 5.6.

<xs:element name="Description" minOccurs="0">

  <xs:simpleType>

    <xs:restriction base="xs:string">

      <xs:minLength value="1"/>

    </xs:restriction>

  </xs:simpleType>

</xs:element>

5.10 element InformationConstraintMechanismType/ProcessableConstraintURL

Refer to section 5.6.

<xs:element name="ProcessableConstraintURL" minOccurs="0">

  <xs:simpleType>

    <xs:restriction base="xs:anyURI">

      <xs:minLength value="1"/>

    </xs:restriction>

  </xs:simpleType>

</xs:element>

5.11 element InformationConstraintMechanismType/ConstraintSpecificationURL

Refer to section 5.6.

<xs:element name="ConstraintSpecificationURL" minOccurs="0">

  <xs:simpleType>

    <xs:restriction base="xs:anyURI">

      <xs:minLength value="1"/>

    </xs:restriction>

  </xs:simpleType>

</xs:element>

5.12 complexType InformationConstraintProcessingModelType

Elements typed as InformationConstraintProcessingModelType type define the rules for considering its local InformationConstraint elements against the information under discussion.

Elements of this type contain at least one local InformationConstraint element. Consideration of processing these elements is defined by the enumerated attribute modelType as follows:

  • sequence: All local InformationConstraint elements must be considered against the information under discussion in the order provided. The information under discussion is considered conformant with the BICS if all InformationConstraint elements are processed with no errors.
  • any: The information under discussion is considered conformant with the BICS if at least one local InformationConstraint elements is processed with no errors. The processing order does not matter.
  • all: All local InformationConstraint elements must be considered against the information under discussion in any order. The information under discussion is considered conformant with the BICS if all InformationConstraint elements are processed with no errors.

<xs:complexType name="InformationConstraintProcessingModelType">

  <xs:sequence>

    <xs:element name="InformationConstraint" type="bics:InformationConstraintMechanismType" maxOccurs="unbounded"/>

  </xs:sequence>

  <xs:attribute name="modelType" use="required">

    <xs:simpleType>

      <xs:restriction base="xs:token">

        <xs:enumeration value="sequence"/>

        <xs:enumeration value="any"/>

        <xs:enumeration value="all"/>

      </xs:restriction>

    </xs:simpleType>

  </xs:attribute>

</xs:complexType>

5.13 element InformationConstraintProcessingModelType/InformationConstraint

The local InformationConstraint element defines an instance of an information constraint and is defined by the InformationConstraintMechanismType type.

<xs:element name="InformationConstraint" type="bics:InformationConstraintMechanismType" maxOccurs="unbounded"/>

6 References

[keywords]

S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels," RFC 2119, Harvard University, March 1997, http://www.ietf.org/rfc/rfc2119.txt

[URI]

T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax," RFC 2396, MIT/LCS, U.C. Irvine, Xerox Corporation, August 1998, http://www.ietf.org/rfc/rfc2396.txt

[BI-ICS]

     Business Integration – Information Conformance Statements version 1.0, ftp://www6.software.ibm.com/software/developer/library/x-biics/BI-ICSSpec_v1.html

[XPath]

XML Linking Language (XLink) Version 1.0, http://www.w3.org/TR/2001/REC-xlink-20010627/

[XSLT]

XSL Transformations (XSLT) Version 1.0, http://www.w3.org/TR/xslt

[XMLNamespace]

W3C Recommendation, Namespaces in XML, http://www.w3.org/TR/1999/REC-xml-names-19990114

[XML]

Extensible Markup Language (XML) 1.0 (Second Edition), http://www.w3.org/TR/REC-xml

[XMLSchema1]

W3C Recommendation, XML Schema Part 1: Structures, http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/

[XMLSchema2]

W3C Recommendation, XML Schema Part 2: Datatypes, http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/

[Schematron]

An XML Structure Validation Language using Patterns in Trees, http://www.ascc.net/xml/resource/schematron

 [RFC2045]

A Multipurpose Internet Mail Extensions (MIME) Part One, Format of Internet Message Bodies, http://www.ietf.org/rfc/rfc2045.txt?number=2045

[RFC2046]

A Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, http://www.ietf.org/rfc/rfc2046.txt?number=2046

A1 Formal W3C XML Schema

<?xml version="1.0" encoding="UTF-8"?>

<!-- ===================================================================

Business Information Conformance Statements W3C XML Schema

Version 2.0

Copyright Notice

© 2005 International Business Machines Corporation, All rights reserved. The presentation, distribution, or other dissemination of the information contained in this specification is not a license, either expressly or impliedly, to any intellectual property owned or controlled by IBM. IBM may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give you any license to IBM’s patents, trademarks, copyrights, or other intellectual property. The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. This specification and the information contained herein is provided on an "AS IS" basis and to the maximum extent permitted by applicable law, IBM provides the document AS IS AND WITH ALL FAULTS, and hereby disclaim all other warranties and conditions, either express, implied, or statutory, including, but not limited to, any (if any) implied warranties, duties, or conditions of merchantability, of fitness for a particular purpose, of accuracy or completeness of responses, of results, of workmanlike effort, of lack of viruses, and of lack of negligence, all with regard to the document. ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE DOCUMENT. IN NO EVENT WILL IBM BE LIABLE TO ANY OTHER PARTY FOR THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.

==================================================================== -->

<xs:schema targetNamespace="http://ibm.com/xml/namespaces/businessinformationconformancestatement" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:bics="http://ibm.com/xml/namespaces/businessinformationconformancestatement">

  <xs:element name="InformationConformanceStatement" type="bics:InformationConformanceStatementType"/>

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

  <xs:complexType name="InformationConstraintProcessingModelType">

    <xs:sequence>

      <xs:element name="InformationConstraint" type="bics:InformationConstraintMechanismType" maxOccurs="unbounded"/>

    </xs:sequence>

    <xs:attribute name="modelType" use="required">

      <xs:simpleType>

        <xs:restriction base="xs:token">

          <xs:enumeration value="sequence"/>

          <xs:enumeration value="any"/>

          <xs:enumeration value="all"/>

        </xs:restriction>

      </xs:simpleType>

    </xs:attribute>

  </xs:complexType>

  <xs:complexType name="InformationConstraintMechanismType" abstract="true">

    <xs:sequence>

      <xs:element name="Name">

        <xs:simpleType>

          <xs:restriction base="xs:normalizedString">

            <xs:minLength value="1"/>

          </xs:restriction>

        </xs:simpleType>

      </xs:element>

      <xs:element name="TypeName">

        <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="ProcessableConstraintURL" minOccurs="0">

        <xs:simpleType>

          <xs:restriction base="xs:anyURI">

            <xs:minLength value="1"/>

          </xs:restriction>

        </xs:simpleType>

      </xs:element>

      <xs:element name="ConstraintSpecificationURL" minOccurs="0">

        <xs:simpleType>

          <xs:restriction base="xs:anyURI">

            <xs:minLength value="1"/>

          </xs:restriction>

        </xs:simpleType>

      </xs:element>

    </xs:sequence>

  </xs:complexType>

</xs:schema>

.