http://docs.oasis-open.org/bdxr/ns/bde/1.0/Envelope |
http://docs.oasis-open.org/bdxr/ns/bde/1.0/AggregateComponents |
http://docs.oasis-open.org/bdxr/ns/bde/1.0/BasicComponents |
http://docs.oasis-open.org/bdxr/ns/bde/1.0/ExtensionComponents |
http://docs.oasis-open.org/bdxr/ns/bde/1.0/QualifiedDataTypes |
http://docs.oasis-open.org/bdxr/ns/bde/1.0/UnqualifiedDataTypes |
This specification defines a business-oriented artefact enveloping a payload of one or more business documents or other artefacts with supplemental semantic information about the collection of payloads as a whole. This is distinct from any transport-layer infrastructure envelope that may be required to propagate documents from one system to another. A business document envelope describes contextual information important to the sender and receiver about the payloads, without having to modify the payloads in any fashion.
This document was last revised or approved by the OASIS Business Document Exchange (BDXR) TC on the above date. The level of approval is also listed above. Check the “Latest version” location noted above for possible later revisions of this document. Any other numbered Versions and other technical work produced by the Technical Committee (TC) are listed at https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=bdxr#technical.
TC members should send comments on this specification to the TC’s email list. Others should send comments to the TC's public comment list, after subscribing to it by following the instructions at the “Send A Comment” button on the TC’s web page at https://www.oasis-open.org/committees/bdxr/.
For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page at https://www.oasis-open.org/committees/bdxr/ipr.php.
See Appendix A, Release notes (Non-Normative) for more information regarding this release package.
When referencing this specification the following citation format should be used:
[BDX-BDE-V1.0] Business Document Envelope Version 1.0. Edited by G. Ken Holman and Kenneth Bengtsson. 04 March 2015. Committee Specification Draft 01 / Public Review Draft 01. http://docs.oasis-open.org/bdxr/bdx-bde/v1.0/csprd01/bdx-bde-v1.0-csprd01.html. Latest version: http://docs.oasis-open.org/bdxr/bdx-bde/v1.0/bdx-bde-v1.0.html.
Copyright © OASIS Open 2015. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the “OASIS IPR Policy”). The full Policy may be found at the OASIS website.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
This document and the information contained herein is provided on an “AS IS” basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS AND ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS’ procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.
The name “OASIS” is a trademark of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see https://www.oasis-open.org/policies-guidelines/trademark.php for guidance.
The metaphor of a paper envelope in which one places business documents for transport or management is apt to describe the role of a business document envelope in relationship to its payloads. Concepts of routing, authentication, non-repudiation and concealment all apply in both the metaphor and the electronic equivalent.
The OASIS Business Document Envelope specifies an XML vocabulary expressing in machine-processable syntax the semantics of enveloping a payload of content with information about that content.
This specification details example candidate scenarios in which a payload envelope plays a role, and the use cases identified in such scenarios.
This specification enumerates the information components of the payload envelope and formally describes the semantics of each component.
This specification mandates a suite of XML schemas describing the document constraints against which a conforming instance must validate without error.
The key words must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this document are to be interpreted as described in [RFC 2119]. Note that for reasons of style, these words are not capitalized in this document.
An expression of constraints placed on XML content.
An expression of structural constraints placed on XML elements, attributes and textual content.
An expression of constraints placed on the values of attributes and textual content.
Data type qualifications
Request for comment
XML Schema Definition
Extensible Stylesheet Language Transformations
[CCTS - ISO/TS 15000-5:2005] ISO/TS 15000-5:2005 Electronic Business Extensible Markup Language (ebXML)— Part 5: ebXML Core Components Technical Specification, Version 2.01 (identical to Part 8 of the ebXML Framework)
[genericode] Code List Representation (Genericode) Version 1.0. Edited by Anthony B. Coates. 28 December 2007. Committee Specification 01. http://docs.oasis-open.org/codelist/genericode/. Latest version: http://docs.oasis-open.org/codelist/genericode/doc/oasis-code-list-representation-genericode.html.
[RFC 2119] Key words for use in RFCs to Indicate Requirement Levels, March 1997. . IETF (Internet Engineering Task Force) RFC 2119, http://www.ietf.org/rfc/rfc2119.txt
Based on the purpose of this document the following main requirements have been identified:
The BDE must be an electronic envelope and universally understandable document header that allows its originator to send one or more electronic business documents to a recipient.
The BDE must be payload agnostic, meaning that it must function completely independently from its content.
The BDE must be an independent work product with no bindings or references to specific document standards.
The BDE must be transport protocol agnostic, meaning that it must be possible to send and receive a BDE through any file transfer protocol.
It must be possible to route a BDE through several intermediaries and networks.
It must be possible for the sender and receiver of a BDE to keep its payload confidential from end to end.
It must be possible for the receiver of a BDE to verify the integrity of its payload.
A gateway or intermediary must be able to route a BDE without any knowledge of its payload.
The BDE should support business scenarios where it is required to unambiguously establish the identity of its sender.
The BDE should support business scenarios where it is required to keep the identity of its sender hidden.
The CCTS-modeled classes of information in the envelope model, and the relationships between them and the additional schema fragments that satisfy non-CCTS-modeled content are depicted in Figure 1, “Information classes”.
The CCTS-modeled objects in the envelope class are as follows, indicating the requirements being met by the object:
Supports | Name (Unqualified data type) |
Description |
Crd |
Rationale |
BDE-02 |
BDEVersionID (Identifier) | The version of the specific envelope model in use. | 0..1 | To allow coexistence of different versions of envelopes without using the namespace. The element identifies which syntax version is being used. |
BDE-01 |
ID (Identifier) | Unique ID for the envelope for tracking purposes. | 1..1 | Required to identify and trace the envelope. The ID must be at least unique pr. sender. |
BDE-03 |
CreationDateTime (DateTime) | Date and time when the envelope was created. | 1..1 | The value of the CreationDateAndTime element MUST be set to the date and time when the document originating application or the parser created the document. |
BDE-04 |
FromID (Identifier) | An unambiguous identification of the party that originated the envelope. | 0..1 | The identity of the envelope originator needs to be identified. |
BDE-05 |
ToID (Identifier) | An unambiguous identification of the destination of the envelope. | 1..1 | A unique identification key to unambiguously identify the Receiver party. Example: GS1 GLN. |
BDE-17 |
TestIndicator (Indicator) | There is a requirement to identify that the content inside the envelope is for test purposes. | 0..1 | The test flag will enable the recipient to identify an incoming message as a test or production message. |
BDE-07 | Payload (Payload class) | The actual payload, such as an invoice, to be processed at next level. | 1..n | An envelope without payload serves no purpose. |
Certain information related to the envelope are not modeled as CCTS classes, rather, they are realized in the schema expressions as additional document constraints.
Through the use of optional extension metadata and content, additional user-defined information that is not modelled by the CCTS classes can be added to the envelope instance.
The extension point is an optional construct as the initial child of the document element. The extension point, when it exists, must contain one or more user-defined extensions, with each extension wrapped with optional extension metadata identifying properties of the extension.
Name (Unqualified Data Type) |
Description |
Crd |
Rationale |
BDEExtensions | A container for all extensions present in the document. | 0..1 | This is the single point of access to all extensions as the first child of the main document. |
BDEExtension | A single extension for private use. | 1..n | There may be many extensions added to a single document. |
ExtensionID (Identifier) | An identifier for the Extension assigned by the creator of the extension. | 0..1 | This identifies the extension amongst other extensions within the document. |
ExtensionName (Name) | A name for the Extension assigned by the creator of the extension. | 0..1 | This identifies the extension in natural language within the document. |
ExtensionAgencyID (Identifier) | An agency that maintains one or more Extensions. | 0..1 | This identifies who created the extension. |
ExtensionAgencyName (Name) | The name of the agency that maintains the Extension. | 0..1 | This identifies who created the extension. |
ExtensionAgencyURI (Identifier) | A URI for the Agency that maintains the Extension. | 0..1 | This identifies who created the extension. |
ExtensionVersionID (Identifier) | The version of the Extension. | 0..1 | This distinguishes one version of the extension from another. |
ExtensionURI (Identifier) | A URI for the Extension. | 0..1 | This identifies the extension amongst other extensions outside of any document. |
ExtensionReasonCode (Code) | A code for reason the Extension is being included. | 0..1 | This gives the author the opportunity to give rationale by way of a code. |
ExtensionReason (Text) | A description of the reason for the Extension. | 0..1 | This gives the author the opportunity to give rationale by way of a text description. |
ExtensionContent | The definition of the extension content. | 1 | This is the parent element of the extension content. |
There are no restrictions on the extension content. See Section 4.5.1, “Extension content” for more information.
This meets requirement BDE-06.
Through the use of the W3C Digital Signature [xmldsig] zero or more signatures can be added to the envelope.
The signatures are grouped as the final children of the document element.
The val/
subdirectory includes examples of envelope documents with bona fide
digital signatures as described in Appendix C, Demonstration environment (Non-Normative).
The CCTS-modeled objects in the payload class are as follows, indicating the requirements being met by the object:
Supports | Name (Unqualified Data Type) |
Description |
Crd |
Rationale |
BDE-08 | ID (Identifier) | A unique identification of the payloads contained within the envelope. | 0..1 | Required to be able to identify the content of the payload without having to look inside the envelope. |
BDE-09 | DocumentTypeID (Identifier) | This element identifies the type of the payload instance in the envelope. | 0..1 | To enable a Service registry lookup to verify and identify the type of payload. |
BDE-11 | CustomizationID (Identifier) | Identifies the customization that applies to the received document. | 0..1 | May be used to control validation of the content of the document that is contained in the document instance. |
BDE-12 | ProfileID (Identifier) | Identifies the profile that the payload document is part of. | 0..1 | May be used to route the incoming document to the correct process dependent on which business process the payload instance is part of, e.g. an order response that is part of a process defined in the identified profile. |
BDE-12 | ProfileExecutionID (Identifier) | Identifies the particular instance of an executing profile that the payload document is part of. | 0..1 | This distinguishes between multiple executing instances of a given profile. |
BDE-13 | HandlingServiceID (Identifier) | Identifies the service that should process the payload instance. | 0..1 | Can be used to look up the target service that should be used to process the payload instance. |
BDE-09 | InstanceSyntaxID (Identifier) | Identifies the syntax that the payload document is expressed in. | 0..1 | Makes it possible to route the incoming message to the appropriate process depending on the document syntax. |
BDE-15 | InstanceEncryptionIndicator (Indicator) | An indicator to state whether the payload instance is encrypted or not. | 0..1 | The fact that a payload is encrypted may need to be identified in order to ensure correct processing. |
BDE-15 | InstanceEncryptionMethod (Text) | The method used to encrypte the payload instance. | 0..1 | The fact that a payload is encrypted may need to be identified in order to ensure correct processing. |
BDE-16 | InstanceHashValue (Text) | Hash total of the unencrypted payload document. | 0..1 | The hash provides a check of the integrity of any unencrypted payload. |
BDE-16 | InstanceHashAlgorithm (Text) | Algorithm used to calculate the hash total of the unencrypted payload document. | 0..1 | Different schemes for calculating the hash are possible to be used and so should be identified. |
BDE-10 | RelevantExternalReference (External Reference class) | A reference to a business case, document or other issues which are relevant to the handling of the envelope. | 0..n | To enable routing and other handling, such as opening of an envelope based on the referenced information such as a reference to a specific call for tender to which the envelope contains a response (e.g. a tender). |
Certain information related to the payload is not modeled as a CCTS class, rather, it is realized in the schema expressions as a set of additional document constraints. See Section 4.5.2, “Payload content” for more details.
When there exists more than one payload in a business document envelope, the first payload in document order shall be considered the primary payload.
When the payload syntax is not XML it must be encoded in the payload content in such a way as not to interfere with the XML processing of the content as simple text. Sensitive XML markup characters in simple text, the "<", "&" and ">", must be escaped using an entity or a numeric character reference.
Binary payloads cannot be processed as simple text in an XML document without being encoded. Such content must be encoded using a technique such as Base64 or Xxencoding, both of which can be used in the raw without character escaping. A technique such as Uuencode cannot be used in the raw because its encoded repertoire includes sensitive XML markup characters that would need to be escaped in order to be used.
The CCTS-modeled objects in the external reference class are as follows, indicating the requirements being met by the object:
Supports | Name (Unqualified Data Type) |
Description |
Crd |
Rationale |
BDE-10 | ID (Identifier) | A reference to a business case, document or other issues which are relevant to the handling of the envelope. | 1 | To enable routing and other handling, such as opening of an envelope based on the referenced information such as a reference to a specific call for tender to which the envelope contains a response (e.g. a tender). |
The document model is expressed in three ways, found in three files of the model subdirectory:
mod
BDE-Model-1.0.ods
model information expressed in an Open Office spreadsheet
BDE-Model-1.0.xls
model information expressed in an Excel spreadsheet
BDE-Entities-1.0.gc
model information expressed in a genericode [genericode] file
The structural document constraints of the envelope are expressed normatively as a set of W3C XSD XML Schemas.
The schemas are delivered in two subdirectories:
xsd
CCTS documentation is included as XSD annotations
xsdrt
runtime version such that CCTS documentation is not included as XSD annotations
without the annotations a W3C schema processor has less work to prepare for validating documents
In both subdirectories there is a single subdirectory of common files:
common
included schema fragments by any document fragment
The following is the only Document ABIE schema:
BDE-Envelope-1.0.xsd
included schema fragments by any base fragment
The following are read-only schema fragments in the common subdirectory:
BDE-CommonAggregationComponents-1.0.xsd
the Library ABIE element declarations
BDE-CommonBasicComponents-1.0.xsd
the Library BBIE element declarations
BDE-CommonExtensionComponents-1.0.xsd
the Document ABIE extension metadata declarations
BDE-QualifiedDataTypes-1.0.xsd
the qualified data types (empty; none are defined)
BDE-UnqualifiedDataTypes-1.0.xsd
the unqualified data types based on the core component types
see Section 4.4, “Unqualified data type attributes” for more details
BDE-XAdESv132-1.0.xsd
the v1.3.2 XAdES schema fragment from the etsi.org web site
BDE-XAdESv141-1.0.xsd
the v1.4.1 XAdES schema fragment from the etsi.org web site
BDE-xmldsig1-schema-1.0.xsd
the XML Digital Signature 1.1 schema driver fragment copyrighted by W3C
BDE-xmldsig11-schema-1.0.xsd
the XML Digital Signature 1.1 schema fragment copyrighted by W3C
BDE-xmldsig-core-schema-1.0.xsd
the XML Digital Signature Core schema fragment copyrighted by W3C
CCTS_CCT_SchemaModule-1.0.xsd
the Core Component Types schema fragment copyrighted by UN/CEFACT
The following are read-write schema fragments in the common subdirectory:
BDE-ExtensionContentDataType-1.0.xsd
the schema constraints of any extensions that users may wish to impose
as delivered this imposes no constraints and so the extension content is not validated
see Section 4.5, “Content data type schemas” for more details
BDE-PayloadContentDataType-1.0.xsd
the schema constraints of any payload that users may wish to impose
as delivered this imposes no constraints and so the payload content is not validated
see Section 4.5, “Content data type schemas” for more details
In the Business Document Envelope model each BBIE is indicated to have a particular component name (specifying the element name) and to be of a particular unqualified data type (specifying the base type value constraints and the attributes).
Based on the 10 approved core component types described in section 8.1 of [CCTS - ISO/TS 15000-5:2005], there are 20 available unqualified data types for BBIE values. Each data type has a constraint on its content (the component) and a possibly-empty selection of available possibly-required attributes (the supplementary components).
Not all of the unqualified data types listed in this table are used in the envelope model, but they are enumerated here for completeness.
Data Type | Base type (XSD) | Supplementary component (attribute) | Cardinality | Type (XSD) | Definition |
Amount | xsd:decimal | A number of monetary units specified using a given unit of currency. | |||
currencyID | required | xsd:normalizedString | The currency of the amount. | ||
currencyCodeListVersionID | optional | xsd:normalizedString | The VersionID of the UN/ECE Rec9 code list. | ||
Binary Object Graphic Picture Sound Video | xsd:base64Binary | A set of finite-length sequences of binary octets. | |||
mimeCode | required | xsd:normalizedString | The mime type of the binary object. | ||
characterSetCode | optional | xsd:normalizedString | The character set of the binary object if the mime type is text. | ||
encodingCode | optional | xsd:normalizedString | Specifies the decoding algorithm of the binary object. | ||
filename | optional | xsd:string | The filename of the binary object. | ||
format | optional | xsd:string | The format of the binary content. | ||
uri | optional | xsd:anyURI | The Uniform Resource Identifier that identifies where the binary object is located. | ||
Code | xsd:normalizedString | A character string (letters, figures, or symbols) that for brevity and/or language independence may be used to represent or replace a definitive value or text of an attribute, together with relevant supplementary information. | |||
languageID | optional | xsd:language | The identifier of the language used in the code name. | ||
listAgencyID | optional | xsd:normalizedString | An agency that maintains one or more lists of codes. | ||
listAgencyName | optional | xsd:string | The name of the agency that maintains the list of codes. | ||
listID | optional | xsd:normalizedString | The identification of a list of codes. | ||
listName | optional | xsd:string | The name of a list of codes. | ||
listSchemeURI | optional | xsd:anyURI | The Uniform Resource Identifier that identifies where the code list scheme is located. | ||
listURI | optional | xsd:anyURI | The Uniform Resource Identifier that identifies where the code list is located. | ||
listVersionID | optional | xsd:normalizedString | The version of the list of codes. | ||
name | optional | xsd:string | The textual equivalent of the code content component. | ||
DateTime | xsd:dateTime | An instance of time according the Gregorian calendar. | |||
Date | xsd:date | One calendar day according the Gregorian calendar. | |||
Time | xsd:time | An instance of time that occurs every day. | |||
Identifier | xsd:normalizedString | A character string to identify and uniquely distinguish one instance of an object in an identification scheme from all other objects in the same scheme, together with relevant supplementary information. | |||
schemeAgencyID | optional | xsd:normalizedString | The identification of the agency that maintains the identification scheme. | ||
schemeAgencyName | optional | xsd:string | The name of the agency that maintains the identification scheme. | ||
schemeDataURI | optional | xsd:anyURI | The Uniform Resource Identifier that identifies where the identification scheme data is located. | ||
schemeID | optional | xsd:normalizedString | The identification of the identification scheme. | ||
schemeName | optional | xsd:string | The name of the identification scheme. | ||
schemeURI | optional | xsd:anyURI | The Uniform Resource Identifier that identifies where the identification scheme is located. | ||
schemeVersionID | optional | xsd:normalizedString | The version of the identification scheme. | ||
Indicator | xsd:boolean | A list of two mutually exclusive Boolean values that express the only possible states of a property. | |||
Measure | xsd:decimal | A numeric value determined by measuring an object using a specified unit of measure. | |||
unitCode | required | xsd:normalizedString | The type of unit of measure. | ||
unitCodeListVersionID | optional | xsd:normalizedString | The version of the measure unit code list. | ||
Numeric Value Percent Rate | xsd:decimal | Numeric information that is assigned or is determined by calculation, counting, or sequencing. It does not require a unit of quantity or unit of measure. | |||
format | optional | xsd:string | Whether the number is an integer, decimal, real number or percentage. | ||
Quantity | xsd:decimal | A counted number of non-monetary units, possibly including a fractional part. | |||
unitCode | optional | xsd:normalizedString | The unit of the quantity | ||
unitCodeListAgencyID | optional | xsd:normalizedString | The identification of the agency that maintains the quantity unit code list | ||
unitCodeListAgencyName | optional | xsd:string | The name of the agency which maintains the quantity unit code list. | ||
unitCodeListID | optional | xsd:normalizedString | The quantity unit code list. | ||
Text Name | xsd:string | A character string (i.e. a finite set of characters), generally in the form of words of a language. | |||
languageID | optional | xsd:language | The identifier of the language used in the content component. | ||
languageLocaleID | optional | xsd:normalizedString | The identification of the locale of the language. |
There are two content data type schema fragments, one for each of the extension content and the payload content. These are the only schemas intended to be edited by users should they wish to validate the content of their extensions or payloads. No changes are necessary to the schemas if it is not important to validate these portions of the document.
Should users wish to impose constraints on the extension or the payload contents, the only edits required of the content schema is the importation of the schemas to be engaged for validation purposes. No edits are required of the content element, though one may wish to do so to exclude content other than that for which schemas are provided.
The extension content element's name is <{extensions
prefix}:ExtensionContent>
, for example,
<ext:ExtensionContent>
. It is the last
element child of <{extensions
prefix}:BDEExtension>
.
Any given extension content may have as its child at most one apex (or top-most) element in the XML element tree. The absence of content is provided for situations where a processing application chooses to elide foreign unrecognized-namespace elements from the XML element tree.
The payload content element's name is <{aggregate
prefix}:PayloadContent>
, for example,
<eac:PayloadContent>
. It is the last element
child of <{aggregate prefix}:Payload>
.
Any given payload content element may have as its child exactly one apex (or top-most) element in the XML element tree, or it may consist solely of text that would typically represent encrypted content or non-XML content. Special care must be taken that all non-XML payload content must be encoded according to XML text encoding rules, such as the escaping of special markup characters, so as to permit an XML processing application to correctly interpret the non-XML content.
The schema declarations are unable to prevent flagging the payload content having a combination of both text and a single element as a constraint error. Detecting such a condition is the responsibility of the processing agent.
The schema declarations are unable to prevent flagging the payload content having empty content as a constraint error. Detecting such a condition is the responsibility of the processing agent.
A conforming instance is an instance that does not violate any document constraints expressed by the schemas.
In addition, the following instance constraints that cannot be detected as schema constraints must not be violated:
every XML element that is not extension content is not allowed to be empty, and
the <{aggregate prefix}:PayloadContent>
element is not allowed to have a combination of text and an element
(that is, it must either be a non-empty string of text or it must be
a single element).
Online and downloadable versions of this release are available from the locations specified at the top of this document.
This Committee Specification Draft 01 / Public Review Draft 01 is published as a zip archive in the http://docs.oasis-open.org/bdxr/bdx-bde/v1.0/csprd01/ directory. Unzipping this archive creates a directory tree containing a number of files and subdirectories. Note that while the two XML files comprise the revisable version of this specification, this revisable XML may not be directly viewable in all currently available web browsers.
The base directory has the following files:
bdx-bde-v1.0-csprd01.xml
The revisable form of the document.
bdx-bde-v1.0-csprd01.html
An HTML rendering of the document.
bdx-bde-v1.0-csprd01.pdf
A PDF rendering of the document.
These are the subdirectories in the package:
art
Diagrams and illustrations used in this specification.
db
DocBook stylesheets for viewing in HTML the XML of this work product.
mod
The envelope document model in various formats.
val
Demonstrative validation of the example instances with the envelope schemas.
See Appendix C, Demonstration environment (Non-Normative) for details.
xsd
XML schema expressions complete with semantic documentation.
xsdrt
Runtime XML schema expressions void of semantic documentation.
The following individuals have participated in the creation of this specification and are gratefully acknowledged:
Jens Aabol, Difi-Agency for Public Management and eGovernment |
Oriol Bausa Peris, Individual |
Kenneth Bengtsson, Alfa1lab |
Kees Duvekot, RFS Holland Holding B.V. |
Sander Fieten, Individual |
G. Ken Holman, Crane Softwrights Ltd. |
Ole Madsen, Danish Agency for Digitisation, Ministry of Finance |
Sven Rasmussen, Danish Agency for Digitisation, Ministry of Finance |
A working example of using the schemas with an XML instance is
demonstrated in the val/
directory. This directory has
a number of simple test files:
simpleExample.xml
a simple envelope with three payload instances, the second of which is simple text (note the escaped special characters) and the other two of which are XML
simpleExampleFailSyntax.xml
an envelope document with an XML well-formedness error (the end tag for the creation date and time is missing the closing right-angle bracket)
simpleExampleFailModel.xml
an envelope document with an XML validity error (a misspelled element for the creation date and time)
simpleExampleExtension.xml
a simple envelope with a user-defined extension adding information to the envelope
simpleExampleSignedNotFinal.xml
a simple envelope digitally signed with a single signature in such a way that allows additional signatures to be embedded in the envelope
simpleExampleSignedFinal.xml
a simple envelope digitally signed with a single signature in such a way that does not allow additional signatures to be embedded in the envelope
simpleExampleSignedNotFinalAdditional.xml
a simple envelope digitally signed with two signatures,
having added one to
simpleExampleSignedNotFinal.xml
simpleExampleSignedFinalAdditionalFail.xml
a simple envelope digitally signed with two signatures,
having added one to
simpleExampleSignedFinal.xml
the document validates against the BDE schemas, however digital signature verification software flags this as the final signature being invalid because additional information (the second signature) was added to the document
simpleExampleSignedDetached.xml
the detached digital signature of
simpleExample.xml
, signed in such a way that
allows additional signatures to be embedded in the
envelope
this is an instance of the W3C digital signature vocabulary and is not an instance of the business document envelope, and so this is not validated as part of the test script
The digital signatures in these test files are bona fide and can be verified with suitable digital signature software.
To invoke the schemas with the demonstration instances, navigate to the directory and invoke the test script:
in Windows:
test.bat
in shell:
sh test.sh
The result on the screen should appear as follows:
val $ sh test.sh ############################################################ Validating simpleExample.xml ############################################################ ============== Phase 1: XSD schema validation ============== No schema validation errors. ============ Phase 2: XSLT code list validation ============ No code list validation errors. ############################################################ Validating simpleExampleFailSyntax.xml ############################################################ ============== Phase 1: XSD schema validation ============== org.xml.sax.SAXParseException: The end-tag for element type "ebc:CreationDateTime" must end with a '>' delimiter. at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(SAXParser.java:277) at com.nwalsh.parsers.XJParser.xsdParse(Unknown Source) at com.nwalsh.parsers.XJParser.parse(Unknown Source) at com.nwalsh.parsers.XJParse.run(Unknown Source) at com.nwalsh.parsers.XJParse.main(Unknown Source) Exception in thread "main" java.lang.NullPointerException at com.nwalsh.parsers.XJParser.printParseStats(Unknown Source) at com.nwalsh.parsers.XJParse.run(Unknown Source) at com.nwalsh.parsers.XJParse.main(Unknown Source) Attempting well-formed, namespace-aware parse Fatal error:file:///Users/admin/t/artefacts-bdx-bde-v1.0-csd01wd01-test/ val/simpleExampleFailSyntax.xml:7:3:The end-tag for element type "ebc:CreationDateTime" must end with a '>' delimiter. ############################################################ Validating simpleExampleFailModel.xml ############################################################ ============== Phase 1: XSD schema validation ============== Attempting well-formed, namespace-aware parse Error:file:///Users/admin/t/artefacts-bdx-bde-v1.0-csd01wd01-test/val/ simpleExampleFailModel.xml:6:26:cvc-complex-type.2.4.a: Invalid content was found starting with element 'ebc:CreationDateTimex'. One of '{"http://docs.oasis-open.org/bdxr/ns/bde/1.0/BasicComponents": CreationDateTime}' is expected. Parse succeeded (0.12) with 1 error and no warnings. ############################################################ Validating simpleExampleExtension.xml ############################################################ ============== Phase 1: XSD schema validation ============== No schema validation errors. ============ Phase 2: XSLT code list validation ============ No code list validation errors. ############################################################ Validating simpleExampleSignedNotFinal.xml ############################################################ ============== Phase 1: XSD schema validation ============== No schema validation errors. ============ Phase 2: XSLT code list validation ============ No code list validation errors. ############################################################ Validating simpleExampleSignedFinal.xml ############################################################ ============== Phase 1: XSD schema validation ============== No schema validation errors. ============ Phase 2: XSLT code list validation ============ No code list validation errors. ############################################################ Validating simpleExampleSignedNotFinalAdditional.xml ############################################################ ============== Phase 1: XSD schema validation ============== No schema validation errors. ============ Phase 2: XSLT code list validation ============ No code list validation errors. ############################################################ Validating simpleExampleSignedFinalAdditionalFail.xml ############################################################ ============== Phase 1: XSD schema validation ============== No schema validation errors. ============ Phase 2: XSLT code list validation ============ No code list validation errors. val $
The test script invokes the validation script using the following::
in Windows:
validate.bat schema-file instance-file
in shell:
sh validate.sh schema-file instance-file
The validation script invokes the schema script using the following:
in Windows:
w3cschema.bat schema-file instance-file
in shell:
sh w3cschema.sh schema-file instance-file
The validation script invokes the XSLT script using the following:
in Windows:
xslt.bat instance-file stylesheet-file output-file
in shell:
sh xslt.sh instance-file stylesheet-file output-file
The empty stylesheet BDE-DefaultDTQ-1.0.xsl
is a placebo
that would be replaced with an XSLT stylesheet imposing value validation
constraint checking on a given instance of a business document
envelope.
Revision | Date | Editor | Changes made |
---|---|---|---|
csd01wd01 | 09 February 2015 | GKH | Initial version with business objects submitted by UBL Technical Committee |
csd01wd02 | 14 February 2015 | GKH | Revision to include additional constructs from BII specification |
csd01wd03 | 17 February 2015 | GKH | Document namespaces; use W3C DSig 1.1 schemas; remove reference to empty xml/ samples directory |
csd01wd04 | 26 February 2015 | GKH | Add class for relevant external references; remove primary instance indicator; update wording of requirements |
csd01 | 04 March 2015 | GKH | Cover page changes for CSD |
csprd01 | 04 March 2015 | GKH | Cover page changes for CSPRD |
bdx-bde-v1.0-csprd01 Standards Track Work Product | Copyright © OASIS Open 2015. All rights reserved. | 04 March 2015 |