1 2 3 4 5 ebXML Test Framework 6 Committee Specification Version 1.0 7 8 9 10 OASIS ebXML Implementation, Interoperability and Conformance Technical Committee 07 March, 2003 11 Copyright (C) The Organization for the Advancement of Structured Information Standards [OASIS] April 2002. All Rights Reserved. 12 13 Document identifier: ebxml-iic-test-framework-10 14 15 Location: http://www.oasis-open.org/committees/documents.php?wg_abbrev=ebxml-iic 16 17 18 19 20 21 22 23 24 25 26 Authors/Editors: Steven Yung, Sun Microsystems <[email protected]> Prakash Sinha, IONA <[email protected]> Matthew MacKenzie, Individual <[email protected]> Hatem El Sebaaly, IPNet Solutions <[email protected]> Monica Martin, Sun Microsystems <[email protected]> Jacques Durand, Fujitsu <[email protected]> Michael Kass, NIST <[email protected]> Eric VanLydegraf, Kinzan <[email protected]> Jeff Turpin, CycloneCommerce <[email protected]> Serm Kulvatunyou, NIST <[email protected]> 27 28 29 Contributors: 30 31 32 Abstract: This document specifies ebXML interoperability testing specification for the eBusiness community. 33 34 35 Status: Christopher Frank < [email protected]> This document has been approved as a committee specification, and is updated periodically on no particular schedule. 36 37 38 39 Committee members should send comments on this specification to the [email protected] list. Others should subscribe to and send comments to the [email protected] list. To subscribe, send an email message to [email protected] with the word "subscribe" as the body of the message. 40 41 For more information about this work, including any errata and related efforts by this committee, please refer to our home page at http://www.oasis-open.org/committees/ebxml-iic. 42 43 44 Errata to this version: None 45 46 47 ebxml-iic-test-framework-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 2 of 144 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 Table of Contents 1 Introduction ........................................................................................................................................... 5 1.1 Summary of Contents of this Document ............................................................................................. 5 1.2 Document Conventions ...................................................................................................................... 5 1.3 Audience ............................................................................................................................................. 5 1.4 Caveats and Assumptions .................................................................................................................. 6 1.5 Related Documents ............................................................................................................................ 6 1.6 Minimal Requirements for Conformance ............................................................................................ 6 2 Principles and Methodology of Operations .......................................................................................... 8 2.1 General Objectives ............................................................................................................................. 8 2.2 General Methodology ......................................................................................................................... 9 3 The Test Framework Components ..................................................................................................... 11 3.1 The Test Driver ................................................................................................................................. 11 3.1.1 Functions ................................................................................................................................... 11 3.1.2 Using the Test Driver in Connection Mode ............................................................................... 13 3.1.3 Using the Test Driver in Service Mode ...................................................................................... 15 3.2 The Test Service ............................................................................................................................... 17 3.2.1 Functions and Interactions ........................................................................................................ 17 3.2.2 Modes of Operation of the Test Service .................................................................................... 19 3.2.3 Parameters of the Test Service ................................................................................................. 20 3.2.4 The Actions of the Test Service ................................................................................................ 21 3.3 Executing Test Cases ....................................................................................................................... 25 3.3.1 Test Case as a Sequence of Test Steps ................................................................................... 25 3.3.2 Related Message Data and Message Declarations .................................................................. 26 3.3.3 Related Configuration Data ....................................................................................................... 26 Part II: Test Suite Representation ............................................................................................................... 28 4 Test Suite ........................................................................................................................................... 29 4.1 Conformance vs. Interoperability Test Suite ..................................................................................... 29 4.2 The Test Suite Document ................................................................................................................. 30 Test Suite Metadata ........................................................................................................................... 32 4.2.1 The ConfigurationGroup ............................................................................................................ 33 5 Test Requirements ............................................................................................................................. 38 5.1 Purpose and Structure ...................................................................................................................... 38 5.2 The Test Requirements Document ................................................................................................... 38 5.3 Specification Coverage ..................................................................................................................... 40 5.4 Test Requirements Coverage (or Test Run-Time Coverage) .......................................................... 41 6 Test Profiles ........................................................................................................................................ 43 6.1 The Test Profile Document ............................................................................................................... 43 6.2 Relationships between Profiles, Requirements and Test Cases...................................................... 44 7 Test Cases ......................................................................................................................................... 46 7.1 Structure of a Test Case ................................................................................................................... 46 7.1.1 Test Steps ................................................................................................................................. 47 7.1.2 Test Step Operations ................................................................................................................ 47 ebxml-iic-test-framework-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 3 of 144 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 7.1.3 The PutMessage Operation ...................................................................................................... 48 7.1.4 The Message Declaration ......................................................................................................... 50 7.1.5 The SetPayload Operation ........................................................................................................ 69 7.1.6 The Dsign Operation ................................................................................................................. 70 7.1.7 The GetMessage Operation ...................................................................................................... 73 7.1.8 The TestPreCondition Operation............................................................................................... 75 7.1.9 The TestAssertion Operation .................................................................................................... 77 7.1.10 The GetPayload Operation ...................................................................................................... 79 7.1.11 Message Store Schema .......................................................................................................... 80 7.1.12 Service-Specific Message Payloads ....................................................................................... 82 7.1.13 Test Report Schema ............................................................................................................... 87 8 Test Material ....................................................................................................................................... 89 8.1.1 Testing Profile Document .......................................................................................................... 89 8.1.2 Test Requirements Document................................................................................................... 89 8.1.3 Test Suite Document ................................................................................................................. 89 8.1.4 Base CPA and derived CPAs .................................................................................................... 90 9 Test Material Examples ...................................................................................................................... 91 9.1 Example Test Requirements ............................................................................................................ 91 9.1.1 Conformance Test Requirements ............................................................................................. 91 9.1.2 Interoperability Test Requirements ........................................................................................... 93 9.2 Example Test Profiles ....................................................................................................................... 94 9.2.1 Conformance Test Profile Example .......................................................................................... 94 9.2.2 Interoperability Test Profile Example ........................................................................................ 95 9.3 Example Test Suites ......................................................................................................................... 95 9.3.1 Conformance Test Suite ............................................................................................................ 95 9.3.2 Interoperability Test Suite .......................................................................................................... 99 Appendix A (Normative) The ebXML Test Profile Schema ....................................................................... 104 Appendix B (Normative) The ebXML Test Requirements Schema .......................................................... 105 Appendix C (Normative) The ebXML Test Suite Schema and Supporting Subschemas ......................... 111 Appendix D (Normative) The ebXML Message Store Schema ................................................................ 128 Appendix E (Normative) The ebXML Test Report Schema ...................................................................... 132 Appendix F (Normative) Service Related Message Schema .................................................................... 135 Appendix G Terminology........................................................................................................................... 137 Appendix H References ............................................................................................................................ 140 H.1 Normative References ................................................................................................................... 140 H.2 Non-Normative References............................................................................................................ 141 Appendix I Acknowledgments ................................................................................................................... 142 I.1 Committee Members ....................................................................................................................... 142 Appendix J Notices ................................................................................................................................... 144 130 ebxml-iic-test-framework-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 4 of 144 131 1 Introduction 132 133 1.1 Summary of Contents of this Document 134 135 136 This specification defines a test suite for ebXML Messaging basic interoperability. The testing procedure design and naming conventions follow the format specified in the Standard for Software Test Documentation IEEE Std 829-1998. 137 This specification is organized around the following topics: 138 Interoperability testing architecture 139 Test cases for basic interoperability 140 Test data materials 141 142 1.2 Document Conventions 143 144 145 146 Terms in Italics are defined in the ebXML Glossary of Terms in the TestFramework specification [ebTestFramework]. Terms listed in Bold Italics represent the element and/or attribute content. Terms listed in Courier font relate to test data. Notes are listed in Times New Roman font and are informative (non-normative). Attribute names begin with lowercase. Element names begin with Uppercase. 147 148 149 The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL, when they appear in this document, are to be interpreted as described in [RFC2119] as quoted here: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 MUST: This word, or the terms "REQUIRED" or "SHALL", means that the definition is an absolute requirement of the specification. MUST NOT: This phrase, or the phrase "SHALL NOT", means that the definition is an absolute prohibition of the specification. SHOULD: This word, or the adjective "RECOMMENDED", means that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications MUST be understood and carefully weighed before choosing a different course. SHOULD NOT: This phrase, or the phrase "NOT RECOMMENDED", means that there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label. MAY: This word, or the adjective "OPTIONAL", means that an item is truly optional. One vendor may choose to include the item because a particular marketplace requires it or because the vendor feels that it enhances the product while another vendor may omit the same item. An implementation that does not include a particular option MUST be prepared to interoperate with another implementation which does include the option, though perhaps with reduced functionality. In the same vein an implementation that does include a particular option MUST be prepared to interoperate with another implementation which does not include the option (except, of course, for the feature the option provides). 168 169 1.3 Audience 170 The target audience for this specification is: 171 172 The community of software developers who implement and/or deploy the ebXML Messaging Service (ebMS), ebxml-iic-test-framework-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 5 of 144 173 174 The testing or verification authority, which will implement and deploy conformance or interoperability testing for ebXML Messaging implementations. 175 176 1.4 Caveats and Assumptions 177 178 It is assumed the reader has an understanding of communications protocols, MIME, XML, SOAP, SOAP Messages with Attachments and security technologies. 179 180 1.5 Related Documents 181 182 The following set of related specifications are developed independent of this specification as part of the ebXML initiative, they can be found on the OASIS web site (http://www.oasis-open.org). 183 184 185 186 187 188 ebXML Collaboration Protocol Profile and Agreement Specification [ebCPP] – CPP defines one business partner's technical capabilities to engage in electronic business collaborations with other partners by exchanging electronic messages. A CPA documents the technical agreement between two (or more) partners to engage in electronic business collaboration. The MS Test Requirements and Test Cases will refer to CPA documents or data as part of their material, or context of verification. 189 190 191 ebXML Messaging Service Specification [ebMS] – defines the messaging protocol and service for ebXML, which provide a secure and reliable method for exchanging electronic business transactions using the Internet. 192 193 194 ebXML Test Framework [ebTestFramework]– describes the test architecture, procedures and material that are used to implement the MS Interoperability Test Suite, as well as the test harness for this suite. 195 196 ebXML MS Conformance Test Suite [ebMSConfTestSuite]– describes the Conformance test suite and material for Messaging Services. 197 198 199 200 ebXML Registry Specification [ebRS] – defines how one party can discover and/or agree upon the information the party needs to know about another party prior to sending them a message that complies with this specification. The Test Framework is also designed to support the testing of a registry implementation. 201 202 203 204 ebXML Business Process Specification Schema [BPSS] – defines how two parties can cooperate through message-based collaborations, which follow particular message choreographies. The Test Framework is also designed to support the testing of a business process implementation. 205 206 1.6 Minimal Requirements for Conformance 207 208 An implementation of the Test Framework specified in this document MUST satisfy ALL of the following conditions to be considered a conforming implementation: 209 210 211 212 213 214 215 It supports all the mandatory syntax, features and behavior (as identified by the [RFC2119] key words MUST, MUST NOT, REQUIRED, SHALL and SHALL NOT) defined in Part 1.1.1 – Document Conventions. It supports all the mandatory syntax, features and behavior defined for each of the components of the Test Framework. It complies with the following interpretation of the keywords OPTIONAL and MAY: When these keywords apply to the behavior of the implementation, the implementation is free to support these behaviors or not, as meant in [RFC2119]. When these keywords apply to data and configuration material used by an ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 6 of 144 216 217 implementation of the Test Framework, a conforming implementation of the Test Framework MUST be capable of processing these optional materials according to the described semantics. 218 219 220 221 222 223 224 225 226 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 7 of 144 227 2 Principles and Methodology of Operations 228 229 2.1 General Objectives 230 231 232 233 234 235 The ebXML Test Framework is intended to support conformance and interoperability testing for ebXML specifications. It describes a testbed architecture and its software components, how these can be combined to create a test harness for each type of ebXML testing. It also describes the test material to be processed by this architecture, a mark-up language and format for representing test requirements, and test suites (set of Test Cases). 236 237 The Test Framework described here has been designed to achieve the following objectives: 238 239 240 The Test Framework is a foundation for testing all ebXML architectural components such as Messaging, Registry, BPSS, CPA, and Core Components. Test Suites and Test Cases that are related to these standards, can be defined in a formal manner (including Test Steps and verification conditions). They can be automatically processed by the Test Framework, and their execution can easily be reproduced. 241 242 243 244 245 246 247 248 249 250 251 252 253 254 The harnessing of an ebXML implementation (or possibly several, e.g. in case of interoperability) with the Test Framework requires a moderate effort. It generally requires some interfacing work specific to an implementation, in the case no standard interface (API) has been specified. For example, the Test Service (a component of the Test Framework) defines Actions that will need to be called by a particular MSH implementation. Besides this kind of interfacing, no application code needs to be written. Several testbed configurations - or test harnesses - can be derived from the Test Framework, depending on the objectives of the testing. For example, MS conformance testing will include a particular combination (architecture) of some components of the Test Framework, while interoperability testing will require another set-up. Operating the Test Framework - or one of the test harnesses that can be derived from it – in order to execute a test suite, does not require advanced expertise in the framework internals, once the test suites have been designed. The tests should be easy to operate and to repeat with moderate effort or overhead, by users of the ebXML implementation(s) and IT staff responsible for maintaining the B2B infrastructure, without expertise in testing activity. Users can define new Test Suites and Test Cases to be run on the framework. For this, they will script their tests using the proposed test suite definition language or mark-up (XML-based) for Test Cases. A Test Suite (either for conformance or for interoperability) can be run entirely and validated from one component of the framework: the Test Driver. This means that all test outputs will be generated - and test conditions verified - by one component, even if the test harness involves several – possibly remote – components of the framework. 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 8 of 144 270 271 272 The verification of each Test Case is done by the Test Driver at run-time, as soon as the Test Case execution is completed. The outcome of the verification can be obtained immediately as the Test Suite has completed, and a verification report be generated. 273 274 2.2 General Methodology 275 276 277 278 279 280 281 282 283 This specification only addresses the technical aspect of ebXML testing, and this section describes the portion of testing methodology that relates directly to the usage of the Test Framework. A more general test program for ebXML, describing a comprehensive methodology oriented toward certification, is promoted by the OASIS Conformance TC and is described in [ConfCertTestFrmk] (NIST). When conformance certification is the objective, the ebXML Test Framework should be used in a way that is compliant with a conformance certification model as described in [ConfCertModelNIST]. More general resources on Testing methodology and terminology can be found on the OASIS site (www.oasisopen.org), as well as at NIST (www.itl.nist.gov.) 284 285 This specification adopts the terminology and guidelines published by the OASIS Conformance Committee [ConfReqOASIS]. 286 287 288 289 The Test Framework is intended for the following mode of operation, when testing for conformance or for interoperability. In order for a testing process (or validation process) to be conform to this specification, the following phases need to be implemented: 290 291 292 293 294 Phase 1: Test Plan (RECOMMENDED). An overall test plan is defined, which includes a validation program and its objectives, the conditions of operations of the testing, levels or profiles of conformance or of interoperability, and the requirements for Candidate Implementations to be tested (context of deployment, configuration). Phase 2: Test Requirements Design (MANDATORY). A list of Test Requirements (also called Test Assertions) is established for the tested specification, and for the profile/level of conformance/interoperability that is targeted. These Test Requirements should refer to the specification document. Jointly to this list, it is RECOMMENDED that Specification Coverage be reported. This document shows, for each feature in the original specification, the Test Requirements items that address this feature. It also estimates to which degree the feature is validated by these Test Requirements items. Phase 3: Test Harness Design (MANDATORY). A Test Harness is defined for this particular test plan. It describes an architecture built from components of the Test Framework, along with operation instructions and conditions. In order to be conforming to this specification, a test harness MUST be described as a system that includes a Test Driver as specified in this document, and MUST be able to interpret conforming test suites. 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 9 of 144 310 311 312 313 314 315 316 Phase 4: Test Suite Design (MANDATORY). Each Test Requirement from Phase 2 is translated into one or more Test Cases. A Test Case is defined as a sequence of operations (Test Steps) over the Test Harness. Each Test Case includes: configuration material (CPA data), message material associated with each Test Step, test verification condition that defines criteria for passing this test. All this material, along with particular operation directives, defines a Test Suite, as specified in Part II. In order to be conforming to this specification, a test suite needs to be described as a document (XML) conforming to part II of this specification. Phase 5: Validation Conditions (RECOMMENDED). Validation criteria are defined for the profile or level being tested, and expressed as a general condition over the set of results from the verification report of each Test Case of the suite. These validation criteria define the certification or “badging” for this profile/level. Phase 6: Test Suite Execution (MANDATORY). The Test Suite is interpreted and executed by the test Driver component of the Test Harness. 317 318 319 320 321 322 323 324 325 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 10 of 144 326 3 The Test Framework Components 327 328 329 The components of the framework are designed so that they can be combined in different configurations, or Test Harnesses. 330 331 We describe here two components that are central to the Test Framework: 332 333 The Test Driver, which interprets Test Case data and drives Test Case execution. 334 335 The Test Service, which implements some test operations (actions) that can be triggered by messages. These operations support and automate the execution of Test Cases. 336 337 338 These components interface with the ebXML Message Service Handler (MSH), but are not restricted to testing an MSH implementation. 339 340 3.1 The Test Driver 341 342 343 344 The Test Driver is the component that drives the execution of each step of a Test Case. Depending on the test harness, the Test Driver may drive the Test Case by interacting with other components in connection mode or in service mode. 345 346 In connection mode, the Test Driver directly generates ebXML messages at transport protocol level – e.g. by using an appropriate transport adapter. 347 348 349 In service mode, the Test Driver does not operate at transport level, but at application level, by invoking actions in the Test Service, which is another component of the framework. These actions will in turn send or receive messages to and from the MSH. 350 351 3.1.1 Functions 352 353 354 355 356 The primary function of the Test Driver is to parse and interpret the Test Case definitions that are part of a Test Suite, as described in the Test Framework mark-up language. Even when these Test Cases involve several components of the Test Framework, the interpretation of the Test Cases is under control of the Test Driver. 357 The Test Driver component of the ebXML Test Framework MUST have the following capabilities: 358 359 360 361 Self-Configuration - Based upon supplied Test Case configuration parameters specified in the ebXML TestSuite.xsd schema (Appendix C), Test Driver configuration is done at startup, and MAY be modified at the TestCase and TestStep levels as well. 362 ebXML Message Construction – Includes MIME, SOAP and ebXML portions of the message ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 11 of 144 363 364 365 Persistence of (Received) Messages –received messages MUST persist for the life of a Test Case. Persistent messages MUST validate to the ebXMLMessageStore.xsd schema in Appendix D. 366 367 Parse and query persistent messages – Test Driver MUST use XPath query syntax to query MIME, SOAP and ebXML persistent message content 368 369 Parse and query message payloads – Test Driver MUST support XPath query syntax to query XML message payloads of persistent messages. 370 371 Controls the execution and workflow of the steps of a Test Case. Some steps may be executed by other components, but their initiation is under control of the Test Driver. 372 373 Repeat previously executed Test Steps – Test Driver MUST be capable of repeating previously executed Test Steps for the current Test Case. 374 375 Send messages - Either directly at transport layer (e.g. by opening an HTTP connection), or by using Test Service actions. 376 377 Receive messages - Either directly at transport layer, or by notification from Test Service actions. 378 379 Perform discreet message content validation – Test Driver MUST be capable of performing discreet validation of Time, URI, Signature and the entire XML message 380 381 Perform discreet payload content validation – Test Driver MUST be capable of performing discreet validation of Time, URI, Signature and an XML payload 382 383 384 Report Conformance Test Results – Test Driver MUST generate an XML conformance report for all executed tests in the profile. Conformance reports MUST validate to the ebXMLTestReport.xsd schema in Appendix E. 385 386 387 A possible design that supports these functions is illustrated in Figure 1. ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 12 of 144 388 389 390 3.1.2 Using the Test Driver in Connection Mode 391 392 393 394 395 The Test Driver MUST be able to control the inputs and outputs of an MSH at transport level. This can be achieved by using an embedded transport adapter. This adapter has transport knowledge, and can format message material into the right transport envelope. Independently from the way to achieve this, the Test Driver MUST be able to: 396 397 Create a message envelope for the transports authorized by ebXML MS 2.0, and generate fully formed messages for this transport. 398 399 Parse a message envelope for the transports authorized by ebXML MS 2.0, and extract header data from a message, as well as from the message payload in case it is an XML document. 400 401 Open a message communication channel (connection) with a remote ebXML message handler. In that case the Test Driver is said to operate in connection mode. 402 403 404 405 406 When used in connection mode, the Test Driver is acting as a transport end-point that can receive or send messages with an envelope consistent with the transport protocol (e.g. HTTP or SMTP). The interaction between the MSH and the Test Service is of same nature as the interaction between the MSH and an application (as the Test Service simulates an application), i.e. it involves the MSH API, and/or a callback mechanism. Figure 2 illustrates how the Test Driver operates in connection mode. ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 13 of 144 407 408 409 Figure 3 shows an example of conformance test harness with Test Driver used in connection mode. 410 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 14 of 144 411 412 3.1.3 Using the Test Driver in Service Mode 413 414 415 416 417 418 419 420 In this configuration, the Test Driver directly interacts with the Service/Actions of the Test Service component, without involving the transport layer, e.g. by invoking these actions via a software interface, in the same process space. This allows for controlling the Test Cases execution from the application layer (as opposed to the transport layer). Such a configuration is appropriate when doing interoperability testing - for example between two MSH implementations – and in particular, in situations where the transport layer should not be tampered with, or interfered with. The interactions with the Test Service will consist of: 421 422 423 424 425 Sending: One action of the Test Service, the “Initiator”, serves as a channel to send requests to the MSH it has been interfaced with. This action – normally triggered by received messages – also MUST provide an interface at application level. When invoked by a call that contains message data, the action generates a sending request to the MSH API for this message. Receiving: As all actions of the Test Service can participate in the execution of a Test Case (i.e. of its Test Steps), the Test Driver needs to be aware of their invocation by incoming messages. Each of these actions will notify the Test Driver through its “Receive” interface, passing received message data, as well as response data. This way, the Test Driver will build an internal trace (or state) for the Test Case execution, and will be able to verify the test based on this data. 426 427 428 429 430 431 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 15 of 144 432 433 434 435 436 The Test Driver MUST support the above communication operations with the Test Service. This may be achieved by using an embedded Service Adapter to bridge the sending and receiving functions of the Test Driver, with the Service/Action calls of the Test Service. Figure 4 illustrates how the Test Driver operates with a Service Adapter. 437 438 439 440 441 442 443 444 This design allows for a minimal exposure of the MSH-specific API, to the components of the Test Framework. The integration code that needs to be written for connecting the MSH implementation is then restricted to an interface with the Service/Actions defined by the framework. Neither the Test Driver, nor the Service Adapter, need to be aware of the MSH-specific interface. An example of test harness using the Test Driver in Service Mode is shown in Figure 5. 445 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 16 of 144 446 447 448 3.2 The Test Service 449 450 3.2.1 Functions and Interactions 451 452 453 454 455 456 457 The Test Service defines a set of Actions that are useful for executing Test Cases. The Test Service represents the application layer for a message handler. It receives message content and error notifications from the MSH, and also generates requests to the MSH, which normally are translated into messages being sent out. The Test Actions are predefined, and are part of the Test Framework (i.e. not user-written). Test Service and Actions will map to the Service and Action header attributes of ebXML messages generated during the testing. 458 459 460 461 The Test Service name is: urn:ebXML:iic:test. Figure 6 shows the details of the Test Service and its interfaces. 462 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 17 of 144 463 464 465 466 The functions of the Test Service are: 467 468 469 470 To implement the actions which map to Service / Action fields in a message header. The set of test actions which are pre-defined in the Test Service will perform diverse functions, which are enumerated below: 471 472 To notify the Test Driver of incoming messages. This only occurs when the Test Service is deployed in reporting mode, which assumes it is coupled with a Test Driver. 473 474 To perform some message processing, e.g. compare a received message payload with a reference payload (or their digests). 475 476 To send back a response to the MSH. Depending on the action invoked, the response may range from a pre-defined acknowledgment to a specific message previously specified. 477 478 Optionally, to generate a trace of its operations, in order to help trouble-shooting, or for reporting purpose. 479 480 481 482 483 484 Although the Test Service simulates an application, it is part of the Test Framework, and does not vary from one test harness to the other. However, in order to connect to the Test Service, a developer will have to write wrapper code to the Test Service/Actions that is specific to the MSH implementation that needs to be integrated. This proprietary code is expected to require a minor effort, but is necessary as the ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 18 of 144 485 486 API and callback interfaces of each MSH are not specified in the [ebMS] standard and is implementationdependent. 487 488 489 490 3.2.2 Modes of Operation of the Test Service 491 492 493 494 495 496 The Test Service can operate in two modes: Reporting mode: in that mode, the actions of the Test Service instance, when invoked, will send a notification to the Test Driver. The Test Driver can then be aware of the workflow of the test case. There are actually two cases of reporting mode: 497 498 499 o Local Reporting Mode: The Test Driver is installed on the same host as the Test Service, and executes in the same process space. The notification uses the Receive interface of the Test Driver, which is operating in service mode. 500 501 502 503 504 o Remote Reporting Mode: The Test Driver is installed on a different host than the Test Service. The notification is done via messages to the Test Driver, which is generally operating in connection mode. Remote message notifications are identified by the Test Driver through the “Notify” Action name and “urn:ebXML:iic:test” Service name, in the header of a received ebXML message. 505 506 507 508 Loop mode: in that mode, the actions of the Test Service instance, when invoked, will NOT send a notification to the Test Driver. The only interaction of the Test Service with external parties, is by sending back messages via the message handler 509 510 511 512 513 Except for the notification, which may or may not take place, the actions operate similarly in both reporting and loop modes, unless specified otherwise. In other words, the mode of operation does not normally affect the logic of the action. The action may send a response message, to the requesting party via the “response URL”. In general, the response URL is the same as the requestor URL. 514 515 516 517 518 519 Figure 7 shows a test harness with a Test Driver in connection mode, controlling a Test Service (Host 1) in remote reporting mode. The other Test Service (Host 3) is operating in loop mode. This configuration is used when the test cases are controlled from a third party test center, when doing interoperability testing. The test center may also act as a Hub, and be involved in monitoring the traffic between the interoperating parties. 520 521 522 523 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 19 of 144 524 525 526 3.2.3 Parameters of the Test Service 527 528 529 The Test Service has only two parameters that can be modified by action invocation (and therefore represent its state): 530 531 Operation mode (either reporting or loop) 532 Response URL (destination for response messages) 533 534 Notification URL (destination for notification messages, if applicable) 535 536 537 538 539 540 In addition, a Test Service instance is identified by an ID that will be reported in some response messages. The three parameters above can be set by invoking the Configurator action described below. In a test harness where an interoperability test suite involves two parties, the test suite will need to be executed twice - alternatively driven from each party. In that case, each Test Service instance will alternatively be set to a reporting mode, while the other will be set to loop mode. These settings can be done remotely by sending messages to the Configurator action. 541 542 Except for these parameters, the Test Service is stateless. 543 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 20 of 144 544 545 3.2.4 The Actions of the Test Service 546 547 548 549 The actions described here are standard to the Test Service, and should suffice in supporting most Test Cases. These actions map to the Service/Action field of an ebXML message, and will be triggered on reception of such messages. 550 551 3.2.4.1 Common Functions 552 553 554 Some functions are common to several actions, in addition to the specific functions they fulfill. These common functions are: 555 556 557 558 Generate a response message. Response messages are destined to the Response URL (see 3.2.3). They also specify a Service/Action, as they are usually intended for another Test Service although in case the Response URL directly points to the Test Driver in connection mode, Service/Action will not have the regular MSH semantics. 559 560 561 562 Notify the Test Driver. This assumes the Test Service is coupled with a Test Driver. In that configuration, the Test Service is in reporting mode. The reporting is done by a message (sent to the Notification URL) when in remote reporting mode, or by a call to the Receive interface when in local reporting mode. 563 564 565 3.2.4.2 Test Service Actions 566 567 The standard test actions are: 568 569 3.2.4.2.1 Mute action 570 571 572 573 Reporting/Loop Mode Action Description: This is a “dummy” action, which does not generate any response message back. Such an action is used for messages that do not require any effect, except possibly to cause some side-effect in the MSH, like generating an error. 574 Response Destination: None 575 576 577 578 579 In Reporting Mode: The action will notify the associated Test Driver. The notification containing the received header and payload(s) material, will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to “urn:ebXML:iic:test”/ “Notify”, if in remote reporting mode. The notification will report the action name (“mute”) and the instance ID of the Test Service. 580 581 3.2.4.2.2 Dummy action 582 583 584 Reporting/Loop Mode Action Description: This is a “dummy” action, used by messages that do not need a specific response. On invocation, this action will however generate a pre-canned response message back ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 21 of 144 585 586 (no payload, simplest header with no extra-features), with no dependency on the received message, except for the previous MessageID (for correlation) in the RefToMessageId header attribute. 587 588 589 Response Destination: a message with a Mute action element is sent to the Test Component (Test Driver or Service) associated with the Response URL. This notice serves as proof that the message has been received, although no assumption can be made on the integrity of its content. 590 591 592 593 594 In Reporting Mode: The action will also notify the associated Test Driver. The notification containing the received header and payload(s) material, will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to “urn:ebXML:iic:test”/ “Notify”, if in remote reporting mode. The notification will report the action name (“Dummy”) and the instance ID of the Test Service. 595 596 3.2.4.2.3 Reflector 597 598 599 Reporting/Loop Mode Action Description: On invocation, this action generates a response to a received message, by using the same message material, with minimal changes in the header: 600 601 602 603 604 Swapping of the to/from parties so that the “to” is now the initial sender. Setting RefToMessageId to the ID of the received message. Removing AckRequested or syncReply elements if any. All other header elements (except for time stamps) are unchanged. The conversation ID remains unchanged, as well as the CPAId. The payload is the same as in the received message, i.e. same attachment(s). 605 606 Response Destination: a message with a Mute action element is sent to the Test Component (Test Driver or Service) associated with the Response URL. This action acts as a reflector for the initial sending party 607 608 609 610 611 In Reporting Mode: The action also notifies the associated Test Driver. The notification containing the received header and payload(s) material, will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to “urn:ebXML:iic:test”/ “Notify”, if in remote reporting mode. The notification will report the action name (“reflector”) and the instance ID of the Test Service. 612 613 3.2.4.2.4 Initiator action 614 615 616 617 618 619 620 621 622 623 Reporting/Loop Mode Action Description: On invocation, this action generates a new message, totally unrelated to the header data of the enclosing ebXML message. The new message material (payload and header) is provided in a pre-convened way in the payload of the received message. The header of the new message can be anything that is specified. For example, this action would be used to generate a "first" message of a new conversation, different from the conversation ID specified in the invoking message. Note: unlike in the Reflector action, MSH-controlled header attributes will not be determined by the invoking message header (messageID, RefToMessageId, timestamps...). So if the response needs to refer to the previous MessageID (for correlation), the RefToMessageId must be explicitly pre-set in the message material. 624 625 626 Response Destination: any service/action of the sender, specified with message material (by default: a message with a Mute action element is sent to the Test Component (Test Driver or Service) associated with the Response URL.) 627 628 629 In Reporting mode: In addition to generating the message, the action also notifies the associated Test Driver. The notification containing the received header and payload(s) material, will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 22 of 144 630 631 “urn:ebXML:iic:test” / “Notify”, if in remote reporting mode. The notification will report the action name (“initiator”) and the instance ID of the Test Service. 632 633 3.2.4.2.5 PayloadVerify action 634 635 636 637 638 639 640 641 642 643 644 645 Reporting/Loop Mode Action Description: On invocation, this action will compare the payload(s) of the received message, with the expected payload. Instead of using real payloads, to be pre-installed on the site of the Test Service, it is RECOMMENDED that a digest (or signature) of the reference payloads (files) be pre-installed on the Test Service host. The PayloadVerify action will then calculate the digest of each received payload and compare with the reference digests. This action will test the service contract between application and MSH, as errors may originate either on the wire, or at every level of message processing in the MSH until message data is passed to the application. The action responds with a response message to the party associated with the Response URL, reporting the outcome of the comparison. The previous MessageID is reported (for correlation) in the RefToMessageId header attribute of the response. The previous ConversationId is also reported. The payload message will contain a verification status notification for each verified payload 646 The XML format used by the response message is described in the section 7.1.12 (“Service Messages”). 647 648 649 Response Destination: a message is sent with a Mute action element to the Test Component (Test Driver or Service) associated with the Response URL. 650 651 652 653 In Reporting mode: Action will also notify the associated Test Driver. The notification containing the received header and payload(s) material, will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to “urn:ebXML:iic:test" / “Notify”, if in remote reporting mode. 654 3.2.4.2.6 ErrorAppNotify action 655 656 657 658 659 660 Reporting/Loop Mode Action Description: This action will capture specific error notifications from the MSH to its using application. It is not triggered by reception of an error message, but it is directly triggered by the internal error module of the MSH local to this Test Service. If the MSH implementation does not support such direct notification of the application (e.g. instead, it writes such notifications to a log), then an adapter needs to be written to read this log and invoke this action whenever such an error is notified. 661 Such errors fall into two categories: 662 663 664 665 666 667 MSH errors that need to be directly communicated to its application – and not to any remote party, e.g. failure to send a message (no Acks received after maximum retries). 668 669 670 Response Destination: A response message containing the verification status notification (see “Service Messages” in 7.1.12) is sent only when in loop mode, with a Mute action element to the Test Component (Test Driver or Service) associated with the Response URL. 671 672 673 674 In Reporting mode: Action will notify an error to the associated Test Driver The notification containing the received ErrorList document only (not the received message content), will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to “urn:ebXML:iic:test” / “Notify”, if in remote reporting mode. In case an MSH generates regular errors with a severity level set to “Error” – as opposed to “Warning” – the MSH is supposed to (SHOULD) also notify its application. The ErrorAppNotify action is intended to support both types of notifications. 675 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 23 of 144 676 3.2.4.2.7 ErrorURLNotify action 677 678 679 680 681 682 683 684 685 686 Reporting/Loop Mode Action Description: This action will capture error messages, assuming that an adapter has been written for invoking this action. The adapter must have same URI as the ErrorURI specified in the CPA. The adapter will pass the entire message as is (in its ebXML envelope) to the action. The action extracts the ErrorCode and Severity elements, and sends then an error notification message back to the originator, when operating in loop mode only. The action will make such error notifications visible to the other party (generally the driver party), by generating a “report” message to the Response URL. The XML format used to both the received and response message payload for this action is described in section 8.1.2, the Test Message Schema. 687 688 689 690 Response Destination: When in loop mode, generates a verification status notification (see “Service Messages” in 7.1.12) with a Mute action element to the Test Component (Test Driver or Service) associated with the Response URL. 691 692 693 694 695 In Reporting mode: Action only notifies the associated Test Driver. The notification containing the received header and payload(s) material, will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to “urn:ebXML:iic:test” / “Notify”, if in remote reporting mode. The notification will report the action name (“ErrorURLNotify”) and the instance ID of the Test Service. 696 697 3.2.4.2.8 Configurator action 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 Reporting/Loop Mode Action Description: This action is called to either dynamically (re)configure the receiver party, or to verify that the receiver party has the right configuration set-up. Configuration may concern: MSH internals assumed by a Test Case (if applicable), CPA set-up assumed by a Test Case, Test Service parameters (e.g. ID, response-URL, mode of operation). In the case of CPA, the action can verify that the collaboration agreement for a conversation related to a Test Case or a set of Test Cases is available. If the payload contains a CPAId, this action will verify that the corresponding CPA is accessible. The previous MessageID is reported (for correlation) in the RefToMessageId header attribute of the response. Predefined digests of payloads to be used in Test Cases. These digests or signatures will be then used as references for comparing digests from received payloads. Such comparison will be done by the PayloadVerify action. The XML format used by the configuration message and its response message is described in the section 7.1.12 (“Service Messages”). 717 718 Response Destination of response: a message with a Mute action element is sent to the Test Component (Test Driver or Service) associated with the ResponseURL. 719 720 721 722 In Reporting mode: Action notifies the associated Test Driver. The notification containing the received header and payload(s) material, will be done via the Receive interface, if in local reporting mode, or with a message with Service / Action fields set to “urn:ebXML:iic:test” / “Notify”, if in remote reporting mode. The notification will report the action name (“configurator”) and the instance ID of the Test Service. 723 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 24 of 144 724 Note: The above actions are specific to the Test Service, and are not supported by the Test Driver. 725 726 3.2.4.3 Integration with an Implementation 727 728 729 730 As mentioned before, the actions above are predefined and part of the Test Framework, and will require some integration code with the MSH implementation, in form of three adapters, to be provided by the MSH development (or user) team. These adapters are: 731 732 733 (1) Reception adapter, which is specific to the MSH callback interface. This code allows for invocation of the actions of the Test Service, on reception of a message. 734 735 736 737 738 (2) MSH control adapter, which will be invoked by some Test Service actions, and will invoke in turn the MSH-specific Message Service Interface (or API). Examples of such invocations are for sending messages (e.g. by actions which send response messages), and MSH configuration changes (done by the Configurator action). 739 (3) Error URL adapter, which is actually independent from the candidate MSH. This adapter will catch error messages, and invoke the ErrorURLNotify action of the Test Service. If the Test Service is in reporting mode, the Test Driver is notified of this error message. 740 741 742 743 744 745 3.3 Executing Test Cases 746 747 748 749 A Test Suite contains a sequence of Test Cases. Each Test Case is intended to verify that an implementation fulfills a requirement item (or a set of items) of the specification. 750 751 3.3.1 Test Case as a Sequence of Test Steps 752 : 753 754 755 756 757 A Test Case is a sequence of Test Steps. A Test Step is an aggregate of one or more operations performed by a single component of the test harness. A Test Step usually involves a single message sending or receiving operation, plus some message data processing operations, like checking a condition on message header. A Test Step may also include conditional actions that are a basis for the execution of the assertion within the Test Step itself. 758 759 A Test Case instance is an execution of a particular Test Case, identified by some specific message attribute values. For example, two instances of the same Test Case will be distinguished by distinct ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 25 of 144 760 761 MessageID values in the generated messages. An example of a sequence of Test Steps associated with an MS Conformance Test Case is: 762 763 764 Step 1: Test driver sends a sample message to the Reflector action of the Test Service. Message header data is obtained from message header declaration, and message payload from file ABC. 765 766 767 Step 2: Test driver receives the response message and adds it to the stored sequence for this Test Case instance (correlation with Step 3 is done based on the RefToMessageID attribute, which should be identical to the MessageId of Step 3.) 768 769 Step 3: Test driver verifies the test condition on response message, for example that the SOAP envelope and extensions are well-formed. 770 771 3.3.2 Related Message Data and Message Declarations 772 773 774 775 776 777 778 779 Some Test Steps will require message data. This message data MUST be specified using a Message Declaration (Section 7), which is an XML-based script. Header content is scripted in the message declaration by using XML and XPath expressions. The message envelope is also described in the same way. Payload material is not included in the messages declaration, but referenced by it. The script that describes a test step may also include operations that allow for extracting a payload from or for adding a payload to a message. The Test Driver MUST be capable of interpreting these scripts in order to: 780 Assemble a message from script material and referenced payloads. 781 782 Analyze and select a received message based on header and envelope content (as well as based on payload content if the payload is in XML). 783 784 3.3.3 Related Configuration Data 785 786 787 788 789 Test Cases will be executed under a pre-defined agreement, as defined in CPA [ebXML CPA]. This agreement will configure the ebXML Candidate Implementations involved in the testing, or the collaborations that execute on these implementations. Each Test Case will therefore reference a Test Configuration document. 790 791 792 793 Test Configuration document: it contains (1) a CPA (or CPA-like) document, (2) configuration data for the ebXML implementation(s) involved, expressed at an abstract level and expected to be general enough to most implementations, even if not specified. 794 795 Figure 8 illustrates how a Test Case references message data. 796 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 26 of 144 797 798 799 800 801 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 27 of 144 802 Part II: Test Suite Representation 803 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 28 of 144 804 4 Test Suite 805 806 4.1 Conformance vs. Interoperability Test Suite 807 808 809 We distinguish two types of test suites, which share similar document schemas and architecture components, but serve different purposes: 810 811 812 813 814 815 Conformance Test Suite. The objective is to verify the adherence or non-adherence of a Candidate Implementation to the target specification. The test harness and Test Cases will be designed around a single (candidate) implementation. The suite material emphasizes the target specification, by including a comprehensive set of Test Requirements, as well as a clear mapping of these to the original specification (e.g. in form of an annotated version of this specification). Interoperability Test Suite. The objective is to verify that two implementations (or more) of the same specification, or that an implementation and its operational environment, can interoperate according to an agreement or contract (which is compliant with the specification, but usually restricts further the requirements). These implementations are assumed to be conforming (i.e. have passed conformance tests or have achieved the level of function of such tests), so the reference to the specification is not as important as in conformance. Such a test suite involves two or more Candidate Implementations of the target specification. The test harness and Test Cases will be designed in order to drive and monitor these implementations. 816 817 818 819 820 821 822 823 824 825 826 A conformance test suite is composed of: 827 828 829 One or more Test Profile documents (XML). Such documents represent the level or profile of conformance to the specification, as verified by this Test Suite. 830 831 Design of a Test Harness for the Candidate Implementation that is based on components of the ebXML IIC Test Framework. 832 833 A Test Requirements document. This document contains a list of conformance test assertions that are associated with the test profile to be tested. 834 835 An annotation of the target specification, that indicates the degree of Specification Coverage for each specification feature or section, that this set of Test Requirements provides. 836 837 A Test Suite document. This document implements the Test Requirements, described using the Test Framework material (XML mark-up, etc.) 838 839 An Interoperability Test Suite is composed of: ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 29 of 144 840 841 842 843 One or more Test Profile documents (XML). Such documents represent a set of features specific to a particular functionality, represented in a Test Suite through Test Cases that only test those particular features, and hence, that profile. 844 845 Design of a Test Harness for two or more interoperating implementations of the specification that is based on components of the ebXML Test Framework. 846 847 A Test Requirements document. This document contains a list of test assertions associated with this profile (or level) of interoperability. 848 849 A Test Suite document. This document implements the Test Requirements, described using the Test Framework material (XML mark-up, etc.) 850 851 852 4.2 The Test Suite Document 853 854 855 The Test Suite XML document is a collection of Test Driver configuration data, documentation and executable Test Cases. 856 857 Metadata provides documentation used by the Test Driver to generate a Test Report for all executed Test Cases. 858 859 860 Configuration data provide basic Test Driver parameters used to modify the configuration of the Test Driver to accurately perform and evaluate test results. It also contains configuration data for the candidate ebXML implementation(s). 861 862 Message data is a collection of pre-defined XML payload messages that can be referenced for inclusion in an ebXML test message. 863 864 865 Test Cases are a collection of discrete Test Steps. Each Test Step can execute any number of test Operations (including sending, receiving, and examining returned messages). An ebXML Test Suite document MUST validate against the ebXMLTestSuite.xsd file in Appendix C. 866 867 Payloads provide XML and non-XML content for use as material for test messages, as well as message data for Test Services linked to the Test Driver. 868 869 870 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 30 of 144 871 872 873 Figure 9 – Graphic representation of basic view of ebXMLTestSuite.xsd schema 874 875 876 877 878 879 880 881 882 883 884 885 Definition of Content 886 Name Description TestSuite Container for all configuration, documentation and tests Required Metadata Container for general documentation of the entire Test Suite Required ConfigurationGroup Container for configuration of the Test Required ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 31 of 144 Driver and /or MSH MessagePayload XML Payload message for inclusion in a Test Case Optional ConfigurationGroup Container for modifications to base ConfigurationGroup Optional TestCase Container for an individual Test Case Required 887 888 889 890 891 Test Suite Metadata 892 893 894 Documentation for the ebXML MS Test Suite is done through the Metadata element. It is a container element for general documentation. 895 896 897 898 Figure 10 – Graphic representation of expanded view of the Metadata element 899 900 901 902 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 32 of 144 903 Definition of Content 904 Name Description Description General description of the Test Suite Required Version Version identifier for Test Suite Required Maintainer Name of person(s) maintaining the Test Suite Required Location URL or filename of this test suite Required PublishDate Date of publication Required Status Status of this test suite Required Default Value From Test Driver Required/Optional 905 906 907 4.2.1 The ConfigurationGroup 908 909 910 911 912 913 914 915 The ConfigurationGroup contains configuration data for modifying the content of test messages sent by the Test Driver (when in Connection Mode) or the MSH (when the Test Driver is in Service Mode) In addition, three of the parameters have functions beyond defining message content. The “Mode” parameter toggles the mode of the Test Driver between Connection Mode and Service Mode. CPAId is used by the Test Driver (in Service Mode) to configure its interfaced MSH through its CPAId reference. PayloadDigests provides a list of payload identifiers and their MDA-5 digest values for payload content verification by the Test Driver or Test Service. 916 917 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 33 of 144 918 919 920 921 Figure 11 – Graphic representation of expanded view of the BaseConfigurationGroup element 922 923 924 Definition of Content 925 Name Description ConfigurationGroup Container Test Driver/MSH configuration data ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Required 03 April 2003 Page 34 of 144 CPAId Unique identifier matching one of the testing CPA’s in the Conformance or Interoperability Optional Test Suite. Inserted inside outgoing messages, as content for the CPAId element in an ebXML MessageHeader. Value is also used to configure MSH when in “service” mode. Mode One of two types, “driver” (interfaced to MSH) or Non-driver Required “non-driver” (standalone) SenderParty Default identifier used in message header From/PartyId Required ReceiverParty Default identifier used in message header To/PartyId Required Service Default Service to be inserted into outgoing message Service element content Required Action Default Service Action to be inserted into outgoing messages Action element content Required StepDelay Milliseconds of delay between execution of the last Test Step and the current Test Step Required ResponseURL Parameter defining the URL for the Test Service to send response messages to Optional NotificationURL Parameter defining the location for the Test Service to send notification messages to Optional PayloadDigests Container for one or more message payload identifiers with corresponding computed digest values, used by Test Driver to verify received message payload content Optional Payload Container for id and digest value pair Required href Identifier (CID) for message payload to be verified against Digest value Required Digest Pre-computed MDA-5 digest value to be used by Test Driver to verify integrity of received message payload Required ConfigurationItem Container for individual name/value pair used by the Test Driver for configuration or possibly for message payload content construction Optional Name Name for the ConfigurationItem Required Value Value of the ConfigurationItem Required Type Type of ConfigurationItem (namespace or parameter) Required ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 35 of 144 926 927 928 929 4.2.1.1 Multiple Configuration Declarations within the Test Suite 930 931 932 933 934 It is possible to dynamically modify the configuration of the Test Driver or MSH through the course of execution of the Test Suite. After initial configuration is set through the required configurationGroupRef attribute of the TestSuite element, configuration can be modified at the Test Case and Test Step levels through the introduction of a new configurationGroupRef attribute value. 935 936 937 The scope of the configuration change is hierarchical, and exists only for the definition of the current Test Suite, Case or Step. Upon completion, of that test component, configuration reverts to that previously defined at the higher level. This hierarchy is illustrated in the figure below. 938 939 940 941 Figure 12 – Graphic representation of hierarchical use of the ConfigurationGroup via reference 942 943 944 4.2.1.2 Precedence Rules for Test Driver/MSH configuration 945 946 947 In order to generate messages correctly, the Test Driver MUST follow the precedence rules for interpreting a Configuration Group declaration. The precedence rules are: 948 949 950 Certain portions of an ebXML message are auto-generated by the Test Driver at run-time, unless they are overridden explicitly in the Message Declaration. These include: 951 952 ConversationId 953 MessageId 954 Timestamp 955 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 36 of 144 956 957 958 959 In addition, other message content, such as the “soap:mustUnderstand” attribute and value, the ebXML “version” attribute of message header extension elements and other content is also auto-generated by the Test Driver (in Connection Mode) or interfaced MSH (in Service Mode) for every Message Declaration. These values can also be overridden through explicit declaration. 960 961 962 963 964 If there is no explicit declaration of an element or attribute value in the Message Declaration content, and it is not auto-generated by the Test Driver, and it is a required element/attribute value, then the Configuration Group value MUST be provided in the Message Declaration. 965 966 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 37 of 144 967 5 Test Requirements 968 969 5.1 Purpose and Structure 970 971 972 973 The next step in designing a test suite is to define Test Requirements. This material, when used in a conformance testing context, is also called Test Assertions in NIST and OASIS terminology (see definition in glossary in Appendix). 974 975 976 977 When used for conformance testing, each Test Requirement defines a test item to be performed, that covers a particular requirement of the target specification. It rewords the specification element in a “testable form”, closer to the final corresponding Test Case, but unlike the latter, independently from the test harness specifics. In the ebXML Test Framework, a Test Requirement will be made of three parts: 978 979 980 981 982 983 984 985 986 Pre-condition The pre-condition defines the context or situation under which this test item applies. It should help a reader understand in which case the corresponding specification requirement applies. In order to verify this Test Requirement, the test harness will attempt to create such a situation, or at the very least to identify when it occurs. If for some reason the precondition is not satisfied when doing testing, then it does not mean that the outcome of this test is negative – only that the situation in which it applies did not occur. In that case, the corresponding specification requirement could simply not be validated, and the subsequent Assertion will not be tested. Assertion The assertion actually defines the specification requirement, as usually qualified by a MUST or SHALL keyword. In the test harness, the verification of an assertion will be attempted only if the pre-condition is itself satisfied. When doing testing, if the assertion cannot be verified while the pre-condition was, then the outcome of this test item is negative. Requirement Level Qualifies the degree of requirement in the specification, as indicated by such keywords as RECOMMENDED, SHOULD, MUST, and MAY. Three levels can be distinguished: (1) “required” (MUST, SHALL), (2) “recommended” ([HIGHLY] RECOMMENDED, SHOULD), (3) “optional” (MAY, OPTIONAL). Any level lower than “required” qualifies a Test Requirement that is not mandatory for Conformance testing. Yet, lower requirement degrees may be critical to interoperability tests. The test requirement level can be override by explicit declaration in the Test Profile document, in case a lower or higher level is required. 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 5.2 The Test Requirements Document 1002 1003 1004 1005 1006 1007 The Test Requirements XML document provides metadata describing the Testing Requirements, their location in the specification, and their requirement type (REQUIRED, HIGHLY RECOMMENDED, RECOMMENDED, or OPTIONAL). A Test Profile driver file MUST validate against the ebXMLTestRequirements.xsd file found in Appendix B. The ebXML MS Conformance Test Requirements instance file can be found in Appendix E. 1008 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 38 of 144 1009 1010 Figure 13 – Graphic representation of ebXMLTestRequirements.xsd schema 1011 1012 1013 Definition of Content 1014 Name Description Requirements Container for all test requirements Required MetaData Container for requirements metadata, including Description, Version, Maintainer, Location, Publish Date and Status Required Test Requirement Container for all components of a single test requirement Required description Description of requirement Required id Unique identifier for each Test Requirement Required name Name of test requirement Required specRef Pointer to location in specification where requirement is found Required functionalType Generic classification of function to be tested Required FunctionalRequirement Sub-requirement for the main Test Requirement Required id Unique ID for the sub-requirement Required name Short descriptor of Functional Requirement Required ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 39 of 144 specRef Pointer to location in specification where sub-requirement is found Required Clause Grouping element for Condition expression(s) Optional Condition Textual description of test precondition Required ConditionRef Reference (via id attribute) to existing Condition element already defined in the Test Requirements document Required And/Or Union/Intersection operators for Conditions Optional Assertion Axiom expressing expected behavior of an MSH implementation under conditions specified by any Clause Required AssertionRef Reference (via id attribute) to existing Assertion element already defined in the Test Requirements document Required requirementType Enumerated Assertion descriptor (REQUIRED, OPTIONAL…etc.) Required 1015 1016 5.3 Specification Coverage 1017 1018 1019 1020 1021 A Test Requirement is a formalized way to express a requirement of the target specification. The reference to the specification is included in each Test Requirement, and is made of one or more section numbers. There is no one-to-one mapping between sections of a specification document and the Test Requirement items listed in the test material for this specification: 1022 1023 A specification section may map to several Test Requirements. 1024 1025 A Test Requirement item may also cover (partially or not) more than one section or subsection. 1026 1027 A Test Requirement item may then cover a subset of the requirements that are specified in a section. 1028 1029 1030 For these reasons, it is important to determine to which degree the requirements of each section of a specification, are fully satisfied by the set of Test Requirements listed in the test suite document. This is done by establishing the Specification Coverage by the Test Requirements. 1031 1032 1033 The Specification Coverage document is a separate document containing a list of all sections and subsections of a specification document, each annotated with: 1034 1035 A coverage qualifier. 1036 A list of Test Requirements that map to this section. 1037 1038 The coverage qualifier may have values: ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 40 of 144 1039 1040 1041 1042 1043 1044 1045 1046 1047 Full: The requirements included in the specification document section are fully covered by the associated set of Test Requirements. This means that if each one of these Test Requirements is satisfied by an implementation, then the requirements of the corresponding document section are fulfilled. When the tests requirements are about conformance: The associated set of test requirement(s) are a clear indicator of conformance to the specification item, i.e. if a Candidate Implementation passes a Test Case that implements this test requirement(s) in a verifiable manner, there is a strong indication that it will behave similarly in all situations identified by the spec item. None: This section of the specification is not covered at all. Either there is no associated set of Test Requirements, or it is known that the test requirements cannot be tested even partially, at least with the Test Framework on which the test suite is to be implemented, and under the test conditions that are defined. Partial: The requirements included in this document section are only partially covered by the associated (set of) Test Requirement(s). This means that if each one of these Test Requirements is satisfied by an implementation, then it cannot be asserted that all the requirements of the corresponding document section are fulfilled: only a subset of all situations identified by the specification item are addressed. Reasons may be: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 o (1) The pre-condition(s) of the test requirement(s) ignores on purpose a subset of situations that cannot be reasonably tested under the Test Framework. 1062 1063 1064 1065 o (2) The occurrence of situations that match the pre-condition of a Test Requirement is known to be under control of the implementation (e.g. implementation-dependent) or of external factors, and out of the control of the testbed. (See contingent run-time coverage definition, Section 7). 1066 1067 1068 When the tests requirements are about conformance: The associated set of test requirement(s) are a weak indicator of conformance to the specification item. A negative test result will indicate non-conformance of the implementation. 1069 1070 5.4 Test Requirements Coverage (or Test Run-Time Coverage) 1071 1072 1073 1074 In a same way as Test Requirements may not be fully equivalent to the specification items they represent (see Specification Coverage, Section 5.3), the Test Cases that implement these Test Requirements may not fully verify them, for practical reasons. 1075 1076 1077 1078 1079 1080 1081 1082 Some Test Requirements may be difficult or impossible to verify in a satisfactory manner. The reason for this generally resides in an inability to satisfy the pre-condition. When processing a Test Case, the Test Harness will attempt to generate an operational context or situation that intends to satisfy the precondition, and that is supposed to be representative enough of real operational situations. The set of such real-world situations that is generally covered by the pre-condition of the Test Requirement is called the test requirements (or test run-time) coverage of this test Requirement. This happens in the following cases: 1083 1084 1085 1086 Partial run-time coverage: It is in general impossible to generate all the situations that should verify a test. It is however expected that the small subset of run-time situations generated by the Test Harness, is representative enough of all real-world situations that are relevant to the pre- ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 41 of 144 1087 1088 1089 1090 1091 1092 1093 condition. However, it is in some cases obvious that the Test Case definition (and its processing) will not generate a representative-enough (set of) situation(s). It could be that a significant subset of situations identified by the pre-condition of a Test Requirement cannot be practically set-up and verified. For example, this is the case when some combinations of events or of configurations of the implementation will not be tested due to the impracticality to address the combinatorial nature of their aggregation. Or, some time-related situations cannot be tested under expected time constraints. 1094 1095 1096 1097 1098 1099 1100 1101 Contingent run-time coverage: It may happen that the test harness has no complete control in producing the situation that satisfies the pre-condition of a Test Requirement. This is the case for Test Requirements that only concern optional features that an implementation may or may not decide to exhibit, depending on factors under its own control and that are not understood or not easy to control by the test developers. An example is: “ IF the implementation chooses to bundle together messages [e.g. under some stressed operation conditions left to the appreciation of this implementation] THEN the bundling must satisfy condition XYZ”. 1102 1103 1104 1105 1106 When a set of Test Cases is written for a particular set of Test Requirements, the degree of coverage of these Test Requirements by these Test Cases SHOULD be assessed. The Test Requirements coverage – not to be confused with the Specification Coverage - is represented by a list of the Test Requirements Ids, which associates with each Test Requirement: 1107 1108 o The Test Case (or set of Test Cases) that cover it, 1109 o The coverage qualifier, which indicates the degree to which the Test Requirement is covered. 1110 1111 The coverage qualifier may have values: 1112 1113 Full: the Test Requirement item is fully verified by the set of Test Cases. 1114 Contingent: The run-time coverage is contingent (see definition). 1115 1116 Partial: the Test Requirement item is only partially verified by the associated set of Test Cases. The run-time coverage is partial (see definition). 1117 None: the Test Requirement item is not verified at all: there is no relevant Test Case. 1118 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 42 of 144 1119 6 Test Profiles 1120 1121 6.1 The Test Profile Document 1122 1123 1124 The Test Profile document points to a subset of Test Requirements (in the Test Requirements document), that are relevant to the profile - either conformance, or interoperability profile - to be tested. 1125 1126 1127 1128 1129 The document will drives the Test Harness by providing the Test Driver with a list of unique reference IDs of Test Requirements for a particular Test Profile. The Test Driver reads this document, and executes all Test Cases (located in the Test Suite document) that contain a reference to each of the test requirements. A Test Profile driver file MUST validate against the ebXMLTestProfile.xsd file found in Appendix A. A Test Profile example file can be found in section 10.2. 1130 1131 1132 Figure 14 – Graphic representation of ebXMLTestProfile.xsd schema 1133 1134 1135 Definition of Content 1136 Name Description TestProfile Container for all references to test requirements Required requirementsLocation URI of test requirements XML file Required name Name of profile Required description Short description of profile Required Dependency Prerequisite profile reference container Optional name Name of the required prerequisite profile Required profileRef Identifier of prerequisite profile to be loaded by Test Driver Required ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 43 of 144 TestRequirementRef Test Requirement reference Required id Unique Identifier of Test Requirement, as defined in the Test Requirements document Required requirementType Override existing requirement type with enumerated type of (REQUIRED, OPTIONAL, STRONGLY RECOMMENDED or RECOMMENDED) Optional Comment Profile author’s comment for a particular requirement Optional 1137 1138 6.2 Relationships between Profiles, Requirements and Test Cases 1139 1140 1141 1142 Creation of a testing profile requires selection of a group of Test Requirement references that fulfill a particular testing profile. For example, to create a testing profile for a Core Profile would require the creation of an XML document referencing Test Requirements 1,2,3,4,5 and 8. 1143 1144 1145 1146 1147 1148 1149 1150 The Test Driver would read this list, and select (from the Test Requirements Document) the corresponding Test Requirements (and their “sub” Functional Requirements). The Test Driver then searches the Test Suite document to find all Test Cases that “point to” the selected Functional Requirements. If more than one Test Case is necessary to satisfactorily test a single Functional Requirement (as is the case for Functional Requirement #1) there may be more than one Test Case pointing to it. The Test Driver would then execute Test Cases #1, #2 and #3 in order to fully test an ebXML application against Functional Requirement #1. 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 The only test material outside of the three documents below that MAY require an external file reference from within a Test Case are large, or non-XML message Payloads Test Profile XML Document Test Requirements XML Document TestRequirementRef #1 (Validation) TestRequirementRef #2 (Packaging) TestRequirementRef #3 (Core Extension Elements) TestRequirementRef #4 (Error Handling) TestRequirementRef #5 (SyncReply) Test Requirement #1 (Validation) Functional Requirement #1 ( Valid MessageHeader content ) Functional Requirement #2 ( Valid Acknowledgment content ) Functional Requirement #3 ( Valid Signature content ) TesetRequirementRef #8 (Security) Test Requirement #2 (Packaging) ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Functional Requirement #4 ( SOAP message in root 03 April 2003of Page 44 of 144 MME doc ) Functional Requirement #5 ( MIME message type is 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 Test Suite XML Document Test Driver Configuration Data XML Payloads Test Cases Test Case #1 (Test Valid “To content) Test Case #2 (Test Valid “From content) Test Case #3 (Teset Valid ‘MessageData” content) … Message Payloads Figure 15 – Test Framework documents and their relationships 1187 1188 1189 1190 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 45 of 144 1191 7 Test Cases 1192 1193 7.1 Structure of a Test Case 1194 1195 1196 A Test Case is the translation of a Test Requirement (or a part of a Test Requirement), in an executable form, for a particular Test Harness. A Test Case includes the following information: 1197 1198 Test Requirement reference. 1199 A Sequence of Test Steps. 1200 Condition(s) of success or of failure. 1201 1202 1203 1204 1205 1206 NOTE: The same Test Case may consolidate several Test Requirement items, i.e. a successful outcome of its execution will verify the associated set of Test Requirement items. This is usually the case when each of these Test Requirement items can make use of the same sequence of operations, varying only in the final test condition. When several Test Requirement items are covered by the same Test Case, the processing of the latter SHOULD produce separate verification reports. 1207 1208 1209 1210 1211 Test Cases MUST evaluate to a Boolean value of “true/false” or (semantically) a “pass/fail”. The aggregated results of all Test Steps in a Test Case MUST evaluate to “true” for a Test Case result to be “pass”. 1212 1213 1214 Prior to executing a Test Case, any configuration data necessary to modify the default configuration of the Test Driver MUST be included via a reference to a configurationGroupRef. 1215 1216 1217 1218 1219 Figure 16 – Graphic representation of expanded view of the TestCase element 1220 1221 1222 1223 Definition of Content 1224 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 46 of 144 Name Description id Unique identifier for this Test Case Required description Short description of TestCase Optional name Short name for Test Case Required author Name of person(s) creating the Test Case Optional version Version number of Test Case Optional requirementReferenceId Pointer to the unique ID of the FunctionalRequiremt Required configurationGroupRef IDREF to reconfigure Test Driver using selected ConfigurationGroup Optional TestStep Container for send, receive and message verification operations Required Default Value From Test Driver Required/Optional 1225 1226 7.1.1 Test Steps 1227 1228 1229 1230 Test Steps are operations that MUST evaluate to a Boolean value of “true/false” or (semantically) a “pass/fail”. The aggregated results of all Test Steps in a Test Case MUST evaluate to “true” for a Test Case result to be “pass”. 1231 1232 1233 Prior to executing a Test Step, any configuration data necessary to modify the default configuration of the Test Driver MUST be included via a reference to a configurationGroupRef. 1234 1235 7.1.2 Test Step Operations 1236 1237 1238 Within a Test Step, the Test Driver may perform one of two main operations: message construction and transmission (PutMessage) or message retrieval and examination (GetMessage). 1239 1240 1241 Associated with a Test Step are optional and required attributes. Altering the configuration of the Test Driver from its “bootstrap” or “base” configuration may be done through the addition of a configurationGroupRef attribute and its value. 1242 1243 1244 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 47 of 144 1245 Figure 17 – Graphic representation of expanded view of the TestStep element 1246 1247 1248 Definition of Content 1249 Name Description description Short description of Test Step Optional configurationGroupRef Reference to existing ConfigurationGroup to change current configuration for this Test Step Optional repeatTimes Integer value indicating number of times this step should be repeated testStepContext Use CPAId, ConversationId, MessageId and RefToMessageId from previous step number indicated stepDelay Override the default delay between execution of this Test Step and the previous Test Step PutMessage Directive to construct and send an ebXML Message in its entirety (MIME, SOAP, and ebXML) Required GetMessage Directive to retrieve messages from Message Store in their entirety Required Default Value From Test Driver 1 Required/Optional Optional Optional Taken from current ConfigurationGroup value Optional 1250 1251 1252 7.1.3 The PutMessage Operation 1253 1254 1255 1256 1257 The PutMessage Operation builds an ebXML message, along with its SOAP and MIME containers. A minimal Message Declaration is required to create a message, with default values for MIME headers and ebXML message content provided by the Test Driver. A Message Declaration described in a PutMessage Operation MUST validate against the ebXMLTestSuite.xsd schema in Appendix C. 1258 1259 1260 The message components that can be created and modified by PutMessage include: 1261 1262 1263 1264 MIME header data: MIME headers MUST be created or modified using the declarative syntax described in the ebXMLTestSuite.xsd schema in Appendix C. Default message MIME header data is illustrated in the message envelope template in section 7.1.6. How the MIME headers are ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 48 of 144 actually constructed is implementation dependent. Test Drivers operating in “service” mode MAY ignore the MIME portion of a Message Declaration, since message MIME manipulation may be unavailable at the application level interface used for a particular ebXML MSH implementation. Test drivers in “connection” mode MUST properly interpret the MIME portion of a Message Declaration and generate the appropriate MIME header information. 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 SOAP header and body data: SOAP message content MUST be created or modified using the declarative syntax described in the ebXMLTestSuite.xsd schema described in Appendix C. Default message SOAP content is illustrated in the message envelope template in section 7.1.6. How the actual SOAP message is constructed is implementation dependent. Test Drivers operating in “service” mode MAY ignore the SOAP portion of a MessageDeclaration, since message SOAP manipulation may be unavailable at the application level interface used for an MSH implementation. Test drivers in “connection” mode MUST properly interpret the SOAP portion of a Message Declaration and generate the appropriate SOAP header information. ebXML Message data: ebXML message content MUST be created or modified using the declarative syntax described in the ebXMLTestSuite.xsd schema described in Appendix C. How the actual ebXML message is constructed is implementation dependent. Test drivers operating in both “service” and “connection” modes MUST properly interpret the ebXML portion of a Message Declaration, and generate the appropriate ebXML content. ebXML payload data: ebXML message payload content, when there is a payload, MUST be created or modified using the syntax described in the ebXMLTestSuite.xsd schema described in Appendix C. ebXML payloads are created through file or through an XML ID reference inclusion into a message, and MAY be modified through any implementation-specific XML syntax. 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 In addition to creating message content, the PutMessage operation can also execute sub-operations to create payloads, digitally sign any portion of the message and set global Test Case parameters that can be used by other Test Steps in the current Test Case in their XPath evaluation of message content. 1294 1295 1296 Figure 18 – Graphic representation of expanded view of the PutMessage element 1297 1298 1299 1300 1301 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 49 of 144 1302 Definition of Content 1303 Name Description description Metadata describing the nature of the PutMessage operation Boolean attribute directive to purge the Test Driver Message Store of all previous received messages for this particular Test Case clearMessageStore Default Value From Test Driver Required/Optional Required false Optional MessageDeclaration Container for XML content to construct the message Required SetPayload Container element for Test Driver directives to create MIME attachments (or Payloads) to message Optional DSign Container element for XML Digital Signature declaration(s) for this message Optional SetParameter Container for user-defined parameter to be made available to other Test Steps (source can be this message’s content retrieved via XPath statement or simply a user-supplied string value) Optional parameterType Choice of Xpath or string Required Name Name of new parameter Required Value String value or XPath expression pointing to desired element/attribute value in message or simply a user-supplied string value Required 1304 1305 7.1.4 The Message Declaration 1306 1307 1308 1309 1310 1311 The MessageDeclaration element is a container element for XML content describing the construction of MIME, SOAP and ebXML portions of a message. The XML content necessary to describe a basic message is minimal, with default parameter values supplied by the Test Driver for most message content. If the test developer wishes to “override” the default element and attribute values, they may do so by explicitly declaring those values in the XML markup. 1312 1313 1314 1315 1316 Default values for element and attribute content may come from two sources. Either the Test Driver/MSH generates that value, (such as for message Timestamp ), or the value is declared in the ConfigurationGroup parameters described in section 4.2.1. For example, a Test Suite ConfigurationGroup element content may be: 1317 1318 1319 1320 1321 <ebTest:ConfigurationGroup ebTest:id="cpa_basic"> <ebTest:CPAId>cpa_basic</ebTest:CPAId> <ebTest:Mode>connect</ebTest:Mode> <ebTest:SenderParty>urn:oasis:iic:testdriver</ebTest:SenderParty> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 50 of 144 1322 1323 1324 1325 <ebTest:ReceiverParty>urn:oasis:iic:testservice</ebTest:ReceiverParty> <ebTest:Service>urn:ebXML:iic:test.</ebTest:Service> <ebTest:Action>Dummy</ebTest:Action> </ebTest:ConfigurationGroup> 1326 1327 1328 1329 1330 A Test Driver could then read the MessageDeclaration (below) authored by the test writer and build the message, inserting element and attribute content wherever it knows default content should be, and declaring, or overriding default values where they are explicitly defined in the Message Declaration. 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 <ebTest:MessageDeclaration> <mime:Message> <mime:MessageContainer> <soap:Envelope> <soap:Header> <eb:MessageHeader/> </soap:Header> <soap:Body /> </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> 1345 1346 1347 1348 1349 For illustrative purposes, the resulting message can be represented by the example message below. The Test Driver, after parsing the simple Message Declaration above, would generate the following MIME message with enclosed SOAP/ebXML content. 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 Content-Type: multipart/related; type="text/xml"; boundary="boundaryText"; [email protected] --boundaryText Content-ID: <[email protected]> Content-Type: text/xml; charset="UTF-8" <soap:Envelope xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header2_0.xsd" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://www.oasis-open.org/committees/ebxml-msg/schema/envelope.xsd http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"> <soap:Header> <eb:MessageHeader soap:mustUnderstand="1" eb:version="2.0"> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 51 of 144 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 <eb:From> <eb:PartyId>urn:oasis:iic:testdriver</eb:PartyId> </eb:From> <eb:To> <eb:PartyId>urn:oasis:iic:testservice</eb:PartyId> </eb:To> <eb:CPAId> urn:config:cpa_basic</eb:CPAId> <eb:ConversationId> 987654321</eb:ConversationId> <eb:Service>urn:ebXML:iic:test</eb:Service> <eb:Action>Dummy</eb:Action> <eb:MessageData> <eb:MessageId>0123456789</eb:MessageId> <eb:Timestamp>2000-07-25T12:19:05</eb:Timestamp> MessageData> </eb:MessageHeader> </soap:Header> </soap:Envelope> --boundaryText 1391 1392 1393 1394 1395 Certain XML message values (illustrated in red above) are supplied by the Test Driver, and are also made available to subsequent Test Step operations through global XPath parameter names. These parameters define the Test Step Context: 1396 1397 $CPAId 1398 $ConversationId 1399 $MessageId 1400 $RefToMessageId 1401 $Service 1402 $Action 1403 $SenderParty 1404 $ReceiverParty 1405 1406 1407 1408 1409 Some of these values dynamically change with each PutMessage operation. These include MessageId. Other’s change with each Test Case ($ConversationId). Still other parameters remain “constant” within the scope of the current ConfigurationGroup definition ($CPAId, $Service, $Action, $SenderParty and $ReceiverParty). ALL can be “overridden” through explicit declaration in the Message Declaration. 1410 1411 1412 1413 1414 1415 The ebXMLTestSuite.xsd schema in Appendix C defines the format for element and attribute content declaration. However, the schema alone DOES NOT define default element content, since this is beyond the capability of schemas. Therefore, Test Driver implementers MUST consult the “Definition of Content” tables for this section of the specification to determine what default XML content must be generated by the Test Driver or MSH to create a valid ebXML message. 1416 1417 1418 The following sections description of how a Test Driver or MSH MUST interpret the MessageDeclaration content in order to be conformant to this specification. 1419 1420 7.1.4.1 Interpreting the MIME portion of the Message Declaration 1421 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 52 of 144 1422 1423 1424 1425 1426 The XML syntax used by the Test Driver to construct the MIME message content consists of the declaration of a main MIME container for the entire message, followed by a MIME container for the SOAP message envelope. Default values for MIME headers MAY be “overridden” by explicit declaration of their values in the MessageDeclaration content; otherwise, default values are used by the Test Driver to construct the MIME headers. 1427 1428 1429 Figure 19 – Graphic representation of expanded view of the MessageDeclaration element 1430 1431 1432 Definition of Content 1433 Name Declaration Description mime:Message Generate container for MIME, SOAP and ebXML message content contentType Generate a MIME message ‘ContentType’ header multipart/related Optional type Generate a MIME message ‘type’ header text/xml Optional MessageContainer Generate a MIME container in message contentId Generate a ‘Content-ID’ MIME header for the container messagepackage @oasis.org Optional contentType Generate a MIME message package ‘Content-Type’ header text/xml Optional charset Generate a MIME message package character set UTF-8 Optional soap:Envelope Generates a MIME container for SOAP message Default Value From Test Driver Required/Optional Required Required Required 1434 1435 1436 An Example of Minimal MIME Declaration Content 1437 1438 1439 1440 The following XML represents all the information necessary to permit a Test Driver to construct a MIME message that may contain a SOAP envelope in its first MIME container. The XML document below validates against the ebXMLTestSuite.xsd schema in Appendix C. 1441 1442 1443 <mime:Message xmlns:mime="http://www.oasis-open.org/tc/ebxml-iic/testing/mime"> <mime:MessageContainer/> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 53 of 144 1444 </mime:Message> 1445 1446 1447 7.1.4.2 Interpreting the SOAP portion of the Message Declaration 1448 1449 1450 1451 1452 1453 1454 The XML syntax interpreted by the Test Driver to construct the SOAP message content consists of the declaration of a SOAP Envelope element, which in turn is a container for the SOAP Header, Body and non-SOAP XML content. Construction of the SOAP Header and Body content is simple for the Test Driver, requiring only the creation of the two container elements with their namespace properly declared, and valid according to the [SOAP]. The SOAP Body element, or any “wildcard” XML content is only constructed by the Test Driver if it is explicitly declared in the content. 1455 1456 1457 1458 Figure 20 – Graphic representation of expanded view of the soap:Envelope element declaration 1459 1460 1461 1462 1463 Definition of Content 1464 Name Declaration Description soap:Envelope Generate container element with its proper namespace for SOAP Header and Body elements and their content Required soap:Header Generate SOAP Header extension element Required soap:Body Modify the default Body element #wildCard Generate “inline” wildcard content inside SOAP Envelope Default Value From Test Driver Element is autogenerated by Test Driver at run time Required/Optional Optional Optional 1465 1466 1467 1468 An Example of Minimal SOAP Declaration Content ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 54 of 144 1469 1470 1471 The following XML represents all the information necessary to permit a Test Driver to construct a minimal SOAP message. 1472 1473 1474 1475 <soap:Envelope> <soap:Header/> </soap:Envelope> 1476 1477 7.1.4.3 Interpreting the SOAP Header Extension Element Declaration 1478 1479 1480 1481 1482 1483 1484 1485 The declarative syntax interpreted by the Test Driver to construct the ebXML Header extension message content consists of the declaration of a SOAP Header element, which in turn is a container for the ebXML Header extension elements and their content. The only extension element that is required in the container is the eb:MessageHeader element, which directs the Test Driver to construct an ebXML MessageHeader element, along with its proper namespace declaration, as defined in [EBMS]. The Test Driver does not construct any other Header extension elements unless they are explicitly declared as content in the SOAP Header Declaration. 1486 1487 1488 1489 Figure 21 – Graphic representation of expanded view of the soap:Header element declaration 1490 1491 1492 1493 1494 Definition of Content 1495 1496 Name Declaration Description Header SOAP Header declaration and container for ebXML ebXML Header Extension Element declarations Create an ebXML MessageHeader element with namespace declaration eb:MessageHeader ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Required Required 03 April 2003 Page 55 of 144 eb:ErrorList Create an ebXML ErrorList element Optional eb:SyncReply Create an ebXML SyncReply element Optional eb:MessageOrder Create an ebXML MessageOrder element Create an ebXML AckRequested element Create an ebXML Acknowledgment element Optional eb:AckRequested eb:Acknowledgment Optional Optional 1497 1498 1499 7.1.4.4 Interpreting the ebXML MessageHeader Element Declaration 1500 1501 1502 1503 1504 1505 1506 1507 1508 The XML syntax interpreted by the Test Driver to construct the ebXML MessageHeader extension content consists of the declaration of a MessageHeader element, and a required declaration of CPAId and Action elements within it. This is the ”minimum” declaration aTest Driver needs to generate an ebXML Message Header. All other required content, as defined in the schema in the ebXML MS v2.0 Specification, is provided by the Test Driver through either default parameters defined in the ebXMLTestSuite.xsd schema in Appendix C, or directly generated by the Test Driver (e.g. to generate necessary message container elements) or by explicit declaration of content in the Message Declaration. The figure below illustrates the schema for an ebXML Message Header declaration to be interpreted by the Test Driver. 1509 1510 1511 1512 Figure 22 – Graphic representation of expanded view of the ebXML MessageHeader element declaration 1513 1514 Definition of Content 1515 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 56 of 144 Name Declaration Description eb:MessageHeader Generate MessageHeader element and all of its default element/attribute content Required id Generate attribute with declared value Optional version Modify default attribute value 2.0 Optional soap:mustUnderstand Modify default attribute value true Optional From Modify default From message element generated by Test Driver Generated by Test Driver/MSH at run time Optional PartyId Replace default element value with new value Default Value From Test Driver Required/Optional Required Generated by Test Driver/MSH at run time, using config value type Generate a type attribute with value Optional Role Generates a Role element with its value Optional To Modify default To message element generated by Test Driver PartyId Replace default element value with new value Generated by Test Driver at run time Optional Required Generated by Test Driver/MSH at run time, using config value type Generate type attribute with value Optional Role Generates a Role element with its value Optional CPAId Generate element with its value Generated by Test Driver/MSH at run time, using config value Optional ConversationId Modify default value provided by Test Driver Generated by Test Driver at run time Optional Service Modify default value generated by Test Driver Generated by Test Driver/MSH at run time, using config value Optional Action Replace default value with Generated by Test ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 57 of 144 specified Action name Driver/MSH at run time, using config value Optional MessageData Modify default container generated by Test Driver Generated by Test Driverat run time Optional MessageId Modify default value generated by Test Driver Generated by Test Driver at run time Optional Timestamp Modify default value generated by Test Driver Generated by Test Driver at run time Optional RefToMessageId Generate element and its value TimeToLive Generate element and its value DuplicateElimination Generate element Optional Description Generate element with value Optional #wildcard Generate content inline Optional Optional Generated by Test Driver at run time Optional 1516 1517 1518 An Example of a Minimal ebXML MessageHeader Content Declaration 1519 1520 1521 1522 The following XML represents all the information necessary to permit a Test Driver to construct an ebXML MessageHeader element with all necessary content to validate against the ebXML MS V2.0 schema. All declared content must validate the ebXMLTestSuite.xsd schema in Appendix C. 1523 1524 <eb:MessageHeader/> 1525 1526 7.1.4.5 Interpreting the ebXML ErrorList Element Declaration 1527 1528 1529 1530 1531 1532 The XML syntax interpreted by the Test Driver to construct the ebXML ErrorList extension content consists of the declaration of an ErrorList element, and a required declaration of one or more Error elements within it. All required content, as defined in the schema in the ebXML MS V2.0 Specification, is provided through either default parameters defined in the ebXMLTestSuite.xsd schema and included by the Test Driver, or by explicit declaration. 1533 1534 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 58 of 144 1535 1536 Figure 23 – Graphic representation of expanded view of the ebXML ErrorList element declaration 1537 1538 1539 Definition of Content 1540 Name Declaration Description eb:ErrorList Generate container element Optional id Generate attribute and its value Optional version Modify default value 2.0 Optional soap:mustUnderstand Modify default value true Optional highestSeverity Generate required attribute and value Required Error Generate new Error container Required id Generate attribute with declared value Optional codeContext Generate element with declared value Optional errorCode Generate required attribute and value Required severity Generate required attribute and value Required location Generate attribute with declared value Optional Description Generate element with declared value Optional #wildCard Generate content “inline” into message Optional Default Value From Test Driver Required/Optional 1541 1542 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 59 of 144 1543 1544 An Example of a Minimal ebXML ErrorList Content Declaration 1545 1546 1547 1548 The following XML represents all the information necessary to permit a Test Driver to construct an ebXML ErrorList element with all necessary content to validate against the ebXML MS v2.0 schema. All required content not visible in the example would be generated by the Test Driver. 1549 1550 1551 1552 <eb:ErrorList eb:highestSeverity=Error"> <eb:Error eb:errorCode=”Inconsistent” eb:severity=”Error”/> </eb:ErrorList> 1553 1554 1555 7.1.4.6 Interpreting the ebXML SyncReply Element Declaration 1556 1557 1558 1559 1560 The XML syntax interpreted by the Test Driver to construct the ebXML SyncReply extension content consists of the declaration of a SyncReply element. All required content, as defined in the schema in [EBMS], is provided through either default parameters provided by the Test Driver or through explicit declaration. 1561 1562 1563 1564 Figure 24 – Graphic representation of expanded view of the ebXML SyncReply element declaration 1565 1566 1567 1568 1569 1570 Definition of Content 1571 Name Declaration Description eb:SyncReply Generate container element and all default content Optional id Generate attribute and its value Optional version Modify default attribute value 2.0 Optional soap:mustUnderstand Modify default attribute value true Optional soap:actor Modify default attribute value http://schemas.xmlsoap.o rg/soap/actor/next Optional #wildCard Generate content “inline” ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Optional 03 April 2003 Page 60 of 144 1572 1573 1574 1575 1576 1577 An Example of a Minimal ebXML SyncReply Content Declaration 1578 1579 1580 The following XML represents all the information necessary to permit a Test Driver to construct an ebXML AckRequested element with all necessary content to validate against the [EBMS] schema schema. 1581 1582 1583 <eb:SyncReply/> 7.1.4.7 Interpreting the ebXML AckRequested Element Declaration 1584 1585 1586 1587 The XML syntax interpreted by the Test Driver to construct the ebXML AckRequested extension content consists of the declaration of an AckRequested element. All required content as defined in the [EBMS] schema, is provided by the Test Driver or by explicit declaration. 1588 1589 1590 1591 Figure 25 – Graphic representation of expanded view of the ebXML AckRequested element declaration 1592 1593 1594 Definition of Content 1595 Name Declaration Description eb:AckRequested Generate container element and all default content Optional id Generate attribute and its value Optional version Modify default value 2.0 Optional soap:mustUnderstand Modify default value true Optional soap:actor Modify default attribute value with new value urn:oasis:names:tc:eb xmlmsg:actor:toPartyMSH Optional signed Modify default attribute value false Optional #wildCard Generate content “inline” ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Optional 03 April 2003 Page 61 of 144 1596 1597 1598 1599 An Example of a Minimal ebXML AckRequested Content Declaration 1600 1601 1602 The following XML represents all the information necessary to permit a Test Driver to construct an ebXML AckRequested element with all necessary content to validate against the [EBMS] schema. 1603 1604 <eb:AckRequested/> 1605 1606 7.1.4.8 Interpreting the ebXML Acknowledgment Element Declaration 1607 1608 1609 1610 The XML syntax interpreted by the Test Driver to construct the ebXML Acknowledgment extension content consists of the declaration of an Acknowledgment element. All required content, as defined in the [EBMS] schema, is provided by the Test Driver or through explicit declaration. 1611 1612 1613 1614 Figure 26 – Graphic representation of expanded view of the ebXML Acknowledgment element declaration 1615 1616 1617 Definition of Content 1618 Name Declaration Description ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 62 of 144 eb:Acknowledgment Generate container element and all default content Optional id Generate attribute and its value Optional version Modify default attribute value 2.0 Optional soap:mustUnderstand Modify default attribute value true Optional soap:actor Modify default attribute value urn:oasis:names:tc:eb xmlmsg:actor:toPartyMSH Optional Timestamp Modify default element value Generated by Test Driver at run time Optional RefToMessageId Modify default element value Generated by Test Driver at run time Optional From Modify default container Generated by Test Driver at run time Optional PartyId Modify default value urn:ebxml:iic:testdriver Required type Generate type attribute with value Optional Role Generates a Role element with its value Optional ds:Reference Generate container element and all default content Optional Id Generate attribute and its value Optional URI Modify default attribute value type Generate attribute and its value Optional Transforms Generate container relement Optional Transform Generate element with its value Optional Algorithm Modify default attribute value #wildCard Generate content “inline” Optional XPath Generate element with its value Optional DigestMethod Generate element with its value Required Algorithm Modify default attribute value #wildCard Generate content “inline” ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. “” http://www.w3.org/TR/ 2001/REC-xml-c14n20010315 Generated by Test Driver at run time, based upon CPA Required Required Required Optional 03 April 2003 Page 63 of 144 DigestValue Generate element with its value #wildCard Generate content “inline” Computed by Test Driver at run time Required Optional 1619 1620 1621 1622 An Example of a Minimal “unsigned” ebXML Acknowledgment Content Declaration 1623 1624 1625 The following XML represents the minimum information necessary to permit a Test Driver to construct an ebXML Acknowledgment element. 1626 1627 <eb:Acknowledgment/> 1628 1629 1630 7.1.4.9 Interpreting the ebXML MessageOrder Element Declaration 1631 1632 1633 1634 The XML syntax interpreted by the Test Driver to construct the ebXML MessageOrder extension content consists of the declaration of a MessageOrder element. All required content, as defined in the [EBMS] schema, is provided by the Test Driver or through explicit declaration. 1635 1636 1637 Figure 27 – Graphic representation of expanded view of the ebXML MessageOrder element declaration 1638 1639 1640 Definition of Content 1641 Name Declaration Description eb:MessageOrder Generate container element and all default content Optional id Generate attribute and its value Optional version Modify default attribute value 2.0 Optional soap:mustUnderstand Modify default attribute value true Optional SequenceNumber Generate element with declared value ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Required 03 April 2003 Page 64 of 144 status Generate attribute with declared value Optional #wildCard Generate content “inline” Optional 1642 1643 1644 An Example of a Minimal ebXML MessageOrder Content Declaration 1645 1646 1647 The following XML represents all the information necessary to permit a Test Driver to construct an ebXML MessageOrder element. 1648 1649 1650 1651 <eb:MessageOrder> <eb:SequenceNumber>1</eb:SequenceNumber> </eb:MessageOrder> 1652 1653 7.1.4.10 Interpreting the SOAP Body Extension Element Declaration 1654 1655 1656 1657 The XML syntax used by the Test Driver to construct the ebXML Body extension message content consists of the declaration of a SOAP Body element, which in turn is a container for the ebXML Manifest, StatusRequest or StatusResponse elements. 1658 1659 The Test Driver does not construct any of these SOAP Body extension elements unless they are explicitly declared as content in the SOAP Body Declaration. 1660 1661 1662 1663 Figure 28 – Graphic representation of expanded view of the soap:Body element declaration 1664 1665 7.1.4.11 Interpreting the ebXML Manifest Element Declaration 1666 1667 1668 1669 The XML syntax interpreted by the Test Driver to construct the ebXML Manifest extension content consists of the declaration of a Manifest element. All required content, as defined in the [EBMS] schema, is provided by the Test Driver or through explicit declaration 1670 1671 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 65 of 144 1672 1673 Figure 29 – Graphic representation of expanded view of the ebXML Manifest element declaration 1674 1675 1676 Definition of Content 1677 Name Declaration Description eb:Manifest Generate container element and all default content Optional id Generate attribute and its value Optional version Modify default attribute value 2.0 Optional id Modify default attribute value true Optional xlink:type Generate element with declared value Optional xlink:href Generate attribute with declared value Required xlink:role Generate attribute with declared value Modify the Content-ID MIME header of the payload Set the the Content-Type MIME header of the payload Set the the Content-Location MIME header of the payload Generate schema container element Generate URI attribute and value of schema location Generate schema version attribute and value Generate description element and value Optional contentId contentType contentLocation Schema location version Description ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Optional Optional Optional Optional Required Optional Optional 03 April 2003 Page 66 of 144 xml:lang Generate description language attribute and value Required PayloadLocation Load specified file as a MIME attachment to message Required MessageRef Load designated XML document via IDREF as a MIME attachment to message Required PayloadDeclaration “Inline” the XML content of this element as a MIME message attachment Required 1678 1679 1680 An Example of a Minimal ebXML Manifest Content Declaration 1681 1682 1683 The following XML represents the minimum information necessary to permit a Test Driver to construct an ebXML Manifest element with all necessary content to validate against the ebXML MS v2.0 schema. 1684 1685 1686 1687 1688 <eb:Manifest> <eb:Reference xlink:href=”cid:payload_1”/> </eb:Manifest> 7.1.4.12 Interpreting the ebXML StatusRequest Element Declaration 1689 1690 1691 1692 1693 The XML syntax interpreted by the Test Driver to construct the ebXML StatusRequest extension content consists of the declaration of a StatusRequest element. All required content, as defined in the [EBMX] schema. All required content, as defined in the [EBMS] schema, is provided by the Test Driver or through explicit declaration 1694 1695 1696 Figure 30 – Graphic representation of expanded view of the ebXML StatusRequest element declaration 1697 1698 1699 Definition of Content 1700 Name Declaration Description eb:StatusRequest Generate container element and all default content Optional id Generate attribute and its value Optional ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 67 of 144 version Modify default value RefToMessageId Generate element and its value Required #wildCard Generate content “inline” Optional 2.0 Optional 1701 1702 1703 An Example of a Minimal ebXML StatusRequest Content Declaration 1704 1705 1706 The following XML represents all the minimum information necessary to permit a Test Driver to construct an ebXML StatusRequest element with all necessary content to validate against the [EBMS] schema. 1707 1708 1709 1710 <eb:StatusRequest> <eb:RefToMessageId>[email protected]</eb:RefToMessageId> </eb:StatusRequest> 1711 1712 1713 7.1.4.13 Interpreting the ebXML StatusResponse Element Declaration 1714 1715 1716 1717 The XML syntax used by the Test Driver to construct the ebXML StatusResponse extension content consists of the declaration of a StatusResponse element with required and optional element/attribute content. 1718 1719 1720 Figure 31 – Graphic representation of expanded view of the ebXML StatusResponse element declaration 1721 1722 1723 Definition of Content 1724 Name Declaration Description eb:StatusResponse Generate container element and all default content Optional id Generate attribute and its value Optional version Modify default attribute value messageStatus Generate attribute and its ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver 2.0 Required/Optional Optional Optional 03 April 2003 Page 68 of 144 value RefToMessageId Generate element and its value Timestamp Modify default value #wildCard Generate content “inline” Required Generated by Test Driver at run time Optional Optional 1725 1726 1727 An Example of a Minimal ebXML StatusResponse Content Declaration 1728 1729 1730 The following XML represents all the information necessary to permit a Test Driver to construct an ebXML StatusResponse element with all necessary content to validate against the [EBMX] schema. 1731 1732 <eb:StatusResponse messageStatus=”Processed”/> 1733 1734 1735 7.1.5 The SetPayload Operation 1736 1737 1738 1739 1740 The SetPayload Operation is a sub-operation for the PutMessage Operation. It provides the Test Driver with the necessary information to append a message payload. Payloads can be provided to the driver through a file name reference, an in-memory message document reference, or can be constructed “onthe-fly” through any declarative syntax specific to an ebXML application. 1741 1742 1743 1744 Figure 32 – Graphic representation of expanded view of the SetPayload element ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 69 of 144 1745 1746 1747 Definition of Content 1748 Name Description description Metadata describing the nature of the SetPayload operation Set the Content-Id MIME header of the payload Required Set the the MIME Content-Location header of the payload Required Content-ID Content-Location FileURI URI of the file to be loaded as a payload Default Value Required/Optional Required Required PayloadRef Unique ID of the in memory XML document to be loaded as the payload Required MimeHeader Set any type of MIME header name Optional MimeHeaderValue Set corresponding MIME header value Optional SetParameter Container for user-defined parameter to be made available to other Test Steps ( source can be this message’s content retrieved via XPath statement or simply a user-supplied string value) Optional parameterType Choice of xpath or string Required Name Name of new parameter Required Value String value or XPath expression pointing to desired element/attribute value in payload, or simply a user-supplied string value Required 1749 1750 1751 7.1.6 The Dsign Operation 1752 1753 1754 The DSign Operation instructs the Test Driver to digitally sign the portion of the message defined in its Reference element content. 1755 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 70 of 144 1756 1757 Figure 33 – Graphic representation of expanded view of the DSign element 1758 1759 1760 Definition of Content 1761 Name Description DSign Container for Signature declaration content Signature root element, as defined in [XMLDSIG] Unique identifier for Signature Create container for Canonicalizatoin and Signature algorithms and ds:Signature Id SignedInfo ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Optional Required Optional Required 03 April 2003 Page 71 of 144 CanonicalizationMethod Algorithm #wildCard SignatureMethod References Modify default container element Modify default attribute and value Generate content “inline” Create container element Container auto-generated by Test Driver Optional http://www.w3.org/TR/2001/REC- Required xml-c14n-20010315 Optional Required Algorithm Create attribute and value HMACOutputLength Generate Element and its value Generate content “inline” #wildcard Required Optional Optional ds:Reference Generate container element and all default content Optional Id Generate attribute and its value Optional URI Modify default attribute value type Generate attribute and its value Optional Transforms Generate container relement Optional Transform Generate element with its value Optional Algorithm Modify default attribute value #wildCard Generate content “inline” Optional XPath Generate element with its value Optional DigestMethod Generate element with its value Required “” http://www.w3.org/TR/2001/RECxml-c14n-20010315 Algorithm Optional Required Required Generate attribute and value #wildCard Generate content “inline” DigestValue Generate element ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Optional Set by Test Driver, based upon URI 03 April 2003 Page 72 of 144 with its value #wildCard Generate content “inline” SignatureValue Generate element and its value Id Generate attribute and its value KeyInfo Generate container Element Object Generate container element value Optional Optional Set by Test Driver at run time Optional Optional All required and optional content, as described in [XMLDSIG] MUST be explicitly declared (no autogeneration by Test Driver) Optional Optional 1762 1763 1764 7.1.7 The GetMessage Operation 1765 1766 1767 1768 1769 The GetMessage Operation, using its child XPath Filter query retrieves a node-list of Messages received from from the Message Store of the Test Driver. The content of the node-list is dependent upon the Filter provided. The resulting node-list MAY be queried for Precondition or Test Condition tests. Any Payload associated with a message MAY be queried through the GetPayload operation. 1770 1771 1772 1773 Figure 34 – Graphic representation of expanded view of the GetMessage element 1774 1775 1776 1777 Definition of Content 1778 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 73 of 144 Name Description GetMessage Container element for filtering, verifying and validating message and payload content Optional description Description the nature of the GetMessage operation Required getMultiple By default, getMultiple is “false”, indicating that only one message should be present in the node-list , even if multiple messages are in the Message Store testStepContext Integer value corresponding to previous Test Step number whose ConversationId, CPAId, MessageId and RefToMessageId is re-used Optional Filter XPath query to select message(s) from Message Store Required TestPreCondition Container for verification or validation operation to be performed on message as pre-condition to testing the Assertion Optional TestAssertion Container for verification or validation operation to be performed to test a conformance or interoperability assertion Optional SetParameter Container for user-defined parameter to be made available to other Test Steps ( source can be this message’s XML content retrieved via XPath statement or simply a user-supplied string value) Optional parameterType Choice of xpath or string Required Name Name of new parameter Required Value String value or XPath expression pointing to desired element/attribute value in message, or simply a user-supplied string value Required Default Value from Test Driver false Required/Optional Optional 1779 1780 1781 1782 Semantics of the GetMessage operation 1783 1784 1785 1786 1787 1788 1789 1790 The Message Store is an XML document object that contains an XML representation of all synchronous and asynchronously received ebXML messages for a Test Case. The received messages for a particular Test Case MUST exist in the Message Store only for the life of the Test Case. Messages in the Message Store contain all MIME, SOAP and ebXML content, represented as an XML document. The XML format of the Message Store document MUST validate against the ebXMLMessageStore.xsd schema in appendix D 1791 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 74 of 144 1792 1793 1794 1795 1796 1797 The GetMessage operation queries the Message Store document object, and retrieves (by default) the earliest (determined by Timestamp) Message element and its XML content that satisfies the XPath expression in its Filter child element. If multiple Messages satisfy the XPath Filter expression, they MAY be included in the resulting node-set by setting the “getMultiple” attribute of the GetMessage element to “true”. This is useful when a test writer wishes to count the number of “duplicate” messages received by the Test Driver for example. 1798 1799 1800 A TestPreCondition or TestAssertion operation MAY query the resulting node-list generated by a GetMessage operation 1801 1802 1803 1804 1805 1806 In addition, new parameters that can be used by other Test Steps in this Test Case may be created using the SetParameter sub-operation. The new parameter can be used in other XPath expressions as an XPath parameter value. The SetParameter operation can select a discreet element or attribute value using the XPath expression supplied in the “Value” sub-element. Or the SetParameter operation can define a new parameter through a simple user-supplied string value assignment to the parameter. 1807 1808 1809 7.1.8 The TestPreCondition Operation 1810 1811 1812 1813 The TestPreCondition Operation examines a message or messages in a GetMessage node-list by testing the content of the node-list against the VerifyContent (content value comparison) or ValidateContent (content integrity evaluation) operation. 1814 1815 1816 1817 1818 Figure 35 – Graphic representation of expanded view of the TestPreCondition element 1819 1820 1821 1822 Definition of Content 1823 Name Description description Metadata describing the nature of the TestPreCondition operation Required VerifyContent Use XPath expression to evaluate content of message(s) Optional ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 75 of 144 verifyMethod Either XPath or mda-5 ( for message or payload integrity test ) Optional ValidateContent Empty if entire XML document is to be validated or XPath expression to “point to” content to be validated for correct format if type is URI, dateTime or Signature Optional contentType An enumerated list of XML, URI, time, or Signature validation descriptors Optional schemaLocation URI pointing to location of schema used to validate a content type of XML Optional 1824 1825 1826 1827 Semantics of the TestPreCondition operation 1828 1829 1830 The TestPreCondition operation MUST return either a true or false result (or semantically a pass/fail result) to the Test Driver. 1831 1832 1833 1834 1835 1836 If TestPreCondition includes a VerifyContent sub-operation, the VerifyContent operation MUST yield a boolean value of true/false, regardless of the resulting XPath object yielded by the XPath expression. The VerifyContent XPath expression may yield a node-set, boolean, number or string object. All of these resulting objects MUST be evaluated using the “boolean” function described in [XPath]. Those evaluation rules are: 1837 1838 a returned node-set object evaluates to true if and only if it is non-empty 1839 a returned boolean object evaluates to true if it evaluates to “true” and false if it evaluates to “false” 1840 1841 NaN 1842 1843 a returned number object evaluates to true if and only if it is neither positive or negative zero nor a returned string object evaluates to true if and only if its length is non-zero 1844 1845 1846 1847 If TestPreCondition includes a ValidateContent sub-operation, the ValidateContent operation MUST yield a boolean value of true/false. Rules for determining the resulting Boolean value are: 1848 1849 if the contentType attribute value is XML, as defined in [XML] , the operation evaluates to true if 1850 the content at the specified XPath validates according to the schema defined in the 1851 “schemaLocation” attribute ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 76 of 144 1852 content at the specified XPath is a valid URI 1853 1854 if the contentType is dateTime, as defined in [XMLSCHEMA], the operation evaluates to true if the content af the specified XPath is a valid dateTime 1855 1856 if the contentType is URI, as defined in [XMLSCHEMA], the operation evaluates to true if the if the contentType is signature, as defined in [XMLDSIG], the operation evaluates to true if the content at the specified XPath is a validly signed element. 1857 1858 1859 1860 7.1.9 The TestAssertion Operation 1861 1862 1863 1864 1865 1866 The TestAssertion Operation examines a message or messages in a node-list by testing the content against an XPath expression in the TestPreCondition text. If the XPath expression returns a node-list with one or more nodes, the ConformanceCondition is “true”, else it is “false”. Within a TestAssertion Operation, content of the node-list can be further examined through the VerifyContent (content evaluation) or ValidateContent (content format evaluation). 1867 1868 1869 1870 1871 Figure 36 – Graphic representation of expanded view of the TestAssertion element 1872 1873 1874 Definition of Content 1875 Name Description description Metadata describing the nature of the TestPreCondition operation Metadata describing whether this Conformance Condition MUST or MAY exist ( for use in test reporting ) Required VerifyContent Use XPath expression to evaluate content of message(s) Optional verifyMethod Either XPath or mda-5 ( for message or payload integrity test ) requirement ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional Optional 03 April 2003 Page 77 of 144 ValidateContent Empty if entire XML document is to be validated or XPath expression to “point to” content to be validated for correct format if type is URI, dateTime or Signature Optionial contentType An enumerated list of XML, URI, dateTime, or signature validation descriptors Optional schemaLocation URI describing location of validating XML schema, as defined in [XMLSCHEMA] Optional 1876 1877 Semantics of the TestAssertion operation 1878 1879 1880 The TestAssertion operation MUST return either a true or false result (or semantically a pass/fail result) to the Test Driver. 1881 1882 1883 1884 1885 1886 If TestAssertion includes a VerifyContent sub-operation, the VerifyContent operation MUST yield a boolean value of true/false, regardless of the resulting XPath object yielded by the XPath expression. The VerifyContent XPath expression may yield a node-set, boolean, number or string object. All of these resulting objects MUST be evaluated using the “boolean” function described in [XPath]. Those evaluation rules are: 1887 1888 1889 1890 1891 1892 1893 a returned node-set object evaluates to true if and only if it is non-empty a returned boolean object evaluates to true if it evaluates to “true” and false if it evaluates to “false” a returned number object evaluates to true if and only if it is neither positive or negative zero nor NaN a returned string object evaluates to true if and only if its length is non-zero 1894 1895 1896 1897 1898 If TestAssertion includes a ValidateContent sub-operation, the ValidateContent operation MUST yield a boolean value of true/false. Rules for determining the resulting Boolean value are: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 if the contentType attribute value is XML, as defined in [XML], the operation evaluates to true if the content at the specified XPath validates according to the schema defined in the “schemaLocation” attribute if the contentType is URI, as defined in [XMLSCHEMA], the operation evaluates to true if the content at the specified XPath is a valid URI if the contentType is dateTime, as defined in [XMLSCHEMA], the operation evaluates to true if the content at the specified XPath is a valid dateTime if the contentType is signature, as defined in [XMLDSIG], the operation evaluates to true if the content at the specified XPath is a validly signed 1909 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 78 of 144 1910 7.1.10 The GetPayload Operation 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 The GetPayload operation fetches the message payload from the current message retrieved with the GetMessage operation. The message payload is retrieved based upon the required Content-ID, ContentLocation or Index child element value. As with the MessageHeader, both PreCondition and TestAssertion operations can be performed on the message payload. Payload content can be verified (using the VerifyContent operation described above ) using an XPath expression or by comparing its digest value against the value stored for its matching Content-Id in the current ConfigurationGroup. If the payload is an XML document, the entire document can be validated (using the ValidateContent operation described above) against the provided XML schema, or a discreet element or attribute value can be validated as a URI or dateTime. 1921 1922 1923 Figure 37 – Graphic representation of expanded view of the GetPayload element 1924 1925 Definition of Content 1926 Name Description GetPayload Container element for operations to verify and validate message content Optional description Data describing the nature of the GetPaylod operation Required ContentId Retrieve the payload using the MIME Content-ID header value ContentLocation Retrieve the payload using the MIME ContentLocation value Optional Index Retrieve the payload as the Nth attachment after the message envelope Required ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value from Test Driver false Required/Optional Optional 03 April 2003 Page 79 of 144 TestPreCondition Container for verification or validation operation to be performed on message as pre-condition to testing the Assertion Optional TestAssertion Container for verification or validation operation to be performed on message as a test of the Assertion Optional SetParameter Container for user-defined parameter to be made available to other Test Steps ( source can be this payload’s XML content retrieved via XPath statement or simply a user-supplied string value) Optional parameterType Choice of xpath or string Required Name Name of new parameter Required Value String value or XPath expression pointing to desired element/attribute value in payload, or simply a user-supplied string value Required 1927 1928 1929 Semantics of the GetPayload operation 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 Although message payloads are not stored in the MessageStore, the Test Driver MUST be able to retrieve them for verification or validation through their corresponding Content-ID, Content-Type or Index. How the message payloads are stored by the Test Driver is implementation dependent. Unlike the GetMessage operation, which can evaluate multiple messages, the GetPayload operation can only perform a TestPreCondition or TestAssertion operation on a single payload, in a single message. That message is the “current” message retrieved by the parent GetMessage operation. If more than one message is retrieved using the GetMessage operation, the GetPayload operation will generate an exception, and the GetPayload operation will return a “fail” result. The Test Step will return a “fail” result to its parent TestCase. The failed TestCase result will be logged in the Test Report, with a failure cause of “undetermined”. 1941 1942 1943 All other rules regarding the TestPreCondition or TestAssertion operations previously described apply to the GetPayload operation as well. 1944 1945 1946 1947 1948 1949 1950 In addition, new parameters that can be used by other Test Steps in this Test Case may be created using the SetParameter sub-operation. The new parameter can be used in other XPath expressions as an XPath parameter value. The SetParameter operation can select a discreet element or attribute value of the current payload, using the XPath expression supplied in the “Value” sub-element. Or the SetParameter operation can define a new parameter through a simple user-supplied string value assignment to the parameter. 1951 1952 7.1.11 Message Store Schema 1953 1954 1955 1956 The Message Store schema (Appendix D) describes the XML document format required for a Test Driver implementation. The schema facilitates a standard XPath query syntax to be used for retrieval and evaluation of received messages by the Test Driver ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 80 of 144 1957 1958 1959 172-2 1960 1961 Figure 38 – Graphic representation of expanded view of the Test Driver MessageStore schema 1962 1963 1964 Definition of Content 1965 Name Declaration Description MessageStore Container for XML representation of all messages received by Test Driver for a given Test Case Required mime:Message Container for MIME, SOAP and ebXML message content Optional contentType MIME message ‘Content-Type’ header Optional type MIME message ‘type’ header Optional serviceInstanceId Unique identifier for instance of Test Service that reports the message Required reportingAction Action name that received the message on reporting service Required id Unique identifier for this message Required syncType Classifier of “synchronous” or “asynchronous” Required serviceName Name of service that received the message Required ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 81 of 144 MessageContainer MIME SOAP messagecontainer Required contentId SOAP container ‘Content-ID’ header Optional contentType SOAP message package ‘ContentType’ header Optional charset SOAP message package character set Optional soap:Envelope Generates container for SOAP message Required 1966 1967 1968 NOTE: All ebXML MessageStore content contained in the SOAP envelope MUST validate to the [ebMS] schema definition. 1969 1970 7.1.12 Service-Specific Message Payloads 1971 1972 1973 1974 1975 1976 1977 The Message Payload schema (Appendix E) facilitates a standard syntax for messages sent and received by Test Service Actions that facilitates unambiguous interpretation of directives for the appropriate Action. Each possible request or response is an ebXML message payload that directs the appropriate Action defined in the ebXML MessageHeader to perform a particular function. All of the Test Framework Messages below MUST be the first payload encountered after the SOAP envelope. These Test Framework Service-Specific message payloads include: 1978 1979 1980 InitiatorRequest – XML payload content to be interpreted by the “Initiator” action to construct an ebXML Message PayloadVerifyResponse – XML payload content to be interpreted by the “mute” action of a Test Service. It consists of a list of Manifest “href” values, and the corresponding Boolean value indicating whether the payload(s) received by the PayloadVerify operation passed ( “true”) or failed (“false”). ConfigurationRequest – XML payload content to be interpreted by the “Configurator” action of a Test Service. It consists of a ConfigurationRequest “root” element, with a configurationAction option of “query” or “replace”. The default value is “replace” and indicates that configuration content for this request MUST replace the existing configuration. A configurationAction value of “query” will result in a ConfigurationResponse that only echoes back the current configuration properties of the Test Service. ConfigurationResponse – XML payload content to be interpred by the “mute” action of a Test Service. It consists of a ConfigurationResponse “root” element. Current CPAId, Test Service Mode, Response URL and payload digest values are returned in the XML payload. ErrorAppNotifyResponse – XML payload describing (using ebXML Errorlist format as defined in [EBMS]) application-level errors generated by the ErrorAppNotify action of the Test Service. 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 82 of 144 2002 2003 ErrorURLNotifyResponse – XML payload describing (using ebXML Errorlist format as defined in [EBMS]) application errors generated by the ErrorURLNotify action of the Test Service. 2004 2005 2006 2007 2008 2009 ReportNotificationRequest – XML payload describing (using the ebXML MessageStore format defined in section 7.1.11 above) a received message. Such a message payload is followed by any additional message payloads that are part of the originally received message. Because MIME message information is not available to a Test Driver in Service Mode, only Manifest reference information (with payload Content-ID or Content-Location) will be present in the notification message. 2010 2011 2012 NOTE: The ReportNotificationRequest contains three additional values besides each message item, that are obtained by Test Driver when coupled with a Test Service in reporting mode: (1) the name of the action which passed the message to test driver, (2) the test service “instanceId”, which will identify each ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 83 of 144 2013 instance involved in a test suite and (3) the test service name that received the message. 2014 2015 Figure 39 – Graphic representation of expanded view of the Test Driver MessagePayload.xsd schema 2016 2017 Definition of Content 2018 Name ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Description Default Value Required/Optional 03 April 2003 Page 84 of 144 TestServiceMessage Container element for all possible test messages Required instanceId Unique identifier for Test Service instance Root element containing minimal content required for a candidate MSH to initiate a new message conversation with the Test Driver ebXML Message Header declaration, as defined defined in section 7.1.4 SOAP header extension element declaration, as defined in section 7.1.4 Required PayloadVerifyResponse Root element containing the boolean result of a payload verification test Optional contentId MIME Content-ID of message verified message payload Required Result Boolean result of payload verification operation Required ConfiguratorRequest Root element containing minimal content required for a candidate MSH to reconfigure itself Optional configAction Modify attribute to toggle between “replace” and “query” action CPAId Reference to CPA to be used by candidate MSH Optional Mode Mode of behavior for candidate MSH Optional ResponseURL URL for the Test Service to send any response messages to. Optional NotificationURL URL for the Test Service to send any notification messages to. Optional PayloadDigests Container for Payload descriptors and verification digests Optional Payload Container for individual payload descriptor content Required InitiatorRequest eb:MessageHeader eb:SyncReply, eb:MessageOrder, eb:AckRequested, eb:Acknowledgment, eb:Manifest, eb:StatusRequest, eb:StatusResponse ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Optional Required Optional replace Optional 03 April 2003 Page 85 of 144 Href Identifier for this payload Required Digest Precomputed digest value for this payload Required ConfiguratorResponse Root element containing minimal content required for a candidate MSH to reconfigure itself Optional CPAId Reference to CPA to be used by candidate MSH Required Mode Mode of behavior for candidate MSH Required ResponseURL URL for the Test Service to send any response messages to Optional NotificationURL URL for the Test Service to send any notification messages to Optional PayloadDigests Container for Payload descriptors and verification digests Optional Payload Container for individual payload descriptor content Required Href Identifier for this payload Required Result Boolean value for verification result for this payload: “true” (pass) or “false” (fail) Required ErrorAppNotifyResponse Container for result of ErrorAppNotify action Optional eb:ErrorList Errorlist content corresponding to [EBMS] specification syntax and semantics for an ebXML error Required ErrorURLNotifyResponse Container for result of ErrorAppNotify action Optional eb:ErrorList Errorlist content corresponding to [EBMS] specification syntax and semantics for an ebXML error Required ReportNotificationREquest Container for a persistent message to be placed in the Test Driver Message Store Optional 2019 2020 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 86 of 144 2021 2022 7.1.13 Test Report Schema 2023 2024 2025 2026 The Test Report schema (Appendix F) describes the XML report document format required for Test Driver implementations. The schema facilitates a standard XML syntax for reporting results of Test Cases and their Test Steps. 2027 2028 2029 Figure 40 – Graphic representation of expanded view of the Test Driver TestReport schema 2030 2031 2032 Definition of Content 2033 Name Description TestReport Container for all Test Case results Required MetaData Container for Test Suite metadata, including Description, Version, Maintainer, Location, Publish Date and Status Required TestCase Container for all result data of a single Test Case Required id Unique identifier for this Test Case Required description Short description of TestCase Optional name Short name for Test Case Required ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. Default Value From Test Driver Required/Optional 03 April 2003 Page 87 of 144 author Name of person(s) creating the Test Case Optional version Version number of Test Case Optional requirementReferenceId Pointer to the unique ID of the Semantic Test Requirement ( in Appendix E ) Required requirementType Type of requirement for this Test Case ( REQUIRED, OPTIONAL, RECOMMENDED, STRONGLY RECOMMENDED) Required testCaseResult Enumerated Pass/Fail result for entire Test Case ( pass, fail or untested ) Required specRef Identifier to location in specification from which this Test Case is derived Required TestStep Discreet step in Test Case that MUST be evaluated in a pass/fail manner Required description Short description of the function of this Test Step Required StepResult Container of pass/fail result data for this Test Step Required Pass Indicator that this Test Step passed Required Fail Indicator that this Test Step failed Required failType Enumerated type indicating type of failure (preConditionTest, assertionTest or undetermined) Required 2034 2035 2036 2037 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 88 of 144 2038 8 Test Material 2039 2040 Test material necessary to support the ebXML Testing Framework includes: 2041 2042 A Testing Profile XML document 2043 A Test Requirements XML document 2044 A Test Suite XML document 2045 A “Basic CPA” from which variants are derived for particular tests 2046 2047 8.1.1 Testing Profile Document 2048 2049 2050 2051 2052 Both conformance and interoperability testing require the creation of a Testing Profile XML document, which lists the Test Requirements against which Test Cases will be executed. A Test Profile document MUST be included in an interoperability of conformance test suite. The Testing Profile document MUST validate against the ebXMLTestProfile.xsd schema in Appendix A. 2053 2054 8.1.2 Test Requirements Document 2055 2056 2057 2058 2059 2060 2061 Both conformance and interoperability testing require the existence of a Test Requirements document. While Test Requirements for conformance testing are specific and detailed against an ebXML specification, interoperability Test Requirements may be more generic, and less rigorous in their description and in their reference to a particular portion of an ebXML specification. However, both types of testing MUST provide a Test Requirements XML document that validates against the ebXMLTestRequirements.xsd schema in Appendix B. 2062 2063 8.1.3 Test Suite Document 2064 2065 2066 2067 2068 2069 2070 2071 Both conformance and interoperability testing require the existence of a Test Suite XML document that validates against the ebXMLTestSuite.xsd schema in Appendix C. It is important to note that test case scripting inside the Test Suite document MUST take into account the test harness architecture. Although MIME and SOAP message content can be manipulated by a Test Driver in Connection Mode, such content may not be accessible by a Test Driver in Service Mode, as the MSH does not communicate this data to the application layer. Therefore, the following test scripting rules SHOULD be followed when designing Test Cases: 2072 2073 2074 2075 2076 2077 2078 When the message material is to be sent or analyzed at by a Test Driver in Service Mode (i.e. the Test Driver acts as an application component), MIME header and SOAP content SHOULD NOT be declared (in a PutMessage operation) or queried (in a GetMessage operation). However, for the sake of uniform scripting, a Test Driver that conforms to this specification MUST accept MIME message envelope and SOAP header material defined in the declaration of the PutMessage ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 89 of 144 2079 2080 2081 2082 2083 2084 2085 2086 operation (it will then ignore superfluous elements when passing the message to the Test Service). “Accepting” means: (1) when sending (e.g. via PutMessage), MIME and SOAP envelope material will be ignored when invoking the Initiator service action, (2) when receiving, any filtering condition or reference to MIME and SOAP material will be ignored, e.g. removed from the set of conditions used in a GetMessage step. In addition, a Test Driver that conforms to this specification MUST accept XPath query expressions that reference MIME and SOAP message content, even though such content MAY not be included in the MessageStore representation of a message. 2087 2088 2089 2090 2091 When the message material is to be sent or analyzed in Connection Mode (i.e. the Test Driver acts as an MSH component), MIME header and SOAP content MAY be declared (in a PutMessage operation) or queried (in a GetMessage operation). At this messaging level, all message data is acessable by the Test Driver. 2092 2093 2094 2095 2096 2097 2098 In th graphical example of the above scenarios, an [ebMS] interoperability test suite will generally require messages to be generated and received at application level (Service Mode) directly from Test Driver to Test Service as illustrated in Figure 5. In contrast, an ebMS conformance test suite which will require messages to be generated and received at transport level (Connection Mode), as illustrated in Figures 2 and 3. 2099 2100 8.1.4 Base CPA and derived CPAs 2101 2102 2103 2104 2105 2106 2107 Both conformance and interoperabililty testing require the existence of a “base CPA” configuration that describes both the Test Driver and Test Service Collaboration Protocol Profile Agreement. This is the “bootstrap” configuration for all messaging between the testing and candidate ebXML applications. How the base CPA is represented to the applications is implementation specific, however the base CPA configuration MUST be semantically equivalent to the CPA defined in Conformance or Interoperability Test Suite Specification. 2108 2109 2110 2111 2112 2113 2114 2115 Modified (or derived) versions of the base CPA MUST have unique CPAIds identifying them as derivations of the base CPA to both the Test Driver and Test Service. A Test Harness implementation MAY reference CPAs that are derived from the base CPA in order to perform a particular type of conformance or interoperability test. CPA’s derived from the base CPA and used in a Test Suite MUST be documented in the appropriate ebXML Conformance Test Suite or ebXML Interoperability Test Suite Specification. The unique CPAId, and the list of discreet variations from the base CPA MUST are included in the Conformance or Interoperability Test Suite document. 2116 2117 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 90 of 144 2118 9 Test Material Examples 2119 2120 This section includes example test material to illustrate 2121 2122 A Test Requirements Document – Listing all Test Requirements for an ebXML implementation 2123 A Test Profile Document – Listing all selected Test Requirements to be exercised 2124 A Test Suite Document – Listing all Executable Test Cases for an ebXML implementation 2125 2126 9.1 Example Test Requirements 2127 2128 2129 2130 2131 2132 2133 2134 Below are two XML documents illustrating how Test Requirements are constructed, in this case for an ebXML MS 2.0 implementation. In this particular case, the two documents represent Conformance and Interoperability Test Requirements for an ebXML Messaging Services V2.0 implementation. The example XML documents below include a subset of testing requirements defined for implementations of the ebXML Messaging Services v2.0 Specification. Each Test Requirement may have one or more Functional Requirements that together must be satisfied in order for an implementation to fully meet that Test Requirement. 2135 2136 2137 9.1.1 Conformance Test Requirements 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 In the example below, a “packaging” TestRequirement element contains two FunctionalRequirement elements. The first Functional Requirement states that the primary SOAP message MUST be the first MIME part of the message. The second packaging Functional Requirement states that the Content-Type MIME header of the Message Package MUST be “text/xml”. If all Test Cases having a requirement reference to these two Functional Requirements “pass”, then an ebXML MS v2.0 implementation would be deemed “conformant” to the specification for the “Packaging” of ebXML messages. Of course, this is a limited set of Test Requirements for illustrative purposes only. <?xml version="1.0" encoding="UTF-8" ?> <Requirements xmlns="http://www.oasis-open.org/tc/ebxml-iic/conformance/reqs" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.oasis-open.org/tc/ebxml-iic/conformance/reqs/ ebXMLTestRequirements.xsd"> <MetaData> <Description>Master Requirements File: ebXML Messaging Services 2.0</Description> <Version>1.0</Version> <Maintainer>Michael Kass<[email protected]></Maintainer> <Location>http://www.oasis-open.org/commitees/ebxmliic/ebmsg/requirements1.0.xml</Location> <PublishDate>20 Feb 2003</PublishDate> <Status>DRAFT</Status> </MetaData> <!—Main Test Requirement, for message packaging <TestRequirement id="req_id_2" name="PackagingSpecification" specRef="ebMS-2#2.1" functionalType="packaging"> <!—Define first sub-requirement to fulfill packaging testing ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 91 of 144 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 <FunctionalRequirement id="funreq_id_2" name="GenerateConformantSOAPWithAttachMIMEHeaders" specRef="ebMS-2#2.1.2"> <Clause> <!—Set first condition of the message is of type “multipart-mime” <Condition id="condition_id_2" requirementType="required">For each generated mesage, if it is multipart MIME</Condition> <Or /> <!—Set alternate condition that the message is not “text/xml” <Condition id="condition_id_305" requirementType="required">if it is not text/xml</Condition> </Clause> <!—Define the Assertion that the first part of message is a SOAP message <Assertion id="assert_id_2" requirementType="required">The primary SOAP message is carried in the root body part of the message.</Assertion> </FunctionalRequirement> <!—Define a second sub-requirement to fulfill packaging testing <FunctionalRequirement id="funreq_id_4" name="GenerateCorrectMessagePackageContent-Type" specRef="ebMS-2#2.1.2"> <Clause> <!—Define condition that the candidate MSH generates a message <Condition id="condition_id_4" requirementType="required">For each generated message</Condition> </Clause> <!—Define the Assertion that the Content-Type of MIME header of that message is “text/xml” <Assertion id="assert_id_4" requirementType="required">The Content-Type MIME header in the Message Package contains a type attribute of "text/xml".</Assertion> </FunctionalRequirement> </TestRequirement> <!—Define a new Test Requirement, for the Core Extension Elements of messaging <TestRequirement id="req_id_3" name="CoreExtensionElements" specRef="ebMS-2#3.1.1" functionalType="packaging"> <!—Define a sub-requirement to test the CPAId extension element <FunctionalRequirement id="funreq_id_35" name="ReportFailedCPAIDResolution" specRef="ebMS-2#3.1.2"> <Clause> <!—First , set condition of a candidate MSH receiving a message with an unresolvable CPAId <Condition id="condition_id_40" requirementType="required">For each received message, if value of the CPAId element on an inbound message cannot be resolved</Condition> </Clause> <!—Next , define the Assertion that the candidate MSH MUST ( since requirementType is “required”) respond with an Error <Assertion id="assert_id_35" requirementType="required">The MSH responds with an error (ValueNotRecognized/Error).</Assertion> </FunctionalRequirement> <!—Define a sub-requirement to test continuity in message ConversationId <FunctionalRequirement id="funreq_id_36" name="ProvideConversationIdIntegrity" specRef="ebMS-2#3.1.3"> <Clause> <!—First , set condition of all messages generated by a Candidate Implementation pertaining to a single CPAId <Condition id="condition_id_41" requirementType="required">For each generated message within the context of the specified CPAId</Condition> </Clause> <!—Next , define the Assertion that a ConversationId element is always present <Assertion id="assert_id_36" requirementType="required">The generated ConversationId will be present in all messages pertaining to the given conversation.</Assertion> </FunctionalRequirement> </TestRequirement> </Requirements> 2227 2228 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 92 of 144 2229 9.1.2 Interoperability Test Requirements 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 In the example below, a “basic interoperability profile” TestRequirement element contains two FunctionalRequirement elements. The first Functional Requirement states that ebXML MS implementation MUST be able to receive and send a basic ebXML message without a payload. The second packaging Functional Requirement states that an ebXML MS implementation MUST be able to process and return a simple ebXML message with one payload. If all Test Cases having a requirement reference to these two Functional Requirements “pass”, then an ebXML MS v2.0 implementation would be deemed “interoperable” to the Basic Interoperability Profile Specification for ebXML Messaging. Of course, this is a limited set of Test Requirements for illustrative purposes only. <?xml version="1.0" encoding="UTF-8" ?> <Requirements xmlns="http://www.oasis-open.org/tc/ebxml-iic/interop/reqs" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.oasis-open.org/tc/ebxml-iic/interop/reqs ebXMLTestRequirements.xsd"> <MetaData> <Description>Interoperability Requirements File: ebXML Messaging Services 2.0</Description> <Version>1.0</Version> <Maintainer>Michael Kass <[email protected]></Maintainer> <Location>http://www.oasis-open.org/commitees/ebxmliic/ebmsg/ms_2.0_interop_requirements1.0.xml</Location> <PublishDate>11 Feb 2003</PublishDate> <Status>DRAFT</Status> </MetaData> <!—Main Test Requirement, for basic interoperability testing <TestRequirement id="req_id_1" name="Basic Interoperability Profile" specRef="MS 2.0 BIP 0.8" functionalType="basic interoperability"> <!—Define first sub-requirement to fulfill basic testing, sending a “no payload” message <FunctionalRequirement id="funreq_id_1" name="BasicExchangeNoPayload" specRef="ebMS 2.0 BIP#3.2.1"> <Clause> <!—First , set condition of a candidate MSH receiving a message with no payload <Condition id="condition_id_1" requirementType="required">For each received ebXML message with no payload, received by the “Dummy” action</Condition> </Clause> <!—Next , define the Assertion of expected behavior for the Dummy Action <Assertion id="assert_id_1" requirementType="required">The message is received and processed, and a simple response message is returned</Assertion> </FunctionalRequirement> <!—Define second sub-requirement to fulfill basic testing, sending a “one payload” message <FunctionalRequirement id="funreq_id_2" name="BasicExchangeOnePayload" specRef="ebMS 2.0 BIP#3.2.2"> <Clause> <!—Set condition of a candidate MSH receiving a message with one payload <Condition id="condition_id_2" requirementType="required">For each received ebXML message with one payload, received by the “Reflector” action </Condition> </Clause> <!—Define the Assertion of expected behavior for the Reflector Action <Assertion id="assert_id_2" requirementType="required">The message is received and processed, and a simple response message with the identical payload is returned</Assertion> </FunctionalRequirement> <!—Define third sub-requirement to fulfill basic testing, sending a “three payload” message <FunctionalRequirement id="funreq_id_3" name="BasicExchangeThreePayloads" specRef="ebMS 2.0 BIP#3.2.3"> <Clause> <!—Set condition of a candidate MSH receiving a message with three payloads <Condition id="condition_id_3" requirementType="required">For each received ebXML message with three payloads, received by the “Reflector” action</Condition> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 93 of 144 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 </Clause> <!—Define the Assertion of expected behavior for the Reflector Action <Assertion id="assert_id_3" requirementType="required">The message is received and processed, and a simple response message with the identical three payloads are returned</Assertion> </FunctionalRequirement> <!—Define third sub-requirement to fulfill basic testing, generating Error messages <FunctionalRequirement id="funreq_id_4" name="BasicExchangeGenerateError" specRef="ebMS 2.0 BIP#3.2.4"> <Clause> <!—Set condition of a candidate MSH receiving an erroneous message <Condition id="condition_id_4" requirementType="required">For each received basic ebXML message that should generate an Error </Condition> </Clause> <!—Define the Assertion of expected behavior for the candidate MSH <Assertion id="assert_id_4" requirementType="required">The message is received and, the MSH returns a message to the originating party with an ErrorList and appropriate Error message </Assertion> </FunctionalRequirement> </TestRequirement> </Requirements> 2315 2316 2317 9.2 Example Test Profiles 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 Below are two XML documents illustrating how a Test Profile document is constructed, in this case for an ebXML MS v2.0 implementation. The example XML documents below represent a subset of test requirements to be exercised. The Test Profile document provides a list of ID references (pointers) to Test Requirements or Functional Requirements in an external Test Requirements document (see above). A Test Harness would read this document, resolve the location of the Test Requirements document, and then execute all Test Cases in the Test Suite document that point to (via ID reference) the Test Requirements listed below. Note that a Test Driver can execute Test Cases pointing to a Functional Requirement (discreet requirement) or a Test Requirement (a container of a group of Functional Requirements). If the TestRequirementRef id attribute value points to a Test Requirement, then all Test Cases for all child Functional Requirements will be executed by the Test Harness (This is a way to conveniently execute a cluster of Test Cases by specifying a single Test Requirement.). This method is used for both conformance and interoperability testing. 2331 2332 9.2.1 Conformance Test Profile Example 2333 2334 2335 2336 The Test Profile document below would be used to drive a Test Harness, by executing all Test Cases that point (via ID) to the listed Test Requirement references (including individual Functional Requirements and a single Test Requirement listed in the above example Conformance Test Requirements document. 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 <?xml version="1.0" encoding="UTF-8" ?> <TestProfile xmlns="http://www.oasis-open.org/tc/ebxml-iic/test-profile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oasisopen.org/tc/ebxml-iic/test-profile http://www.oasis-open.org/tc/ebxml-iic/testprofile/test-profile.xsd" requirementsLocation="ebxml-iic-msg-v20-conformance_reqs.xml" name="ebXML MS v2.0 Conformance Test Requirements" description="Core conformance testing profile for ebXML MS v2.0 implementations”> <TestRequirementRef id="funreq_id_2" /> <!—Execute all Test Casses that reference the Basic SOAP message structure Functional Requirement ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 94 of 144 2347 2348 2349 2350 2351 <TestRequirementRef id="funreq_id_4" /> <!—Execute all Test Cases that reference Message Packaeg Content Type Functional Requirement <TestRequirementRef id="req_id_2" /> <!—Execut all Test Cases that reference all Functional Requirements within the Core Extension Elements Test Requirement </TestProfile> 2352 2353 9.2.2 Interoperability Test Profile Example 2354 2355 2356 2357 2358 The Test Profile document below would be used to drive a Test Harness, by executing all Test Cases that point ( via ID ) to the listed Test Requirement references ( including individual Functional Requirements and a single Test Requirement listed in the above example Interoperability Test Requirements document. 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 <?xml version="1.0" encoding="UTF-8" ?> <TestProfile xmlns="http://www.oasis-open.org/tc/ebxml-iic/test-profile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oasisopen.org/tc/ebxml-iic/test-profile http://www.oasis-open.org/tc/ebxml-iic/testprofile/test-profile.xsd" requirementsLocation="ebxml-iic-msg-v20-conformance_reqs.xml" name="ebXML MS v2.0 Conformance Test Requirements" description="Core conformance testing profile for ebXML MS v2.0 implementations”> <TestRequirementRef id="funreq_id_1.1" /> <!—Execute all Test Casses that reference the “Basic Exchange, No Payload” Functional Requirement <TestRequirementRef id="funreq_id_1.2" /> <!—Execute all Test Casses that reference the “Basic Exchange, One Payload” Functional Requirement </TestProfile> 2372 2373 2374 2375 9.3 Example Test Suites 2376 2377 2378 2379 2380 2381 Below are two XML documents illustrating how Test Cases are constructed, in this case for testing an ebXML MS v2.0 implementation. Each Test Case has a required “requirementReferenceId” attribute, pointing to a Functional Requirement in the Test Requirements document. A Test Driver executes all Test Cases in this document that have a requirementReferenceId value matching the particular Semantic Test Requirement being exercised. 2382 2383 9.3.1 Conformance Test Suite 2384 2385 2386 2387 2388 2389 In the example below, a series of four Test Cases make up a Test Suite. A Test Driver executing conformance Test Cases operates in “connection” mode, meaning it is not interfaced to any MSH, and is acting on its own. Each Test Case exercises a Functional Requirement listed in section 10.1 The Test Cases below do the following: 2390 2391 Send a message and elicit a response message that is verified as a SOAP message ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 95 of 144 2392 Verifies that an elicited response message content type is “text/xml” 2393 2394 Verifies that an ebXML Error is returned in a response message when an unresolvable CPAId is received 2395 Verifies that the ConversationId element is present in a simple response message 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 <?xml version="1.0" encoding="UTF-8" ?> <!-EbXML Messaging v2 Conformance Test SuiteSample Michael Kass <[email protected]>. Date: 02/20/03 -- Instance File. <!—Define Test Suite, with configuration reference to “bootstrap” Test Driver <ebTest:TestSuite ebTest:configurationGroupRef="cpa_basic" xmlns:ebTest="http://www.oasisopen.org/tc/ebxml-iic/tests" xmlns:xpath="http://www.oasis-open.org/tc/ebxml-iic/xpath" xmlns:mime="http://www.oasis-open.org/tc/ebxml-iic/tests/mime" xmlns:soap="http://www.oasis-open.org/tc/ebxml-iic/tests/soap" xmlns:eb="http://www.oasis-open.org/tc/ebxml-iic/tests/eb" xmlns:tns="http://www.oasisopen.org/tc/ebxml-iic/tests/tns" xmlns:xlink="http://www.oasis-open.org/tc/ebxmliic/tests/xlink" xmlns:cfg="http://www.oasis-open.org/tc/ebxml-iic/tests/config" xmlns:ds="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oasisopen.org/tc/ebxml-iic/tests ebXMLTestSuite.xsd"> <!—Document Test Suite for later use in Test Reporting <ebTest:MetaData> <ebTest:Description>Conformance Test Suite File: ebXML Messaging Services 2.0</ebTest:Description> <ebTest:Version>1.0</ebTest:Version> <ebTest:Maintainer>Michael Kass <[email protected]></ebTest:Maintainer> <ebTest:Location>http://www.oasis-open.org/commitees/ebxmliic/ebmsg/conf_testsuite1.0.xml</ebTest:Location> <ebTest:PublishDate>12 February 2003</ebTest:PublishDate> <ebTest:Status>DRAFT</ebTest:Status> </ebTest:MetaData> <!—Define basic “bootstrap” configuration data for this Test Suite <ebTest:ConfigurationGroup ebTest:id="cpa_basic"> <ebTest:CPAId>cpa_basic</ebTest:CPAId> <ebTest:Mode>connection</ebTest:Mode> <ebTest:SenderParty>urn:oasis:iic:testdriver</ebTest:SenderParty> <ebTest:ReceiverParty>urn:oasis:iic:testservice</ebTest:ReceiverParty> <ebTest:Service>urn:ebXML:iic:test.</ebTest:Service> <ebTest:Action>Dummy</ebTest:Action> </ebTest:ConfigurationGroup> <!—Define Test Case,referencing corresponding Functional Requirement in Conformance Test Requirements XML document <ebTest:TestCase ebTest:requirementReferenceId="urn:Funreq:2" ebTest:id="urn:TestCase:id:2" ebTest:description="SOAP message must be in root part of MIME message"> <ebTest:TestStep ebTest:mode="connection"> <ebTest:PutMessage ebTest:description="Send basic message header"> <ebTest:MessageDeclaration> <!—Declare a basic ebXML message <mime:Message> <mime:MessageContainer> <soap:Envelope> <soap:Header> <eb:MessageHeader> <!—Declare MessageHeader, using default ConfigurationGroup parameter values for Action and CPAId ( Dummy Action, basic CPA ) </eb:MessageHeader> </soap:Header> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 96 of 144 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:description="Correlate returned message"> <!—Filter returned messages from MessageStore, using RefToMessageId to find the desired message <ebTest:Filter>eb:CPAId='cpa_basic' and eb:ConversationebTest:id=$ConversationId and eb:MessageData/eb:RefToMessageebTest:id=$RefToMessageId</ebTest:Filter> <ebTest:TestAssertion ebTest:description="Verify that an SOAP Message is found in the root part of the MIME message"> <!--Use XPath to verify correct message structure-<ebTest:VerifyContent>/mime:Message[mime:MessageContainer[1]/soap:Envelope]</ebTest: VerifyContent> </ebTest:TestAssertion> </ebTest:GetMessage> </ebTest:TestStep> </ebTest:TestCase> <!--Define Test Case,referencing corresponding Functional Requirement in Conformance Test Requirements XML document -- <ebTest:TestCase ebTest:requirementReferenceId="urn:funreq:4" ebTest:id="urn:TestCase:id:4" ebTest:description="Message package Content-Type is text/xml"> <ebTest:TestStep > <ebTest:PutMessage ebTest:description="Send basic message header"> <ebTest:MessageDeclaration> <!—Declare a basic ebXML message <mime:Message> <mime:MessageContainer <soap:Envelope> <soap:Header> <eb:MessageHeader><!—Declare MessageHeader, using default ConfigurationGroup parameter values for Action and CPAId ( Dummy Action, basic CPA ) </eb:MessageHeader> </soap:Header> </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:description="Correlate returned message"> <!—Filter returned messages from MessageStore, using RefToMessageId to find the desired message <ebTest:Filter>eb:CPAId='cpa_basic' and eb:ConversationebTest:id=$ConversationId and eb:MessageData/eb:RefToMessageebTest:id=$RefToMessageId</ebTest:Filter> <ebTest:TestAssertion ebTest:description="Verify message package Content-type"> <!—Use XPath to verify that MIME Content-Type is “text/xml” <ebTest:VerifyContent>/mime:Message[mime:MessageContainer[0] and (@Content-Type = 'text/xml)')]</ebTest:VerifyContent> </ebTest:TestAssertion> </ebTest:GetMessage> </ebTest:TestStep> </ebTest:TestCase> <!—Define Test Case,referencing corresponding Functional Requirement in Conformance Test Requirements XML document <ebTest:TestCase ebTest:requirementReferenceId="Funreq:35" ebTest:id="urn:TestCase:id:35" ebTest:description="If CPAId cannot be resolved, respond with ValueNotRecognized Error"> <ebTest:TestStep > <ebTest:PutMessage ebTest:description="Declare message with and CPAId set to 'null'"> <ebTest:MessageDeclaration> <mime:Message> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 97 of 144 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 <mime:MessageContainer> <soap:Envelope> <soap:Header> <!—Override default configuration value for CPAId in ebXML MessageHeader element and override the default CPAId, using instead an unresolvable CPAId <eb:MessageHeader> <eb:CPAId>null</eb:CPAId> </eb:MessageHeader> </soap:Header> </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:description="Correlate returned messages"> <!—Filter returned messages from MessageStore, using RefToMessageId to find the desired message <ebTest:Filter>eb:CPAId='cpa_basic' and eb:ConversationebTest:id=$ConversationId and eb:MessageData/RefToMessageebTest:id=$RefToMessageId</ebTest:Filter> <!—Use XPath to verify that an Error element with the correct errorCode attribute value is present in the message <ebTest:TestAssertion ebTest:description="Verify that Error is returned"> <ebTest:VerifyContent>/mime:Message[mime:MessageContainer[1]/soap:Envelope/soap:Hea der/eb:ErrorList/eb:Error[@eb:errorCode = 'ValueNotRecognized' and @eb:severity = 'Error']]</ebTest:VerifyContent> </ebTest:TestAssertion> </ebTest:GetMessage> </ebTest:TestStep> </ebTest:TestCase> <!—Define Test Case,referencing corresponding Functional Requirement in Conformance Test Requirements XML document <ebTest:TestCase ebTest:requirementReferenceId="Funreq:36" ebTest:id="urn:TestCase:id:36" ebTest:description="ConversationId is always present"> <ebTest:TestStep > <ebTest:PutMessage ebTest:description="Send basic Dummy message header"> <ebTest:MessageDeclaration> <!—Declare a basic ebXML message <mime:Message> <mime:MessageContainer> <soap:Envelope> <soap:Header> <eb:MessageHeader> </eb:MessageHeader> </soap:Header> </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:description="Correlate returned messages"> <ebTest:Filter>eb:CPAId='cpa_basic' and eb:ConversationebTest:id=$ConversationId and eb:MessageData/RefToMessageebTest:id=$RefToMessageId</ebTest:Filter> <ebTest:TestAssertion ebTest:description="Verify that Conversation Id is not present"> <!—Use XPath to verify the XML content, and therefore the Assertion <ebTest:VerifyContent>/mime:Message[mime:MessageContainer[1]/soap:Envelope/soap:Head er/eb:MessageHeader/eb:ConversationId]</ebTest:VerifyContent> </ebTest:TestAssertion> </ebTest:GetMessage> </ebTest:TestStep> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 98 of 144 </ebTest:TestCase> </ebTest:TestSuite> 2578 2579 2580 2581 2582 9.3.2 Interoperability Test Suite 2583 2584 2585 2586 2587 In the example below, a series of four Test Cases make up an Interoperability Test Suite. A Test Driver executing conformance Test Cases operates in “service” mode, meaning it is interfaced to a MSH. Each Test Case exercises a Functional Requirement listed in section 10.2 The Test Cases below do the following: 2588 2589 Perform a basic message exchange with no message payload 2590 Verify integrity of 1 payload in round-trip message transmission 2591 Verify integrity of 3 payloads in round-trip message transmission 2592 2593 Perform a basic message exchange with a returned Error message 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 <?xml version="1.0" encoding="UTF-8" ?> <!-EbXML Messaging v2 Interop Test SuiteSample Instance File. Michael Kass <[email protected]>. Date: 02/20/03 --> <!—Define Test Suite, with configuration reference to “bootstrap” Test Driver <ebTest:TestSuite ebTest:configurationGroupRef="cpa_basic" xmlns:ebTest="http://www.oasis-open.org/tc/ebxml-iic/tests" xmlns:xpath="http://www.oasis-open.org/tc/ebxml-iic/xpath" xmlns:mime="http://www.oasisopen.org/tc/ebxml-iic/tests/mime" xmlns:soap="http://www.oasis-open.org/tc/ebxmliic/tests/soap" xmlns:eb="http://www.oasis-open.org/tc/ebxml-iic/tests/eb" xmlns:tns="http://www.oasis-open.org/tc/ebxml-iic/tests/tns" xmlns:xlink="http://www.oasis-open.org/tc/ebxml-iic/tests/xlink" xmlns:cfg="http://www.oasis-open.org/tc/ebxml-iic/tests/config" xmlns:ds="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oasis-open.org/tc/ebxml-iic/tests/ebXMLTestSuite.xsd"> <!—Document Test Suite for later use in Test Reporting <ebTest:MetaData> <ebTest:Description>Interoperability Test Suite File: ebXML Messaging Services 2.0</ebTest:Description> <ebTest:Version>1.0</ebTest:Version> <ebTest:Maintainer>Michael Kass <[email protected]></ebTest:Maintainer> <ebTest:Location>http://www.oasis-open.org/commitees/ebxmliic/ebmsg/interop_testsuite1.0.xml</ebTest:Location> <ebTest:PublishDate>12 February 2003</ebTest:PublishDate> <ebTest:Status>DRAFT</ebTest:Status> </ebTest:MetaData> <!—Define basic “bootstrap” configuration data for this Test Suite <ebTest:ConfigurationGroup ebTest:id="cpa_basic"> <ebTest:CPAId>cpa_basic</ebTest:CPAId> <ebTest:Mode>connect</ebTest:Mode> <ebTest:SenderParty>urn:oasis:iic:testdriver</ebTest:SenderParty> <ebTest:ReceiverParty>urn:oasis:iic:testservice</ebTest:ReceiverParty> <ebTest:Service>urn:ebXML:iic:test.</ebTest:Service> <ebTest:Action>Dummy</ebTest:Action> <!—Predefine message payload MDA-5 digest values for use in payload verification Test Cases <ebTest:PayloadDigests> <ebTest:Payload> <ebTest:Href>cid:payload_1</ebTest:Href> <ebTest:Digest>abc</ebTest:Digest> </ebTest:Payload> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 99 of 144 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 <ebTest:Payload> <ebTest:Href>cid:payload_2</ebTest:Href> <ebTest:Digest>def</ebTest:Digest> </ebTest:Payload> <ebTest:Payload> <ebTest:Href>cid:payload_3</ebTest:Href> <ebTest:Digest>ghi</ebTest:Digest> </ebTest:Payload> </ebTest:PayloadDigests> </ebTest:ConfigurationGroup> <!—Define “alternate” configuration data for use in particular Test Cases in this Test Suite <ebTest:ConfigurationGroup ebTest:id="cpa_basic_no_key_info"> <ebTest:CPAId>cpa_basic</ebTest:CPAId> <ebTest:Mode>connect</ebTest:Mode> <ebTest:SenderParty>urn:</ebTest:SenderParty> <ebTest:ReceiverParty>urn:</ebTest:ReceiverParty> <ebTest:Service>whatever</ebTest:Service> <ebTest:Action>whatever</ebTest:Action> </ebTest:ConfigurationGroup> <!—Declare XML Message Payload content for use in particular Test Cases in this Test Suite <ebTest:Payload ebTest:id="payload_1"> <Message name="payload_1" /> </ebTest:Payload> <ebTest:Payload ebTest:id="payyload_2"> <Message name="payload_2" /> </ebTest:Payload> <ebTest:Payload ebTest:id="payload_3"> <Messagename="payload_3" /> </ebTest:Payload> <!—Define Test Case,referencing corresponding Functional Requirement in Interoperability Test Requirements XML document <ebTest:TestCase ebTest:requirementReferenceId="funreq_id_1.1" ebTest:id="urn:TestCase:id:1.1" ebTest:description="Basic exchange, no payload"> <ebTest:TestStep > <ebTest:PutMessage ebTest:description="Send basic message header"> <ebTest:MessageDeclaration> <mime:Message> <mime:MessageContainer> <soap:Envelope> <soap:Header> <!—Declare MessageHeader, using default ConfigurationGroup parameter values for Action and CPAId ( Dummy Action, basic CPA ) <eb:MessageHeader> </eb:MessageHeader> </soap:Header> </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:description="Correlate returned message"> <!—Filter returned messages from MessageStore, using RefToMessageId to find the desired message <ebTest:Filter>eb:CPAId=$CPAId and eb:Conversationid=$ConversationId and eb:Action='Mute'</ebTest:Filter> <ebTest:TestAssertion ebTest:description="Verify that an ebXML message is returned"> <ebTest:VerifyContent>/mime:Message[mime:MessageContainer[1]/soap:Envelope/soap:Header/ eb:MessageHeader]</ebTest:VerifyContent> </ebTest:TestAssertion> </ebTest:GetMessage> </ebTest:TestStep> </ebTest:TestCase> <!—Define Test Case,referencing corresponding Functional Requirement in Interoperability Test Requirements XML document ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 100 of 144 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 <ebTest:TestCase ebTest:requirementReferenceId="funreq_id_1.2" ebTest:id="urn:TestCase:id:1.2" ebTest:description="Basic asyncronous exchange with one payload"> <ebTest:TestStep > <ebTest:PutMessage ebTest:description="Send basic message header"> <ebTest:MessageDeclaration> <mime:Message> <mime:MessageContainer> <soap:Envelope> <soap:Header> <!—Override “default” Action in MessageHeader declaration <eb:MessageHeader> <eb:Action>Reflector</eb:Action> </eb:MessageHeader> </soap:Header> <soap:Body> <!—Provide a Manifest declaration to include a reference to the payload <eb:Manifest> <eb:Reference xlink:href="cid:payload_1" /> </eb:Manifest> </soap:Body> </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> <ebTest:SetPayload ebTest:description="Add content-id and payload to mime message"> <ebTest:Content-ID>cid:payload_1</ebTest:Content-ID> <ebTest:MessageRef>payload_1</ebTest:MessageRef> </ebTest:SetPayload> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:description="Correlate returned messages"> <!—Filter returned messages from MessageStore, using RefToMessageId and Action name to find the desired message <ebTest:Filter>eb:CPAId='cpa_basic' and eb:Conversationid=$ConversationId and eb:Action='Mute'</ebTest:Filter> <ebTest:TestAssertion ebTest:description="Check for returned payload"> <ebTest:VerifyContent>/mime:Message[mime:MessageContainer[1]/soap:Body/eb:Manifest/eb:R eference[@xlink:href='cid:payload_1']]</ebTest:VerifyContent> </ebTest:TestAssertion> <ebTest:GetPayload ebTest:description="Find payload in message"> <ebTest:Content-ID>cid:payload_1</ebTest:Content-ID> <ebTest:TestAssertion ebTest:description="Verify returned payload contents"> <ebTest:VerifyContent ebTest:verifyMethod="xpath" /> </ebTest:TestAssertion> </ebTest:GetPayload> </ebTest:GetMessage> </ebTest:TestStep> </ebTest:TestCase> <!—Define Test Case,referencing corresponding Functional Requirement in Interoperability Test Requirements XML document <ebTest:TestCase ebTest:requirementReferenceId="funreq_id_1.3" ebTest:id="urn:TestCase:id:1.3" ebTest:description="Basic exchange with three payloads"> <ebTest:TestStep > <ebTest:PutMessage ebTest:description="Send basic message header"> <ebTest:MessageDeclaration> <mime:Message> <mime:MessageContainer> <soap:Envelope> <soap:Header> <!—Override default value of Action in MessageHeader <eb:MessageHeader> <eb:Action>Reflector</eb:Action> </eb:MessageHeader> </soap:Header> <soap:Body> <!—Declare Manifest element with 3 payload references <eb:Manifest> <eb:Reference xlink:href="cid:payload_1" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 101 of 144 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 <eb:Reference xlink:href="cid:payload_2" /> <eb:Reference xlink:href="cid:payload_3" /> </eb:Manifest> </soap:Body> </soap:Envelope> </mime:MessageContainer> </mime:Message> </ebTest:MessageDeclaration> <ebTest:SetPayload ebTest:description="Add content-id and payload to mime message"> <ebTest:Content-ID>cid:payload_1</ebTest:Content-ID> <ebTest:MessageRef>payload_1</ebTest:MessageRef> </ebTest:SetPayload> <ebTest:SetPayload ebTest:description="Add content-id and payload to mime message"> <ebTest:Content-ID>cid:payload_2</ebTest:Content-ID> <ebTest:MessageRef>payload_2</ebTest:MessageRef> </ebTest:SetPayload> <ebTest:SetPayload ebTest:description="Add content-id and payload to mime message"> <ebTest:Content-ID>payload_3</ebTest:Content-ID> <ebTest:MessageRef>payload_3</ebTest:MessageRef> </ebTest:SetPayload> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:description="Correlate returned messages"> <ebTest:Filter>eb:CPAId='cpa_basic' and eb:Conversationid=$ConversationId and eb:Action='Mute'</ebTest:Filter> <ebTest:TestAssertion ebTest:description="Check for returned payloads reference in Manifest"> <ebTest:VerifyContent>/mime:Message[mime:MessageContainer[1]/soap:Body/eb:Manifest[eb:R eference[@xlink:href='cid:payload_1'] and eb:Reference[@xlink:href='cid:payload_2'] and eb:Reference[@xlink:href='cid:payload_3']]</ebTest:VerifyContent> </ebTest:TestAssertion> <ebTest:GetPayload ebTest:description="Find payload in message"> <ebTest:Content-ID>cid:payload_1</ebTest:Content-ID> <ebTest:TestAssertion ebTest:description="Verify returned payload contents"> <ebTest:VerifyContent /> </ebTest:TestAssertion> </ebTest:GetPayload> <ebTest:GetPayload ebTest:description="Find payload in message"> <ebTest:Content-ID>cid:payload_2</ebTest:Content-ID> <ebTest:TestAssertion ebTest:description="Verify returned payload contents"> <ebTest:VerifyContent /> </ebTest:TestAssertion> </ebTest:GetPayload> <ebTest:GetPayload ebTest:description="Find payload in message"> <ebTest:Content-ID>cid:payload_3</ebTest:Content-ID> <ebTest:TestAssertion ebTest:description="Verify returned payload contents"> <ebTest:VerifyContent /> </ebTest:TestAssertion> </ebTest:GetPayload> </ebTest:GetMessage> </ebTest:TestStep> </ebTest:TestCase> <!—Define Test Case,referencing corresponding Functional Requirement in Interoperability Test Requirements XML document <ebTest:TestCase ebTest:requirementReferenceId="funreq_id_1.4" ebTest:id="urn:TestCase:id:1.4" ebTest:description="Basic exchange with Error Message"> <ebTest:TestStep > <ebTest:PutMessage ebTest:description="MessageHeader mustUnderstand set to 'true'"> <ebTest:MessageDeclaration> <mime:Message> <mime:MessageContainer> <soap:Envelope> <soap:Header> <eb:MessageHeader> <eb:Action>Dummy</eb:Action> <eb:ExtensionElement soap:mustUnderstand="true" /> </eb:MessageHeader> </soap:Header> </soap:Envelope> </mime:MessageContainer> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 102 of 144 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 </mime:Message> </ebTest:MessageDeclaration> </ebTest:PutMessage> </ebTest:TestStep> <ebTest:TestStep > <ebTest:GetMessage ebTest:getMultiple="true" ebTest:description="Correlate returned messages"> <ebTest:Filter>eb:CPAId='cpa_basic' and eb:Conversationid=$ConversationId and eb:ErrorList</ebTest:Filter> <ebTest:TestAssertion ebTest:description="Test if Error is generated"> <ebTest:VerifyContent>mime:Message[mime:MessageContainer[1]/soap:Envelope/soap:Body/soa p:Fault/soap:Code[soap:Value='MustUnderstand']]</ebTest:VerifyContent> </ebTest:TestAssertion> </ebTest:GetMessage> </ebTest:TestStep> </ebTest:TestCase> </ebTest:TestSuite> 2865 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 103 of 144 2867 Appendix A (Normative) The ebXML Test Profile Schema 2868 2869 2870 The OASIS ebXML Implementation and Interoperability Committee has provided a version of the ebXML Test Profile schema using the schema vocabulary that conforms to the W3C XML Schema Recommendation specification [XMLSchema]. 2866 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.oasisopen.org/tc/ebxml-iic/test-profile" xmlns:tns="http://www.oasis-open.org/tc/ebxmliic/test-profile"> <!-$Id: TestProfile.xsd,v 1.2 2002/07/02 15:28:27 matt Exp $ --> <element name="TestProfile"> <complexType> <sequence> <element ref="tns:Dependency" minOccurs="0" maxOccurs="unbounded" /> <element ref="tns:TestRequirementRef" maxOccurs="unbounded" /> </sequence> <attribute name="requirementsLocation" use="required" type="anyURI" /> <attribute name="name" use="required" type="string" /> <attribute name="description" use="required" type="string" /> </complexType> </element> <element name="Dependency"> <complexType> <attribute name="name" use="required" type="string" /> <attribute name="profileRef" use="required" type="anyURI" /> </complexType> </element> <element name="TestRequirementRef"> <!-To overide the conformance type of the underlying requirement ... --> <complexType> <sequence> <element name="Comment" type="string" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="id" use="required" type="string" /> <attribute name="requirementType" use="optional" type="tns:requirement.type" /> </complexType> </element> <simpleType name="requirement.type"> <restriction base="string"> <enumeration value="required" /> <enumeration value="strongly recommended" /> <enumeration value="recommended" /> <enumeration value="optional" /> </restriction> </simpleType> </schema> 2919 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 104 of 144 2921 Appendix B (Normative) The ebXML Test Requirements Schema 2922 2923 2924 The OASIS ebXML Implementation and Interoperability Committee has provided a version of the ebXML Test Requirements schema using the schema vocabulary that conforms to the W3C XML Schema Recommendation specification [XMLSchema]. 2920 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema targetNamespace="http://www.oasis-open.org/tc/ebxml-iic/tests" xmlns:mime="http://www.oasis-open.org/tc/ebxml-iic/tests/mime" xmlns:ds="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" xmlns:ebTest="http://www.oasis-open.org/tc/ebxml-iic/tests" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0"> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" schemaLocation="xmldsig.xsd" /> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/mime" schemaLocation="mime.xsd" /> <!-edited with XML Spy v4.3 U (http://www.xmlspy.com) by Michael Kass (NIST) --> <!-<import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" schemaLocation="xmldsig.xsd"/> --> <!-<import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/soap" schemaLocation="soap.xsd"/> --> <element name="TestSuite"> <complexType> <sequence> <element ref="ebTest:MetaData" /> <element ref="ebTest:ConfigurationGroup" maxOccurs="unbounded" /> <element ref="ebTest:MessagePayload" minOccurs="0" maxOccurs="unbounded" /> <choice maxOccurs="unbounded"> <element ref="ebTest:ConfigurationGroup" minOccurs="0" /> <element ref="ebTest:TestCase" maxOccurs="unbounded" /> </choice> </sequence> <attribute name="configurationGroupRef" type="IDREF" use="required" /> </complexType> </element> <element name="MetaData"> <complexType> <sequence> <element ref="ebTest:Description" /> <element ref="ebTest:Version" /> <element ref="ebTest:Maintainer" /> <element ref="ebTest:Location" /> <element ref="ebTest:PublishDate" /> <element ref="ebTest:Status" /> </sequence> </complexType> </element> <element name="Description" type="ebTest:non-empty-string" /> <element name="Version" type="ebTest:non-empty-string" /> <element name="Maintainer" type="ebTest:non-empty-string" /> <element name="Location" type="anyURI" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 105 of 144 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 <element name="PublishDate" type="ebTest:non-empty-string" /> <element name="Status" type="ebTest:non-empty-string" /> <element name="TestCase"> <complexType> <sequence> <element ref="ebTest:TestStep" maxOccurs="unbounded" /> </sequence> <attribute name="id" type="string" use="required" /> <attribute name="description" type="string" use="required" /> <attribute name="name" type="string" use="optional" /> <attribute name="author" type="string" use="optional" /> <attribute name="version" type="string" use="optional" /> <attribute name="requirementReferenceId" type="anyURI" use="required" /> <attribute name="configurationGroupRef" type="IDREF" use="optional" /> </complexType> </element> <element name="TestStep"> <complexType> <choice> <element ref="ebTest:PutMessage" /> <element ref="ebTest:GetMessage" /> </choice> <attribute name="description" type="string" use="optional" /> <attribute name="configurationGroupRef" type="IDREF" use="optional" /> <attribute name="repeatTimes" type="integer" default="1" /> <attribute name="testStepContext" type="integer" use="optional" /> <attribute name="stepDelay" type="integer" use="optional" /> </complexType> </element> <element name="MessageExpression"> <complexType> <sequence> <element ref="ebTest:ErrorMessage" /> </sequence> </complexType> </element> <element name="ErrorMessage" type="ebTest:non-empty-string" /> <element name="PutMessage"> <complexType> <sequence> <element ref="ebTest:MessageDeclaration" /> <element ref="ebTest:SetPayload" minOccurs="0" maxOccurs="unbounded" /> <element name="DSign" minOccurs="0"> <complexType> <sequence> <element ref="ds:Signature" maxOccurs="unbounded" /> </sequence> </complexType> </element> <element ref="ebTest:SetParameter" minOccurs="0" /> </sequence> <attribute name="description" type="string" use="required" /> <attribute name="clearMessageStore" type="boolean" default="false" /> </complexType> </element> <element name="GetPayload"> <complexType> <sequence> <choice> <element ref="ebTest:Content-ID" /> <element ref="ebTest:Content-Location" /> <element ref="ebTest:Index" /> </choice> <choice minOccurs="0" maxOccurs="unbounded"> <element ref="ebTest:TestPreCondition" /> <element ref="ebTest:TestAssertion" /> </choice> <element ref="ebTest:SetParameter" minOccurs="0" /> </sequence> <attribute name="description" type="string" use="required" /> </complexType> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 106 of 144 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 </element> <element name="GetMessage"> <complexType> <sequence> <element ref="ebTest:Filter" /> <element ref="ebTest:TestPreCondition" minOccurs="0" maxOccurs="unbounded" /> <element ref="ebTest:TestAssertion" minOccurs="0" maxOccurs="unbounded" /> <element ref="ebTest:SetParameter" minOccurs="0" /> <element ref="ebTest:GetPayload" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="description" type="string" use="required" /> <attribute name="getMultiple" type="boolean" default="false" /> <attribute name="testStepContext" type="integer" use="optional" /> </complexType> </element> <element name="Filter" type="ebTest:non-empty-string" /> <element name="SetPayload"> <complexType> <sequence> <choice> <element ref="ebTest:Content-ID" /> <element ref="ebTest:Content-Location" /> </choice> <choice> <element ref="ebTest:FileURI" /> <element ref="ebTest:PayloadRef" /> </choice> <sequence minOccurs="0" maxOccurs="unbounded"> <element ref="ebTest:MimeHeader" /> <element ref="ebTest:MimeHeaderValue" /> </sequence> <element ref="ebTest:SetParameter" minOccurs="0" /> </sequence> <attribute name="description" type="string" use="required" /> </complexType> </element> <element name="TestPreCondition"> <complexType> <choice> <element ref="ebTest:VerifyContent" /> <element ref="ebTest:ValidateContent" /> </choice> <attribute name="description" type="string" use="required" /> </complexType> </element> <element name="TestAssertion"> <complexType> <choice> <element ref="ebTest:VerifyContent" /> <element ref="ebTest:ValidateContent" /> </choice> <attribute name="description" type="string" use="required" /> <attribute name="requirement" type="ebTest:requirement.type" default="required" /> </complexType> </element> <simpleType name="mimeHeader.type"> <restriction base="NMTOKEN"> <enumeration value="MIMEMessageContent-Type" /> <enumeration value="MIMEMessageStart" /> <enumeration value="Content-Type" /> <enumeration value="start" /> <enumeration value="charset" /> <enumeration value="type" /> <enumeration value="wildcard" /> </restriction> </simpleType> <simpleType name="content.type"> <restriction base="NMTOKEN"> <enumeration value="XML" /> <enumeration value="date" /> <enumeration value="URI" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 107 of 144 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 <enumeration value="signature" /> <enumeration value="signedAck" /> </restriction> </simpleType> <simpleType name="method.type"> <restriction base="NMTOKEN"> <enumeration value="xpath" /> <enumeration value="sha-1" /> </restriction> </simpleType> <simpleType name="mode.type"> <restriction base="NMTOKEN"> <enumeration value="service" /> <enumeration value="connection" /> </restriction> </simpleType> <simpleType name="messageContext.type"> <restriction base="NMTOKEN"> <enumeration value="true" /> <enumeration value="false" /> </restriction> </simpleType> <simpleType name="requirement.type"> <restriction base="NMTOKEN"> <enumeration value="required" /> <enumeration value="stronglyrecommended" /> <enumeration value="recommended" /> <enumeration value="optional" /> </restriction> </simpleType> <simpleType name="non-empty-string"> <restriction base="string"> <minLength value="1" /> </restriction> </simpleType> <simpleType name="configAction.type"> <restriction base="NMTOKEN"> <enumeration value="query" /> <enumeration value="replace" /> </restriction> </simpleType> <simpleType name="action.type"> <restriction base="NMTOKEN"> <enumeration value="reset" /> <enumeration value="modify" /> </restriction> </simpleType> <simpleType name="configItem.type"> <restriction base="NOTATION"> <enumeration value="parameter" /> <enumeration value="namespace" /> </restriction> </simpleType> <simpleType name="parameter.type"> <restriction base="NMTOKEN"> <enumeration value="xpath" /> <enumeration value="string" /> </restriction> </simpleType> <element name="MimeHeader" type="ebTest:mimeHeader.type" /> <element name="MimeHeaderValue" type="ebTest:non-empty-string" /> <element name="Content-Location" type="ebTest:non-empty-string" /> <element name="Index" type="integer" /> <element name="FileURI" type="anyURI" /> <element name="PayloadRef" type="string" /> <element name="Signature" type="base64Binary" /> <element name="Content-ID" type="string" /> <element name="MessageDeclaration"> <complexType> <sequence> <element ref="mime:Message" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 108 of 144 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 </sequence> </complexType> </element> <element name="ValidateContent"> <complexType> <simpleContent> <extension base="ebTest:non-empty-string"> <attribute name="contentType" type="ebTest:content.type" default="XML" /> <attribute name="schemaLocation" type="anyURI" use="optional" /> </extension> </simpleContent> </complexType> </element> <element name="VerifyContent"> <complexType> <simpleContent> <extension base="string"> <attribute name="verifyMethod" type="ebTest:method.type" default="xpath" /> </extension> </simpleContent> </complexType> </element> <element name="MessagePayload"> <complexType> <sequence> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="id" type="ID" use="required" /> </complexType> </element> <element name="ConfigurationGroup"> <complexType> <sequence> <element ref="ebTest:CPAId" /> <element ref="ebTest:Mode" /> <element ref="ebTest:SenderParty" /> <element ref="ebTest:ReceiverParty" /> <element ref="ebTest:Service" /> <element ref="ebTest:Action" /> <element ref="ebTest:StepDelay" /> <element ref="ebTest:ResponseURL" minOccurs="0" /> <element ref="ebTest:NotifcationURL" minOccurs="0" /> <element name="PayloadDigests" minOccurs="0"> <complexType> <sequence> <element name="Payload" maxOccurs="unbounded"> <complexType> <sequence> <element name="Href" type="anyURI" /> <element name="Digest" type="base64Binary" /> </sequence> </complexType> </element> </sequence> </complexType> </element> <element name="ConfigurationItem" minOccurs="0" maxOccurs="unbounded"> <complexType> <sequence> <element name="Name" type="ebTest:non-empty-string" /> <element name="Value" type="ebTest:non-empty-string" /> <element name="Type" type="ebTest:configItem.type" /> </sequence> </complexType> </element> </sequence> <attribute name="id" type="ID" use="required" /> </complexType> </element> <element name="SenderParty" type="ebTest:non-empty-string" /> <element name="ReceiverParty" type="ebTest:non-empty-string" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 109 of 144 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 <element name="Service" type="anyURI" /> <element name="Action" type="ebTest:non-empty-string" /> <element name="StepDelay" type="integer" /> <element name="ResponseURL" type="anyURI" /> <element name="NotifcationURL" type="anyURI" /> <element name="CPAId" type="ebTest:non-empty-string" /> <element name="Mode" type="ebTest:non-empty-string" /> <element name="SetParameter"> <complexType> <sequence> <element name="Name" type="string" /> <element name="Value" type="string" /> </sequence> <attribute name="parameterType" type="ebTest:parameter.type" use="required" /> </complexType> </element> </schema> 3284 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 110 of 144 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 Appendix C (Normative) The ebXML Test Suite Schema and Supporting Subschemas The OASIS ebXML Implementation and Interoperability Committee has provided a version of the ebXML Test Requirements schema using the schema vocabulary that conforms to the W3C XML Schema Recommendation specification [XMLSchema]. <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema targetNamespace="http://www.oasis-open.org/tc/ebxml-iic/tests" xmlns:mime="http://www.oasis-open.org/tc/ebxml-iic/tests/mime" xmlns:ds="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" xmlns:ebTest="http://www.oasis-open.org/tc/ebxml-iic/tests" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0"> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" schemaLocation="xmldsig.xsd" /> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/mime" schemaLocation="mime.xsd" /> <!-edited with XML Spy v4.3 U (http://www.xmlspy.com) by Michael Kass (NIST) --> <!-<import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" schemaLocation="xmldsig.xsd"/> --> <!-<import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/soap" schemaLocation="soap.xsd"/> --> <element name="TestSuite"> <complexType> <sequence> <element ref="ebTest:MetaData" /> <element ref="ebTest:ConfigurationGroup" maxOccurs="unbounded" /> <element ref="ebTest:MessagePayload" minOccurs="0" maxOccurs="unbounded" /> <choice maxOccurs="unbounded"> <element ref="ebTest:ConfigurationGroup" minOccurs="0" /> <element ref="ebTest:TestCase" maxOccurs="unbounded" /> </choice> </sequence> <attribute name="configurationGroupRef" type="IDREF" use="required" /> </complexType> </element> <element name="MetaData"> <complexType> <sequence> <element ref="ebTest:Description" /> <element ref="ebTest:Version" /> <element ref="ebTest:Maintainer" /> <element ref="ebTest:Location" /> <element ref="ebTest:PublishDate" /> <element ref="ebTest:Status" /> </sequence> </complexType> </element> <element name="Description" type="ebTest:non-empty-string" /> <element name="Version" type="ebTest:non-empty-string" /> <element name="Maintainer" type="ebTest:non-empty-string" /> <element name="Location" type="anyURI" /> <element name="PublishDate" type="ebTest:non-empty-string" /> <element name="Status" type="ebTest:non-empty-string" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 111 of 144 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 <element name="TestCase"> <complexType> <sequence> <element ref="ebTest:TestStep" maxOccurs="unbounded" /> </sequence> <attribute name="id" type="string" use="required" /> <attribute name="description" type="string" use="required" /> <attribute name="name" type="string" use="optional" /> <attribute name="author" type="string" use="optional" /> <attribute name="version" type="string" use="optional" /> <attribute name="requirementReferenceId" type="anyURI" use="required" /> <attribute name="configurationGroupRef" type="IDREF" use="optional" /> </complexType> </element> <element name="TestStep"> <complexType> <choice> <element ref="ebTest:PutMessage" /> <element ref="ebTest:GetMessage" /> </choice> <attribute name="description" type="string" use="optional" /> <attribute name="configurationGroupRef" type="IDREF" use="optional" /> <attribute name="repeatTimes" type="integer" default="1" /> <attribute name="testStepContext" type="integer" use="optional" /> <attribute name="stepDelay" type="integer" use="optional" /> </complexType> </element> <element name="MessageExpression"> <complexType> <sequence> <element ref="ebTest:ErrorMessage" /> </sequence> </complexType> </element> <element name="ErrorMessage" type="ebTest:non-empty-string" /> <element name="PutMessage"> <complexType> <sequence> <element ref="ebTest:MessageDeclaration" /> <element ref="ebTest:SetPayload" minOccurs="0" maxOccurs="unbounded" /> <element name="DSign" minOccurs="0"> <complexType> <sequence> <element ref="ds:Signature" maxOccurs="unbounded" /> </sequence> </complexType> </element> <element ref="ebTest:SetParameter" minOccurs="0" /> </sequence> <attribute name="description" type="string" use="required" /> <attribute name="clearMessageStore" type="boolean" default="false" /> </complexType> </element> <element name="GetPayload"> <complexType> <sequence> <choice> <element ref="ebTest:Content-ID" /> <element ref="ebTest:Content-Location" /> <element ref="ebTest:Index" /> </choice> <choice minOccurs="0" maxOccurs="unbounded"> <element ref="ebTest:TestPreCondition" /> <element ref="ebTest:TestAssertion" /> </choice> <element ref="ebTest:SetParameter" minOccurs="0" /> </sequence> <attribute name="description" type="string" use="required" /> </complexType> </element> <element name="GetMessage"> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 112 of 144 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 <complexType> <sequence> <element ref="ebTest:Filter" /> <element ref="ebTest:TestPreCondition" minOccurs="0" maxOccurs="unbounded" /> <element ref="ebTest:TestAssertion" minOccurs="0" maxOccurs="unbounded" /> <element ref="ebTest:SetParameter" minOccurs="0" /> <element ref="ebTest:GetPayload" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="description" type="string" use="required" /> <attribute name="getMultiple" type="boolean" default="false" /> <attribute name="testStepContext" type="integer" use="optional" /> </complexType> </element> <element name="Filter" type="ebTest:non-empty-string" /> <element name="SetPayload"> <complexType> <sequence> <choice> <element ref="ebTest:Content-ID" /> <element ref="ebTest:Content-Location" /> </choice> <choice> <element ref="ebTest:FileURI" /> <element ref="ebTest:PayloadRef" /> </choice> <sequence minOccurs="0" maxOccurs="unbounded"> <element ref="ebTest:MimeHeader" /> <element ref="ebTest:MimeHeaderValue" /> </sequence> <element ref="ebTest:SetParameter" minOccurs="0" /> </sequence> <attribute name="description" type="string" use="required" /> </complexType> </element> <element name="TestPreCondition"> <complexType> <choice> <element ref="ebTest:VerifyContent" /> <element ref="ebTest:ValidateContent" /> </choice> <attribute name="description" type="string" use="required" /> </complexType> </element> <element name="TestAssertion"> <complexType> <choice> <element ref="ebTest:VerifyContent" /> <element ref="ebTest:ValidateContent" /> </choice> <attribute name="description" type="string" use="required" /> <attribute name="requirement" type="ebTest:requirement.type" default="required" /> </complexType> </element> <simpleType name="mimeHeader.type"> <restriction base="NMTOKEN"> <enumeration value="MIMEMessageContent-Type" /> <enumeration value="MIMEMessageStart" /> <enumeration value="Content-Type" /> <enumeration value="start" /> <enumeration value="charset" /> <enumeration value="type" /> <enumeration value="wildcard" /> </restriction> </simpleType> <simpleType name="content.type"> <restriction base="NMTOKEN"> <enumeration value="XML" /> <enumeration value="date" /> <enumeration value="URI" /> <enumeration value="signature" /> <enumeration value="signedAck" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 113 of 144 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 </restriction> </simpleType> <simpleType name="method.type"> <restriction base="NMTOKEN"> <enumeration value="xpath" /> <enumeration value="sha-1" /> </restriction> </simpleType> <simpleType name="mode.type"> <restriction base="NMTOKEN"> <enumeration value="service" /> <enumeration value="connection" /> </restriction> </simpleType> <simpleType name="messageContext.type"> <restriction base="NMTOKEN"> <enumeration value="true" /> <enumeration value="false" /> </restriction> </simpleType> <simpleType name="requirement.type"> <restriction base="NMTOKEN"> <enumeration value="required" /> <enumeration value="stronglyrecommended" /> <enumeration value="recommended" /> <enumeration value="optional" /> </restriction> </simpleType> <simpleType name="non-empty-string"> <restriction base="string"> <minLength value="1" /> </restriction> </simpleType> <simpleType name="configAction.type"> <restriction base="NMTOKEN"> <enumeration value="query" /> <enumeration value="replace" /> </restriction> </simpleType> <simpleType name="action.type"> <restriction base="NMTOKEN"> <enumeration value="reset" /> <enumeration value="modify" /> </restriction> </simpleType> <simpleType name="configItem.type"> <restriction base="NOTATION"> <enumeration value="parameter" /> <enumeration value="namespace" /> </restriction> </simpleType> <simpleType name="parameter.type"> <restriction base="NMTOKEN"> <enumeration value="xpath" /> <enumeration value="string" /> </restriction> </simpleType> <element name="MimeHeader" type="ebTest:mimeHeader.type" /> <element name="MimeHeaderValue" type="ebTest:non-empty-string" /> <element name="Content-Location" type="ebTest:non-empty-string" /> <element name="Index" type="integer" /> <element name="FileURI" type="anyURI" /> <element name="PayloadRef" type="string" /> <element name="Signature" type="base64Binary" /> <element name="Content-ID" type="string" /> <element name="MessageDeclaration"> <complexType> <sequence> <element ref="mime:Message" /> </sequence> </complexType> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 114 of 144 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 </element> <element name="ValidateContent"> <complexType> <simpleContent> <extension base="ebTest:non-empty-string"> <attribute name="contentType" type="ebTest:content.type" default="XML" /> <attribute name="schemaLocation" type="anyURI" use="optional" /> </extension> </simpleContent> </complexType> </element> <element name="VerifyContent"> <complexType> <simpleContent> <extension base="string"> <attribute name="verifyMethod" type="ebTest:method.type" default="xpath" /> </extension> </simpleContent> </complexType> </element> <element name="MessagePayload"> <complexType> <sequence> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="id" type="ID" use="required" /> </complexType> </element> <element name="ConfigurationGroup"> <complexType> <sequence> <element ref="ebTest:CPAId" /> <element ref="ebTest:Mode" /> <element ref="ebTest:SenderParty" /> <element ref="ebTest:ReceiverParty" /> <element ref="ebTest:Service" /> <element ref="ebTest:Action" /> <element ref="ebTest:StepDelay" /> <element ref="ebTest:ResponseURL" minOccurs="0" /> <element ref="ebTest:NotifcationURL" minOccurs="0" /> <element name="PayloadDigests" minOccurs="0"> <complexType> <sequence> <element name="Payload" maxOccurs="unbounded"> <complexType> <sequence> <element name="Href" type="anyURI" /> <element name="Digest" type="base64Binary" /> </sequence> </complexType> </element> </sequence> </complexType> </element> <element name="ConfigurationItem" minOccurs="0" maxOccurs="unbounded"> <complexType> <sequence> <element name="Name" type="ebTest:non-empty-string" /> <element name="Value" type="ebTest:non-empty-string" /> <element name="Type" type="ebTest:configItem.type" /> </sequence> </complexType> </element> </sequence> <attribute name="id" type="ID" use="required" /> </complexType> </element> <element name="SenderParty" type="ebTest:non-empty-string" /> <element name="ReceiverParty" type="ebTest:non-empty-string" /> <element name="Service" type="anyURI" /> <element name="Action" type="ebTest:non-empty-string" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 115 of 144 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 <element name="StepDelay" type="integer" /> <element name="ResponseURL" type="anyURI" /> <element name="NotifcationURL" type="anyURI" /> <element name="CPAId" type="ebTest:non-empty-string" /> <element name="Mode" type="ebTest:non-empty-string" /> <element name="SetParameter"> <complexType> <sequence> <element name="Name" type="string" /> <element name="Value" type="string" /> </sequence> <attribute name="parameterType" type="ebTest:parameter.type" use="required" /> </complexType> </element> </schema> 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 SOAP Message Declaration Schema <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema targetNamespace="http://www.oasis-open.org/tc/ebxml-iic/tests/soap" xmlns:eb="http://www.oasis-open.org/tc/ebxml-iic/tests/eb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.oasisopen.org/tc/ebxml-iic/tests/soap" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/eb" schemaLocation="eb.xsd" /> <attributeGroup name="encodingStyle"> <attribute name="encodingStyle" type="tns:encodingStyle" /> </attributeGroup> <!-Schema for the SOAP/1.1 envelope This schema has been produced using W3C's SOAP Version 1.2 schema found at: http://www.w3.org/2001/06/soap-envelope Copyright 2001 Martin Gudgin, Developmentor. Changes made are the following: - reverted namespace to http://schemas.xmlsoap.org/soap/envelope/ - reverted mustUnderstand to only allow 0 and 1 as lexical values Copyright 2003 OASIS Changes made are the following: - SOAP Header and Body element content models constrained to include ebXML content Original copyright: Copyright 2001 W3C (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ This document is governed by the W3C Software License [1] as described in the FAQ [2]. [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 116 of 144 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD --> <!-Envelope, header and body --> <element name="Envelope" type="tns:Envelope" /> <complexType name="Envelope"> <sequence> <element ref="tns:Header" /> <element ref="tns:Body" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <anyAttribute namespace="##other" processContents="lax" /> </complexType> <group name="optionElements"> <all minOccurs="0"> <element ref="eb:SyncReply" minOccurs="0"/> <element ref="eb:MessageOrder" minOccurs="0"/> <element ref="eb:AckRequested" minOccurs="0"/> <element ref="eb:Acknowledgment" minOccurs="0"/> <element ref="eb:ErrorList" minOccurs="0"/> </all> </group> <element name="Header"> <complexType> <sequence> <element ref="eb:MessageHeader" /> <group ref="tns:optionElements" /> </sequence> </complexType> </element> <complexType name="Header"> <sequence> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <anyAttribute namespace="##other" processContents="lax" /> </complexType> <element name="Body"> <complexType> <choice minOccurs="0"> <element ref="eb:Manifest" /> <element ref="eb:StatusRequest" /> <element ref="eb:StatusResponse" /> </choice> </complexType> </element> <complexType name="Body"> <annotation> <documentation>Prose in the spec does not specify that attributes are allowed on the Body element</documentation> </annotation> <sequence> <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <anyAttribute namespace="##any" processContents="lax" /> </complexType> <!-Global Attributes. The following attributes are intended to be usable via qualified attribute names on any complex type referencing them. --> <attribute name="mustUnderstand" default="0"> <simpleType> <restriction base="boolean"> <pattern value="0|1" /> </restriction> </simpleType> </attribute> <attribute name="actor" type="anyURI" /> <simpleType name="encodingStyle"> <annotation> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 117 of 144 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 <documentation>'encodingStyle' indicates any canonicalization conventions followed in the contents of the containing element. For example, the value 'http://schemas.xmlsoap.org/soap/encoding/' indicates the pattern described in SOAP specification</documentation> </annotation> <list itemType="anyURI" /> </simpleType> <complexType name="Fault" final="extension"> <annotation> <documentation>Fault reporting structure</documentation> </annotation> <sequence> <element name="faultcode" type="QName" /> <element name="faultstring" type="string" /> <element name="faultactor" type="anyURI" minOccurs="0" /> <element name="detail" type="tns:detail" minOccurs="0" /> </sequence> </complexType> <complexType name="detail"> <sequence> <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <anyAttribute namespace="##any" processContents="lax" /> </complexType> </schema> 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 ebXML Message Declaration Schema <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema targetNamespace="http://www.oasis-open.org/tc/ebxml-iic/tests/eb" xmlns:soap="http://www.oasis-open.org/tc/ebxml-iic/tests/soap" xmlns:ds="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tns="http://www.oasisopen.org/tc/ebxml-iic/tests/eb" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.0"> <import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.oasisopen.org/committees/ebxml-msg/schema/xlink.xsd" /> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/xmldsig" schemaLocation="xmldsig.xsd" /> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/tests/soap" schemaLocation="soap.xsd" /> <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.oasis-open.org/committees/ebxml-msg/schema/xml_lang.xsd" /> <attributeGroup name="bodyExtension.grp"> <attribute ref="tns:id" /> <attribute ref="tns:version" use="optional" /> </attributeGroup> <attributeGroup name="headerExtension.grp"> <attribute ref="tns:id" /> <attribute ref="tns:version" use="optional" /> <attribute ref="soap:mustUnderstand" use="optional" /> </attributeGroup> <!-MANIFEST, for use in soap:Body element --> <element name="Manifest"> <complexType> <sequence> <element ref="tns:Reference" maxOccurs="unbounded" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 118 of 144 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:bodyExtension.grp" /> </complexType> </element> <element name="Reference"> <complexType> <sequence> <element ref="tns:Schema" minOccurs="0" maxOccurs="unbounded" /> <element ref="tns:Description" minOccurs="0" maxOccurs="unbounded" /> <choice> <element ref="tns:FileName" /> <element ref="tns:MessageRef" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </choice> </sequence> <attribute ref="tns:id" /> <attribute ref="xlink:type" fixed="simple" /> <attribute ref="xlink:href" use="required" /> <attribute ref="xlink:role" /> <attribute name="contentId" type="string" use="optional" /> <attribute name="contentType" type="string" use="optional" /> <attribute name="contentLocation" type="anyURI" use="optional" /> </complexType> </element> <element name="Schema"> <complexType> <attribute name="location" type="anyURI" use="required" /> <attribute name="version" type="tns:non-empty-string" /> </complexType> </element> <!-MESSAGEHEADER, for use in soap:Header element --> <element name="MessageHeader"> <complexType> <sequence> <element ref="tns:From" minOccurs="0" /> <element ref="tns:To" minOccurs="0" /> <element ref="tns:CPAId" minOccurs="0" /> <element ref="tns:ConversationId" minOccurs="0" /> <element ref="tns:Service" minOccurs="0" /> <element ref="tns:Action" minOccurs="0" /> <element ref="tns:MessageData" minOccurs="0" /> <element ref="tns:DuplicateElimination" minOccurs="0" /> <element ref="tns:Description" minOccurs="0" maxOccurs="unbounded" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:headerExtension.grp" /> </complexType> </element> <element name="CPAId" type="tns:non-empty-string" /> <element name="ConversationId" type="tns:non-empty-string" /> <element name="Service"> <complexType> <simpleContent> <extension base="tns:non-empty-string"> <attribute name="type" type="tns:non-empty-string" /> </extension> </simpleContent> </complexType> </element> <element name="Action" type="tns:non-empty-string" /> <element name="MessageData"> <complexType> <sequence> <element ref="tns:MessageId" minOccurs="0" /> <element ref="tns:Timestamp" minOccurs="0" /> <element ref="tns:RefToMessageId" minOccurs="0" /> <element ref="tns:TimeToLive" minOccurs="0" /> </sequence> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 119 of 144 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 </complexType> </element> <element name="MessageId" type="tns:non-empty-string" /> <element name="TimeToLive" type="dateTime" /> <element name="DuplicateElimination" /> <!-SYNC REPLY, for use in soap:Header element --> <element name="SyncReply"> <complexType> <sequence> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:headerExtension.grp" /> <attribute ref="soap:actor" default="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" /> </complexType> </element> <!-MESSAGE ORDER, for use in soap:Header element --> <element name="MessageOrder"> <complexType> <sequence> <element ref="tns:SequenceNumber" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:headerExtension.grp" /> </complexType> </element> <element name="SequenceNumber" type="tns:sequenceNumber.type" /> <!-ACK REQUESTED, for use in soap:Header element --> <element name="AckRequested"> <complexType> <sequence> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:headerExtension.grp" /> <attribute ref="soap:actor" /> <attribute name="signed" type="boolean" use="optional" /> </complexType> </element> <!-ACKNOWLEDGMENT, for use in soap:Header element --> <element name="Acknowledgment"> <complexType> <sequence> <element ref="tns:Timestamp" minOccurs="0" /> <element ref="tns:RefToMessageId" minOccurs="0" /> <element ref="tns:From" minOccurs="0" /> <element name="Reference" minOccurs="0" maxOccurs="unbounded" /> <any namespace="##other" processContents="lax" minOccurs="0" /> <element ref="ds:Reference" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:headerExtension.grp" /> <attribute ref="soap:actor" default="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" /> </complexType> </element> <!-ERROR LIST, for use in soap:Header element --> <element name="ErrorList"> <complexType> <sequence> <element ref="tns:Error" maxOccurs="unbounded" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:headerExtension.grp" /> <attribute name="highestSeverity" type="tns:severity.type" use="required" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 120 of 144 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 </complexType> </element> <element name="Error"> <complexType> <sequence> <element ref="tns:Description" minOccurs="0" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute ref="tns:id" /> <attribute name="codeContext" type="anyURI" default="urn:oasis:names:tc:ebxmlmsg:service:errors" /> <attribute name="errorCode" type="tns:non-empty-string" use="required" /> <attribute name="severity" type="tns:severity.type" use="required" /> <attribute name="location" type="tns:non-empty-string" /> </complexType> </element> <!-STATUS RESPONSE, for use in soap:Body element --> <element name="StatusResponse"> <complexType> <sequence> <element ref="tns:RefToMessageId" /> <element ref="tns:Timestamp" minOccurs="0" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:bodyExtension.grp" /> <attribute name="messageStatus" type="tns:messageStatus.type" use="required" /> </complexType> </element> <!-STATUS REQUEST, for use in soap:Body element --> <element name="StatusRequest"> <complexType> <sequence> <element ref="tns:RefToMessageId" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attributeGroup ref="tns:bodyExtension.grp" /> </complexType> </element> <!-COMMON TYPES --> <complexType name="sequenceNumber.type"> <simpleContent> <extension base="positiveInteger"> <attribute name="status" type="tns:status.type" default="Continue" /> </extension> </simpleContent> </complexType> <simpleType name="status.type"> <restriction base="NMTOKEN"> <enumeration value="Reset" /> <enumeration value="Continue" /> </restriction> </simpleType> <simpleType name="messageStatus.type"> <restriction base="NMTOKEN"> <enumeration value="UnAuthorized" /> <enumeration value="NotRecognized" /> <enumeration value="Received" /> <enumeration value="Processed" /> <enumeration value="Forwarded" /> </restriction> </simpleType> <simpleType name="non-empty-string"> <restriction base="string"> <minLength value="1" /> </restriction> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 121 of 144 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 </simpleType> <simpleType name="severity.type"> <restriction base="NMTOKEN"> <enumeration value="Warning" /> <enumeration value="Error" /> </restriction> </simpleType> <!-COMMON ATTRIBUTES and ATTRIBUTE GROUPS --> <attribute name="id" type="ID" /> <attribute name="version" type="tns:non-empty-string" /> <!-COMMON ELEMENTS --> <element name="PartyId"> <complexType> <simpleContent> <extension base="tns:non-empty-string"> <attribute name="type" type="tns:non-empty-string" /> </extension> </simpleContent> </complexType> </element> <element name="To"> <complexType> <sequence> <element ref="tns:PartyId" /> <element name="Role" type="tns:non-empty-string" minOccurs="0" /> </sequence> </complexType> </element> <element name="From"> <complexType> <sequence> <element ref="tns:PartyId" /> <element name="Role" type="tns:non-empty-string" minOccurs="0" /> </sequence> </complexType> </element> <element name="Description"> <complexType> <simpleContent> <extension base="tns:non-empty-string"> <attribute ref="xml:lang" use="required" /> </extension> </simpleContent> </complexType> </element> <element name="RefToMessageId" type="tns:non-empty-string" /> <element name="Timestamp" type="dateTime" /> <element name="FileName" type="tns:non-empty-string" /> <element name="MessageRef" type="tns:non-empty-string" /> </schema> 4099 4100 XMLDSIG Declaration Schema 4101 4102 4103 4104 4105 4106 4107 4108 4109 <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.oasisopen.org/tc/ebxml-iic/tests/xmldsig" xmlns:ds="http://www.oasis-open.org/tc/ebxmliic/tests/xmldsig" version="0.1" elementFormDefault="qualified" attributeFormDefault="unqualified"> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 122 of 144 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 <!-Basic Types Defined for Signatures --> <simpleType name="CryptoBinary"> <restriction base="base64Binary" /> </simpleType> <simpleType name="DigestValueType"> <restriction base="base64Binary" /> </simpleType> <simpleType name="HMACOutputLengthType"> <restriction base="integer" /> </simpleType> <!-Start Signature --> <element name="Signature" type="ds:SignatureType" /> <complexType name="SignatureType"> <sequence> <element ref="ds:SignedInfo" /> <element ref="ds:SignatureValue" minOccurs="0" /> <element ref="ds:KeyInfo" minOccurs="0" /> <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="Id" use="optional" type="ID" /> </complexType> <element name="SignatureValue" type="ds:SignatureValueType" /> <complexType name="SignatureValueType"> <simpleContent> <extension base="base64Binary"> <attribute name="Id" use="optional" type="ID" /> </extension> </simpleContent> </complexType> <!-Start SignedInfo --> <element name="SignedInfo" type="ds:SignedInfoType" /> <complexType name="SignedInfoType"> <sequence> <element ref="ds:CanonicalizationMethod" minOccurs="0" /> <element ref="ds:SignatureMethod" minOccurs="0" /> <element ref="ds:Reference" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="Id" use="optional" type="ID" /> </complexType> <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType" /> <complexType name="CanonicalizationMethodType" mixed="true"> <!-(0,unbounded) elements from (1,1) namespace --> <sequence> <any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="Algorithm" use="required" type="anyURI" /> </complexType> <element name="SignatureMethod" type="ds:SignatureMethodType" /> <complexType name="SignatureMethodType" mixed="true"> <!-(0,unbounded) elements from (1,1) external namespace --> <sequence> <element name="HMACOutputLength" type="ds:HMACOutputLengthType" minOccurs="0" /> <any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="Algorithm" use="required" type="anyURI" /> </complexType> <!-Start Reference --> <element name="Reference" type="ds:ReferenceType" /> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 123 of 144 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 <complexType name="ReferenceType"> <sequence> <element ref="ds:Transforms" minOccurs="0" /> <element ref="ds:DigestMethod" /> <element ref="ds:DigestValue" minOccurs="0" /> </sequence> <attribute name="Id" use="optional" type="ID" /> <attribute name="URI" use="optional" type="anyURI" /> <attribute name="Type" use="optional" type="anyURI" /> </complexType> <element name="Transforms" type="ds:TransformsType" /> <complexType name="TransformsType"> <sequence> <element ref="ds:Transform" maxOccurs="unbounded" /> </sequence> </complexType> <element name="Transform" type="ds:TransformType" /> <complexType name="TransformType" mixed="true"> <!-(1,1) elements from (0,unbounded) namespaces --> <choice minOccurs="0" maxOccurs="unbounded"> <any namespace="##other" processContents="lax" /> <element name="XPath" type="string" /> </choice> <attribute name="Algorithm" use="required" type="anyURI" /> </complexType> <!-End Reference --> <element name="DigestMethod" type="ds:DigestMethodType" /> <complexType name="DigestMethodType" mixed="true"> <sequence> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="Algorithm" use="required" type="anyURI" /> </complexType> <element name="DigestValue" type="ds:DigestValueType" /> <!-End SignedInfo --> <!-Start KeyInfo --> <element name="KeyInfo" type="ds:KeyInfoType" /> <complexType name="KeyInfoType" mixed="true"> <!-(1,1) elements from (0,unbounded) namespaces --> <choice maxOccurs="unbounded"> <element ref="ds:KeyName" /> <element ref="ds:KeyValue" /> <element ref="ds:RetrievalMethod" /> <element ref="ds:X509Data" /> <element ref="ds:PGPData" /> <element ref="ds:SPKIData" /> <element ref="ds:MgmtData" /> <any namespace="##other" processContents="lax" /> </choice> <attribute name="Id" use="optional" type="ID" /> </complexType> <element name="KeyName" type="string" /> <element name="MgmtData" type="string" /> <element name="KeyValue" type="ds:KeyValueType" /> <complexType name="KeyValueType" mixed="true"> <choice> <element ref="ds:DSAKeyValue" /> <element ref="ds:RSAKeyValue" /> <any namespace="##other" processContents="lax" /> </choice> </complexType> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 124 of 144 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 <element name="RetrievalMethod" type="ds:RetrievalMethodType" /> <complexType name="RetrievalMethodType"> <sequence> <element ref="ds:Transforms" minOccurs="0" /> </sequence> <attribute name="URI" type="anyURI" /> <attribute name="Type" use="optional" type="anyURI" /> </complexType> <!-Start X509Data --> <element name="X509Data" type="ds:X509DataType" /> <complexType name="X509DataType"> <sequence maxOccurs="unbounded"> <choice> <element name="X509IssuerSerial" type="ds:X509IssuerSerialType" /> <element name="X509SKI" type="base64Binary" /> <element name="X509SubjectName" type="string" /> <element name="X509Certificate" type="base64Binary" /> <element name="X509CRL" type="base64Binary" /> <any namespace="##other" processContents="lax" /> </choice> </sequence> </complexType> <complexType name="X509IssuerSerialType"> <sequence> <element name="X509IssuerName" type="string" /> <element name="X509SerialNumber" type="integer" /> </sequence> </complexType> <!-End X509Data --> <!-Begin PGPData --> <element name="PGPData" type="ds:PGPDataType" /> <complexType name="PGPDataType"> <choice> <sequence> <element name="PGPKeyID" type="base64Binary" /> <element name="PGPKeyPacket" type="base64Binary" minOccurs="0" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <sequence> <element name="PGPKeyPacket" type="base64Binary" /> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> </choice> </complexType> <!-End PGPData --> <!-Begin SPKIData --> <element name="SPKIData" type="ds:SPKIDataType" /> <complexType name="SPKIDataType"> <sequence maxOccurs="unbounded"> <element name="SPKISexp" type="base64Binary" /> <any namespace="##other" processContents="lax" minOccurs="0" /> </sequence> </complexType> <!-End SPKIData --> <!-End KeyInfo --> <!-Start Object (Manifest, SignatureProperty) ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 125 of 144 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 --> <element name="Object" type="ds:ObjectType" /> <complexType name="ObjectType" mixed="true"> <!-add a grep facet --> <sequence minOccurs="0" maxOccurs="unbounded"> <any namespace="##any" processContents="lax" /> </sequence> <attribute name="Id" use="optional" type="ID" /> <attribute name="MimeType" use="optional" type="string" /> <attribute name="Encoding" use="optional" type="anyURI" /> </complexType> <element name="Manifest" type="ds:ManifestType" /> <complexType name="ManifestType"> <sequence> <element ref="ds:Reference" maxOccurs="unbounded" /> </sequence> <attribute name="Id" use="optional" type="ID" /> </complexType> <element name="SignatureProperties" type="ds:SignaturePropertiesType" /> <complexType name="SignaturePropertiesType"> <sequence> <element ref="ds:SignatureProperty" maxOccurs="unbounded" /> </sequence> <attribute name="Id" use="optional" type="ID" /> </complexType> <element name="SignatureProperty" type="ds:SignaturePropertyType" /> <complexType name="SignaturePropertyType" mixed="true"> <!-(1,1) elements from (1,unbounded) namespaces --> <choice maxOccurs="unbounded"> <any namespace="##other" processContents="lax" /> </choice> <attribute name="Target" use="required" type="anyURI" /> <attribute name="Id" use="optional" type="ID" /> </complexType> <!-End Object (Manifest, SignatureProperty) --> <!-Start Algorithm Parameters --> <!-Start KeyValue Element-types --> <element name="DSAKeyValue" type="ds:DSAKeyValueType" /> <complexType name="DSAKeyValueType"> <sequence> <sequence minOccurs="0"> <element name="P" type="ds:CryptoBinary" /> <element name="Q" type="ds:CryptoBinary" /> </sequence> <element name="G" type="ds:CryptoBinary" minOccurs="0" /> <element name="Y" type="ds:CryptoBinary" /> <element name="J" type="ds:CryptoBinary" minOccurs="0" /> <sequence minOccurs="0"> <element name="Seed" type="ds:CryptoBinary" /> <element name="PgenCounter" type="ds:CryptoBinary" /> </sequence> </sequence> </complexType> <element name="RSAKeyValue" type="ds:RSAKeyValueType" /> <complexType name="RSAKeyValueType"> <sequence> <element name="Modulus" type="ds:CryptoBinary" /> <element name="Exponent" type="ds:CryptoBinary" /> </sequence> </complexType> <!-- ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 126 of 144 4394 4395 4396 4397 4398 4399 End KeyValue Element-types --> <!-End Signature --> </schema> 4400 4401 4402 4403 4404 4405 4406 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 127 of 144 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 Appendix D (Normative) The ebXML Message Store Schema <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <xsd:schema targetNamespace="http://www.oasis-open.org/tc/ebxmliic/testing/messageStore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://www.oasis-open.org/tc/ebxml-iic/testing/mime" xmlns="http://www.oasis-open.org/tc/ebxml-iic/testing/messageStore"> <xsd:import namespace="http://www.oasis-open.org/tc/ebxml-iic/testing/mime" schemaLocation="messagestore_mime.xsd" /> <xsd:element name="MessageStore"> <xsd:complexType> <xsd:sequence> <xsd:element ref="mime:Message" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> 4427 4428 4429 4430 Message Store MIME Message Schema 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.oasisopen.org/tc/ebxml-iic/testing/mime" xmlns:tns="http://www.oasis-open.org/tc/ebxmliic/testing/mime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.oasis-open.org/tc/ebxml-iic/testing/soap"> <import namespace="http://www.oasis-open.org/tc/ebxml-iic/testing/soap" schemaLocation="messagestore_soap.xsd" /> <element name="Message"> <complexType mixed="true"> <choice> <element ref="tns:MessageContainer" /> </choice> <attribute name="contentType" default="multipart/related" type="string" /> <attribute name="type" use="optional" type="string" /> <attribute name="serviceInstanceId" use="required" type="anyURI" /> <attribute name="id" use="required" type="string" /> <attribute name="syncType" use="required" type="tns:sync.type" /> <attribute name="reportingAction" use="required" type="string" /> <attribute name="serviceName" use="required" type="string" /> </complexType> </element> <element name="MessageContainer"> <complexType> <sequence> <element ref="soap:Envelope" /> </sequence> <attribute name="contentId" use="optional" type="string" /> <attribute name="contentType" use="optional" type="string" /> <attribute name="charset" use="optional" type="string" /> </complexType> </element> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 128 of 144 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 <element name="PayloadContainer"> <complexType> <attribute name="contentId" use="optional" type="string" /> <attribute name="contentType" use="optional" type="string" /> <attribute name="charset" use="optional" type="string" /> </complexType> </element> <simpleType name="sync.type"> <restriction base="NMTOKEN"> <enumeration value="syncronous" /> <enumeration value="asyncronous" /> </restriction> </simpleType> </schema> 4480 4481 4482 4483 4484 4485 4486 Message Store SOAP Message Schema 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <xs:schema targetNamespace="http://www.oasis-open.org/tc/ebxml-iic/testing/soap" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.oasis-open.org/tc/ebxmliic/testing/soap" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"> <xs:import namespace="http://www.oasis-open.org/committees/ebxml-msg/schema/msgheader-2_0.xsd" schemaLocation="http://www.oasis-open.org/committees/ebxmlmsg/schema/msg-header-2_0.xsd" /> - <xs:attributeGroup name="encodingStyle"> <xs:attribute name="encodingStyle" type="tns:encodingStyle" /> </xs:attributeGroup> - <!-Schema for the SOAP/1.1 envelope This schema has been produced using W3C's SOAP Version 1.2 schema found at: http://www.w3.org/2001/06/soap-envelope Copyright 2001 Martin Gudgin, Developmentor. Changes made are the following: - reverted namespace to http://schemas.xmlsoap.org/soap/envelope/ - reverted mustUnderstand to only allow 0 and 1 as lexical values Original copyright: Copyright 2001 W3C (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ This document is governed by the W3C Software License [1] as described in the FAQ [2]. [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720 [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 129 of 144 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 --> <!-Envelope, header and body --> <xs:element name="Envelope" type="tns:Envelope" /> <xs:complexType name="Envelope"> <xs:sequence> <xs:element ref="tns:Header" /> <xs:element ref="tns:Body" /> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="lax" /> </xs:complexType> <xs:group name="optionElements"> <xs:all minOccurs="0"> <xs:element ref="eb:SyncReply" minOccurs="0" /> <xs:element ref="eb:MessageOrder" minOccurs="0" /> <xs:element ref="eb:AckRequested" minOccurs="0" /> <xs:element ref="eb:Acknowledgment" minOccurs="0" /> <xs:element ref="eb:ErrorList" minOccurs="0" /> </xs:all> </xs:group> <xs:element name="Header"> <xs:complexType> <xs:sequence> <xs:element ref="eb:MessageHeader" /> <xs:group ref="tns:optionElements" /> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="Header"> <xs:sequence> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="lax" /> </xs:complexType> <xs:element name="Body"> <xs:complexType> <xs:choice> <xs:element ref="eb:Manifest" /> <xs:element ref="eb:StatusRequest" /> <xs:element ref="eb:StatusResponse" /> </xs:choice> </xs:complexType> </xs:element> <xs:complexType name="Body"> <xs:annotation> <xs:documentation>Prose in the spec does not specify that attributes are allowed on the Body element</xs:documentation> </xs:annotation> <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:anyAttribute namespace="##any" processContents="lax" /> </xs:complexType> <!-Global Attributes. The following attributes are intended to be usable via qualified attribute names on any complex type referencing them. --> <xs:attribute name="mustUnderstand" default="0"> <xs:simpleType> <xs:restriction base="boolean"> <xs:pattern value="0|1" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="actor" type="anyURI" /> <xs:simpleType name="encodingStyle"> <xs:annotation> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 130 of 144 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 <xs:documentation>'encodingStyle' indicates any canonicalization conventions followed in the contents of the containing element. For example, the value 'http://schemas.xmlsoap.org/soap/encoding/' indicates the pattern described in SOAP specification</xs:documentation> </xs:annotation> <xs:list itemType="anyURI" /> </xs:simpleType> <xs:complexType name="Fault" final="extension"> <xs:annotation> <xs:documentation>Fault reporting structure</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="faultcode" type="QName" /> <xs:element name="faultstring" type="string" /> <xs:element name="faultactor" type="anyURI" minOccurs="0" /> <xs:element name="detail" type="tns:detail" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="detail"> <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:anyAttribute namespace="##any" processContents="lax" /> </xs:complexType> </xs:schema> 4624 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 131 of 144 4625 4626 Appendix E (Normative) The ebXML Test Report Schema 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.oasisopen.org/tc/ebxml-iic/testReport" xmlns:ebReport="http://www.oasis-open.org/tc/ebxmliic/testReport" version="1.0" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <!-edited with XML Spy v4.3 U (http://www.xmlspy.com) by Michael Kass (NIST) --> <element name="TestReport"> <complexType> <sequence> <element ref="ebReport:MetaData" /> <element ref="ebReport:TestCase" maxOccurs="unbounded" /> </sequence> </complexType> </element> <element name="MetaData"> <complexType> <sequence> <element ref="ebReport:Description" /> <element ref="ebReport:Version" /> <element ref="ebReport:Maintainer" /> <element ref="ebReport:Location" /> <element ref="ebReport:PublishDate" /> <element ref="ebReport:Status" /> </sequence> </complexType> </element> <element name="Description" type="string" /> <element name="Version" type="string" /> <element name="Maintainer" type="string" /> <element name="Location" type="anyURI" /> <element name="PublishDate" type="string" /> <element name="Status" type="string" /> <element name="TestCase"> <complexType> <sequence> <sequence maxOccurs="unbounded"> <element ref="ebReport:TestStep" /> </sequence> </sequence> <attribute name="id" use="required" type="string" /> <attribute name="description" use="optional" type="string" /> <attribute name="name" use="required" type="string" /> <attribute name="author" use="optional" type="string" /> <attribute name="version" use="optional" type="string" /> <attribute name="requirementReferenceId" use="required" type="anyURI" /> <attribute name="requirementType" use="required" type="string" /> <attribute name="testCaseResult" use="required" type="ebReport:testCaseResult.type" /> <attribute name="specRef" use="required" type="string" /> </complexType> </element> <element name="TestStep"> <complexType> <sequence> <element name="StepResult"> <complexType> <choice> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 132 of 144 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 <element ref="ebReport:Pass" /> <element ref="ebReport:Fail" /> </choice> </complexType> </element> </sequence> <attribute name="description" use="required" type="string" /> </complexType> </element> <element name="ErrorMessage" type="string" /> <simpleType name="mimeHeader.type"> <restriction base="NMTOKEN"> <enumeration value="MIMEMessageContent-Type" /> <enumeration value="MIMEMessageStart" /> <enumeration value="Content-Type" /> <enumeration value="start" /> <enumeration value="charset" /> <enumeration value="type" /> <enumeration value="wildcard" /> </restriction> </simpleType> <simpleType name="content.type"> <restriction base="NMTOKEN"> <enumeration value="XML" /> <enumeration value="date" /> <enumeration value="URI" /> <enumeration value="signature" /> </restriction> </simpleType> <simpleType name="method.type"> <restriction base="NMTOKEN"> <enumeration value="xpath" /> <enumeration value="sha-1" /> </restriction> </simpleType> <simpleType name="messageContext.type"> <restriction base="NMTOKEN"> <enumeration value="true" /> <enumeration value="false" /> </restriction> </simpleType> <simpleType name="requirement.type"> <restriction base="NMTOKEN"> <enumeration value="required" /> <enumeration value="stronglyrecommended" /> <enumeration value="recommended" /> <enumeration value="optional" /> </restriction> </simpleType> <simpleType name="testCaseResult.type"> <restriction base="NMTOKEN"> <enumeration value="pass" /> <enumeration value="fail" /> <enumeration value="untested" /> </restriction> </simpleType> <simpleType name="failure.type"> <restriction base="NMTOKEN"> <enumeration value="preConditionTest" /> <enumeration value="assertionTest" /> <enumeration value="undetermined" /> </restriction> </simpleType> <element name="Container"> <complexType> <simpleContent> <extension base="string"> <attribute name="content-id" use="optional" type="string" /> <attribute name="content-location" use="optional" type="string" /> </extension> </simpleContent> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 133 of 144 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 </complexType> </element> <element name="Message"> <complexType> <sequence> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="id" use="required" type="ID" /> </complexType> </element> <element name="Pass"> <complexType /> </element> <element name="Fail"> <complexType> <attribute name="failType" use="optional" type="ebReport:failure.type" /> </complexType> </element> <element name="SoapFault"> <complexType> <sequence> <element name="faultcode" type="QName" /> <element name="faultstring" type="string" /> <element name="faultactor" type="anyURI" minOccurs="0" /> <element name="detail" type="NCName" minOccurs="0" /> </sequence> </complexType> </element> <complexType name="detail"> <sequence> <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <anyAttribute namespace="##any" processContents="lax" /> </complexType> <element name="ebXMLError" type="string" /> </schema> 4796 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 134 of 144 4797 4798 Appendix F (Normative) Service Related Message Schema 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 <?xml version="1.0" encoding="UTF-8" ?> <!-Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema --> <xsd:schema xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header2_0.xsd" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace="http://www.oasis-open.org/committees/ebxml-msg/schema/msgheader-2_0.xsd" schemaLocation="http://www.oasis-open.org/committees/ebxmlmsg/schema/msg-header-2_0.xsd" /> <xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/" /> <xsd:element name="InitiatorRequest"> <xsd:complexType> <xsd:sequence> <xsd:element name="CPAId" /> <xsd:element name="ConversationId" /> <xsd:element name="MessageId" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="PayloadVerifyResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="Result" type="xsd:boolean" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ErrorAppNotifyResponse"> <xsd:complexType> <xsd:sequence> <xsd:element ref="eb:ErrorList" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ErrorURLNotifyResponse"> <xsd:complexType> <xsd:sequence> <xsd:element ref="eb:ErrorList" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ConfiguratorRequest"> <xsd:complexType> <xsd:sequence> <xsd:choice minOccurs="0"> <xsd:element ref="CPAId" /> <xsd:element ref="CPA" /> </xsd:choice> <xsd:element ref="Mode" minOccurs="0" /> <xsd:element name="ResponseURL" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ConfiguratorResponse"> <xsd:complexType> <xsd:sequence> <xsd:element ref="Status" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 135 of 144 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 <xsd:element name="CPA"> <xsd:complexType> <xsd:sequence> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Status" type="xsd:boolean" /> <xsd:element name="CPAId" type="non-empty-string" /> <xsd:element name="Mode" type="non-empty-string" /> <xsd:element name="ConversationId" type="non-empty-string" /> <xsd:element name="MessageId" type="non-empty-string" /> <xsd:simpleType name="non-empty-string"> <xsd:restriction base="xsd:string"> <xsd:minLength value="1" /> </xsd:restriction> </xsd:simpleType> <xsd:element name="TestMessage"> <xsd:complexType> <xsd:choice> <xsd:element ref="InitiatorRequest" /> <xsd:element ref="PayloadVerifyResponse" /> <xsd:element ref="ConfiguratorRequest" /> <xsd:element ref="ConfiguratorResponse" /> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> 4890 4891 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 136 of 144 4892 Appendix G Terminology 4893 4894 4895 4896 4897 4898 Several terms used in this specification are borrowed from the Conformance Glossary (OASIS, [ConfGlossary]) and also from the Standards and Conformance Testing Group at NIST. [ConfCertModelNIST]. They are not reported in this glossary, which only reflects (1) terms that are believed to be specific to – and introduced by - the ebXML Test Framework, or (2) terms that have a well understood meaning in testing literature (see above references) and may have additional properties in the context of the Test Framework that is worth mentioning. 4899 Term Definition Asymmetric testing Interoperability testing where all parties are not equally tested for the same features. An asymmetric interoperability test suite is typically driven from one party, and will need to be executed from every other party in order to evenly test for all interoperability features between candidate parties. Base CPA Required by both the conformance and interoperabililty test suites that describe both the Test Driver and Test Service Collaboration Protocol Profile Agreement. This is the “bootstrap” configuration for all messaging between the testing and candidate ebXML applications. Each test suite will define additional CPAs. How the base CPA is represented to applications is implementation specific. Candidate Implementation (or Implementation Under test): The implementation (realization of a specification) used as a target of the testing (e.g. conformance testing). Conformance Fulfillment of an implementation of all requirements specified; adherence of an implementation to the requirements of one or more specific standards or specifications. Connection mode (Test Driver in) In connection mode and depending on the test harness, the test driver will interact with other components by directly generating ebXML messages at transport level (e.g. generates HTTP envelopes). Interoperability profile A set of test requirements for interoperability which is a subset of all possible interoperability requirements, and which usually exercises features that correspond to specific user needs. Interoperability Testing Process of verifying that two implementations of the same specification, or that an implementation and its operational environment, can interoperate according to the requirements of an assumed agreement or contract. This contract does not belong necessarily to the specification, but its terms and elements should be defined in it with enough detail, so that such a contract, combined with the specification, will be sufficient to determine precisely the expected behavior of an implementation, and to test it. Local Reporting mode (Test Service in) In this mode (a sub-mode of Reporting), the Test Service is installed on the same host as the Test Driver it reports to, and executes in the same process space. The notification uses the Receive interface of the Test Driver, which must be operating in service mode. ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 137 of 144 Loop mode (Test Service in) When a test service is in loop mode, it does not generate notifications to the test driver. The test service only communicates with external parties via the message handler. MSH Message Service Handler, an implementation of ebXML Messaging Services Reporting mode (Test Service in) A test service is deployed in reporting mode, when it notifies the test driver of invoked actions. This notification usually contains material from received messages. Profile A profile is used as a method for defining subsets of a specification by identifying the functionality, parameters, options, and/or implementation requirements necessary to satisfy the requirements of a particular community of users. Specifications that explicitly recognize profiles should provide rules for profile creation, maintenance, registration, and applicability. Remote Reporting mode (Test Service in) In this mode (a sub-mode of Reporting), the Test Service is deployed on a different host than the Test Driver it reports to. The notification is done via messages to the Test Driver, which is operating in connection mode. Service mode (Test Driver in) The Test Driver invokes actions in the test service via a programmatic interface (as opposed to via messages). The Test Service must be in local reporting mode. Specification coverage Specifies the degree that the specification requirements are satisfied by the set of test requirements included in the test suite document. Coverage can be full, partial or none. Test actions (Or Test Service actions). Standard functions available in the test service to support most test cases. Test case In the TestFramework, a test case is a sequence of discrete test steps, aimed at verifying a test requirement. Test Requirements coverage Specifies the degree that the test requirements are satisfied by the set of test cases listed in the test suite document. Coverage can be full, contingent, partial or none. 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 138 of 144 4913 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 139 of 144 4914 Appendix H References 4915 4916 H.1 Normative References 4917 4918 4919 [ConfCertModelNIST] Conformance Testing and Certification Model for Software Specifications. L. Carnahan, L. Rosenthal, M. Skall. ISACC '98 Conference. March 1998 4920 4921 [ConfCertTestFrmk] Conformance Testing and Certification Framework. L. Rosenthal, M. Skall, L. Carnahan. April 2001 4922 4923 [ConfReqOASIS] Conformance Requirements for Specifications. OASIS Conformance Technical Committee. March 2002. 4924 [ConfGlossary] Conformance Glossary. OASIS Conformance TC, L. Rosenthal. September 2000. 4925 4926 [RFC2119] Key Words for use in RFCs to Indicate Requirement Levels, Internet Engineering Task Force, March 1997 4927 4928 [RFC2045] Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, N Freed & N Borenstein, Published November 1996 4929 4930 [RFC2046] Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. N. Freed, N. Borenstein. November 1996. 4931 [RFC2387] The MIME Multipart/Related Content-type. E. Levinson. August 1998. 4932 [RFC2392] Content-ID and Message-ID Uniform Resource Locators. E. Levinson, August 1998 4933 [RFC2396] Uniform Resource Identifiers (URI): Generic Syntax. T Berners-Lee, August 1998 4934 [RFC2821] Simple Mail Transfer Protocol, J. Klensin, Editor, April 2001 Obsoletes RFC 821 4935 4936 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol, HTTP/1.1", June 1999. 4937 4938 4939 4940 4941 [SOAP] W3C-Draft-Simple Object Access Protocol (SOAP) v1.1, Don Box, DevelopMentor; David Ehnebuske, IBM; Gopal Kakivaya, Andrew Layman, Henrik Frystyk Nielsen, Satish Thatte, Microsoft; Noah Mendelsohn, Lotus Development Corp.; Dave Winer, UserLand Software, Inc.; W3C Note 08 May 2000, http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ 4942 4943 4944 [SOAPAttach] SOAP Messages with Attachments, John J. Barton, Hewlett Packard Labs; Satish Thatte and Henrik Frystyk Nielsen, Microsoft, Published Oct 09 2000 http://www.w3.org/TR/2000/NOTE-SOAP-attachments-20001211 4945 [XLINK] W3C XML Linking Recommendation, http://www.w3.org/TR/2001/REC-xlink-20010627/ 4946 4947 [XML] W3C Recommendation: Extensible Markup Language (XML) 1.0 (Second Edition), October 2000, http://www.w3.org/TR/2000/REC-xml-20001006 4948 4949 [XMLC14N] W3C Recommendation Canonical XML 1.0, http://www.w3.org/TR/2001/REC-xml-c14n-20010315 4950 4951 [XMLNS] W3C Recommendation for Namespaces in XML, World Wide Web Consortium, 14 January 1999, http://www.w3.org/TR/1999/REC-xml-names-19990114/ 4952 4953 [XMLDSIG] Joint W3C/IETF XML-Signature Syntax and Processing specification, http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/. ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 140 of 144 4954 4955 [XPointer] XML Pointer Language (XPointer) Version 1.0, W3C Candidate Recommendation 11 September 2001, http://www.w3.org/TR/2001/CR-xptr-20010911/ 4956 4957 H.2 Non-Normative References 4958 4959 4960 [ebTestFramework] ebXML Test Framework specification, Version 1.0, Technical Committee Specification, March 4, 2003, http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ebxml-iic 4961 4962 [ebMS] 4963 4964 [ebMSInteropTests] ebXML MS V2.0 Basic Interoperability Profile Test Cases, http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ebxml-iic 4965 4966 [ebMSConfTestSuite] ebXML MS V2.0 Conformance Test Suite, http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ebxml-iic 4967 4968 [ebMSInteropReqs] ebXML MS V2.0 Interoperability Test Requirements, http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ebxml-iic ebXML Messaging Service Specification, Version 2.0, http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ebxml-msg 4969 4970 4971 4972 4973 [XMLSchema] W3C XML Schema Recommendation, http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/ http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/ 4974 4975 4976 [ebCPP] ebXML Collaboration Protocol Profile and Agreement specification, Version 1.0, published 10 May, 2001, http://www.ebxml.org/specs/ebCCP.doc 4977 4978 [ebBPSS] ebXML Business Process Specification Schema, version 1.0, published 27 April 2001, http://www.ebxml.org/specs/ebBPSS.pdf. 4979 4980 4981 [ebRS] ebXML Registry Services Specification, version 2.0, published 6 December 2001 http://www.oasis-open.org/committees/regrep/documents/2.0/specs/ebrs.pdf, published, 5 December 2001. 4982 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 141 of 144 4983 Appendix I Acknowledgments 4984 4985 4986 The authors wish to acknowledge the support of the members of the OASIS ebXML IIC TC who contributed ideas, comments and text to this specification by the group’s discussion eMail list, on conference calls and during face-to-face meetings. 4987 I.1 IIC Committee Members 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 Jacques Durand, Fujitsu <[email protected]> Jeffery Eck, Global Exchange Services <[email protected]> Hatem El Sebaaly, IPNet Solutions <[email protected]> Aaron Gomez, Drummond Group Inc. <[email protected]> Michael Kass, NIST <[email protected]> Matthew MacKenzie, Individual <[email protected]> Monica Martin, Sun Microsystems <[email protected]> Tim Sakach, Drake Certivo <[email protected]> Jeff Turpin, Cyclone Commerce <[email protected]> Eric van Lydegraf, Kinzan <[email protected]> Pete Wenzel, SeeBeyond <[email protected]> Steven Yung, Sun Microsystems <[email protected]> Boonserm Kulvatunyou, NIST <[email protected]> 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 142 of 144 5020 Appendix J Revision History 5021 Rev Date By Whom What cs-10 2003-03-07 Michael Kass Initial version ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 143 of 144 5022 Appendix K Notices 5023 5024 5025 5026 5027 5028 5029 5030 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's procedures with respect to rights in OASIS specifications can be found at 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 implementors or users of this specification, can be obtained from the OASIS Executive Director. 5031 5032 5033 OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director. 5034 Copyright © OASIS Open 2003. All Rights Reserved. 5035 5036 5037 5038 5039 5040 5041 5042 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 paragraph are included on all such copies and derivative works. However, this document itself does not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. 5043 5044 The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. 5045 5046 5047 5048 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 RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 5049 ebxml-iic-basic-interop-test-suite-10 Copyright © OASIS Open 2003. All Rights Reserved. 03 April 2003 Page 144 of 144
© Copyright 2025 Paperzz