cxml-ruby 0.5.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -0
  3. data/.rubocop.yml +4 -0
  4. data/CHANGELOG.md +22 -0
  5. data/cxml-ruby.gemspec +1 -0
  6. data/lib/cxml-ruby.rb +1 -1
  7. data/lib/cxml/address.rb +4 -1
  8. data/lib/cxml/comment.rb +9 -0
  9. data/lib/cxml/contact.rb +4 -1
  10. data/lib/cxml/country_code.rb +9 -0
  11. data/lib/cxml/credential.rb +1 -1
  12. data/lib/cxml/deposit_amount.rb +9 -0
  13. data/lib/cxml/document.rb +4 -4
  14. data/lib/cxml/document_node.rb +11 -5
  15. data/lib/cxml/invoice_detail_item.rb +11 -11
  16. data/lib/cxml/invoice_detail_item_reference.rb +3 -1
  17. data/lib/cxml/invoice_detail_request_header.rb +5 -5
  18. data/lib/cxml/invoice_detail_summary.rb +6 -4
  19. data/lib/cxml/item_detail.rb +5 -1
  20. data/lib/cxml/order_request_header.rb +11 -10
  21. data/lib/cxml/parser.rb +7 -2
  22. data/lib/cxml/phone.rb +13 -0
  23. data/lib/cxml/postal_address.rb +1 -1
  24. data/lib/cxml/punch_out_setup_request.rb +3 -2
  25. data/lib/cxml/telephone_number.rb +11 -0
  26. data/lib/cxml/version.rb +1 -1
  27. data/spec/document_spec.rb +39 -1
  28. data/spec/fixtures/1.2.014-cXML.dtd +4184 -0
  29. data/spec/fixtures/1.2.020-InvoiceDetail.dtd +4590 -0
  30. data/spec/fixtures/1.2.020-cXML.dtd +4917 -0
  31. data/spec/fixtures/1.2.037-InvoiceDetail.dtd +7287 -0
  32. data/spec/fixtures/document_node_with_unknown_attribute.xml +7 -0
  33. data/spec/fixtures/invoice_taxes_at_line_multiple_taxes.xml +1 -3
  34. data/spec/fixtures/item_in.xml +2 -1
  35. data/spec/fixtures/{order_request.cxml → order_request.xml} +0 -0
  36. data/spec/fixtures/punch_out_order_message_doc.xml +1 -1
  37. data/spec/fixtures/punch_out_setup_request_doc_with_ship_to.xml +7 -0
  38. data/spec/fixtures/response_status_200.xml +1 -1
  39. data/spec/fixtures/response_status_400.xml +2 -2
  40. data/spec/invoice_detail_request_spec.rb +21 -1
  41. data/spec/item_in_spec.rb +5 -0
  42. data/spec/output/.gitkeep +0 -0
  43. data/spec/punch_out_order_message_spec.rb +5 -0
  44. data/spec/punch_out_setup_request_spec.rb +2 -0
  45. data/spec/purchase_order_request_spec.rb +6 -1
  46. data/spec/sender_spec.rb +6 -0
  47. data/spec/spec_helper.rb +27 -0
  48. metadata +22 -5
@@ -5,12 +5,13 @@ module CXML
5
5
  accessible_attributes %i[
6
6
  operation
7
7
  ]
8
+
8
9
  accessible_nodes %i[
10
+ buyer_cookie
11
+ extrinsics
9
12
  browser_form_post
10
13
  supplier_setup
11
- buyer_cookie
12
14
  ship_to
13
- extrinsics
14
15
  contact
15
16
  ]
16
17
 
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CXML
4
+ class TelephoneNumber < DocumentNode
5
+ accessible_nodes %i[
6
+ country_code
7
+ area_or_city_code
8
+ number
9
+ ]
10
+ end
11
+ end
data/lib/cxml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CXML
4
- VERSION = '0.5.0'
4
+ VERSION = '0.8.1'
5
5
  end
@@ -5,7 +5,7 @@ require 'spec_helper'
5
5
  describe CXML::Document do
6
6
  shared_examples_for :document_has_mandatory_values do
7
7
  it 'sets the mandatory attributes' do
8
- doc.version.should eq(CXML::Protocol::VERSION)
8
+ doc.version.should_not be_nil
9
9
  doc.payload_id.should_not be_nil
10
10
  end
11
11
  end
@@ -82,6 +82,26 @@ describe CXML::Document do
82
82
  end
83
83
  end
84
84
 
85
+ context 'when unknown attribute is present' do
86
+ let(:data) { CXML::Parser.new(data: fixture('document_node_with_unknown_attribute.xml')).parse }
87
+ let(:doc) { CXML::Document.new(data) }
88
+
89
+ it 'does not raise and parses child nodes if CXML.raise_unknown_elements is false' do
90
+ CXML.raise_unknown_elements = false
91
+ -> { doc }.should_not raise_error
92
+
93
+ doc.response.status.code.should eq(200)
94
+ doc.response.status.content.should eq('123456')
95
+
96
+ # Reset `raise_unknown_elements` for future tests
97
+ CXML.raise_unknown_elements = true
98
+ end
99
+
100
+ it 'raises UnknownAttributeError' do
101
+ -> { doc }.should raise_error(CXML::UnknownAttributeError)
102
+ end
103
+ end
104
+
85
105
  context 'when a response document is passed' do
86
106
  let(:data) { CXML::Parser.new(data: fixture('response_status_200.xml')).parse }
87
107
  include_examples :document_has_mandatory_values
@@ -130,6 +150,12 @@ describe CXML::Document do
130
150
  output_xml.should_not be_nil
131
151
  end
132
152
 
153
+ it 'validates against the DTD' do
154
+ next unless test_for_xmllint
155
+
156
+ lint_doc_with_dtd(CXML::Document.new.from_xml(output_xml)).should be true
157
+ end
158
+
133
159
  it 'outputs the response with a valid status code' do
134
160
  output_data[:response].should_not be_empty
135
161
  output_data[:response][:status][:code].should eq('200')
@@ -151,6 +177,12 @@ describe CXML::Document do
151
177
  output_data[:response].should_not be_empty
152
178
  output_data[:response][:status][:code].should eq('400')
153
179
  end
180
+
181
+ it 'validates against the DTD' do
182
+ next unless test_for_xmllint
183
+
184
+ lint_doc_with_dtd(CXML::Document.new.from_xml(output_xml)).should be true
185
+ end
154
186
  end
155
187
 
156
188
  context 'when a punch out order message document is rendered' do
@@ -161,6 +193,12 @@ describe CXML::Document do
161
193
  output_data[:message].should_not be_empty
162
194
  output_data[:message][:punch_out_order_message].should_not be_empty
163
195
  end
196
+
197
+ it 'validates against the DTD' do
198
+ next unless test_for_xmllint
199
+
200
+ lint_doc_with_dtd(CXML::Document.new.from_xml(output_xml)).should be true
201
+ end
164
202
  end
165
203
  end
166
204
  end
@@ -0,0 +1,4184 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ For cXML license agreement information, please see
4
+ http://www.cxml.org/home/license.asp
5
+
6
+ $Id: //ariba/cxml/modules/Common.mod#6 $
7
+ -->
8
+
9
+ <!--
10
+ A few character entities the XML recommendation says should be defined
11
+ "for interoperability" with existing SGML parsers. By default, these
12
+ are not included to avoid warnings (about entity redefinition) from
13
+ many XML parsers.
14
+ -->
15
+ <!ENTITY % SGML-help "IGNORE">
16
+ <![%SGML-help;[
17
+ <!ENTITY lt "&#38;#60;">
18
+ <!ENTITY gt "&#62;">
19
+ <!ENTITY amp "&#38;#38;">
20
+ <!ENTITY apos "&#39;">
21
+ <!ENTITY quot "&#34;">
22
+ ]]>
23
+
24
+ <!--
25
+ Common types used throughout the cXML definition.
26
+
27
+ The types try to follow the XML DATA definition submitted to the W3C. See
28
+ the following for more information,
29
+
30
+ http://msdn.microsoft.com/xml/reference/schema/datatypes.asp
31
+ http://www.w3c.org/TR/1998/NOTE-XML-data-0105/
32
+
33
+ -->
34
+
35
+ <!-- Atomic-level Types -->
36
+ <!ENTITY % bin.base64 "CDATA">
37
+ <!ENTITY % bin.hex "CDATA">
38
+ <!ENTITY % boolean "(0 | 1)"> <!-- 0 is false, 1 is true -->
39
+ <!ENTITY % char "CDATA">
40
+ <!ENTITY % date "CDATA">
41
+ <!ENTITY % datetime.tz "CDATA"> <!-- Time zone is required -->
42
+ <!ENTITY % fixed.14.4 "CDATA">
43
+ <!ENTITY % i8 "CDATA">
44
+ <!ENTITY % int "%i8;">
45
+ <!ENTITY % r8 "CDATA">
46
+ <!ENTITY % number "CDATA"> <!-- No limit on number of digits, unlike
47
+ %r8; -->
48
+ <!ENTITY % string "CDATA">
49
+ <!ENTITY % time.tz "CDATA"> <!-- Time zone is required -->
50
+ <!ENTITY % duration "CDATA"> <!--ISO8601 duration http://www.w3.org/TR/xmlschema-2/#duration -->
51
+ <!ENTITY % ui8 "CDATA">
52
+ <!ENTITY % uint "%ui8;"> <!-- Unique to this specification -->
53
+ <!ENTITY % uri "CDATA">
54
+ <!ENTITY % uuid "CDATA">
55
+
56
+ <!-- Higher-level Types -->
57
+ <!--
58
+ NOTE: The following is a temporary *hack* to allow empty values for
59
+ some attributes with these types. The nmtoken entity should resolve to
60
+ NMTOKEN.
61
+ -->
62
+ <!ENTITY % nmtoken "CDATA"> <!-- Any combination of XML name chars. -->
63
+ <!ENTITY % isoLangCode "%nmtoken;"> <!-- ISO 639 Language Code -->
64
+ <!ENTITY % isoCountryCode "%nmtoken;"> <!-- ISO 3166 Country Code -->
65
+ <!ENTITY % isoCurrencyCode "%nmtoken;"> <!-- ISO 4217 Currency Code -->
66
+ <!ENTITY % xmlLangCode "%nmtoken;"> <!-- Language code as defined by XML
67
+ recommendation: Language and
68
+ country. -->
69
+ <!ENTITY % URL "%uri;">
70
+ <!--
71
+ For cXML license agreement information, please see
72
+ http://www.cxml.org/home/license.asp
73
+
74
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Base.mod#2 $
75
+ -->
76
+
77
+ <!--
78
+ This file defines the basic elements used to build higher level
79
+ constructs in cXML.
80
+ -->
81
+
82
+ <!-- Basic Name/Data Elements -->
83
+ <!--
84
+ Name is used to provide an identifier for other elements.
85
+
86
+ xml:lang
87
+ The language in which the name is written.
88
+ -->
89
+ <!ELEMENT Name (#PCDATA)> <!-- string -->
90
+ <!ATTLIST Name
91
+ xml:lang %xmlLangCode; #REQUIRED
92
+ >
93
+
94
+ <!--
95
+ An Extrinsic is an element which can be used to extend the data
96
+ associated with known elements.
97
+
98
+ Since this Element is of type ANY, it could contain any arbitrary XML
99
+ document within itself, or a binary ![CDATA[]] document.
100
+
101
+ name
102
+ Name used to identify this extrinsic.
103
+ -->
104
+ <!ELEMENT Extrinsic ANY>
105
+ <!ATTLIST Extrinsic
106
+ name %string; #REQUIRED
107
+ >
108
+
109
+ <!--
110
+ Description is a string which describes something.
111
+ Though text may be interspersed with ShortName elements in this content
112
+ model, placing the ShortName at the beginning or end of the element is
113
+ much preferred. At most one ShortName element is allowed per
114
+ Description. The intended content model would be more like
115
+ (( ShortName, #PCDATA ) | ( #PCDATA | ShortName? )) if DTD syntax
116
+ supported it.
117
+
118
+ xml:lang
119
+ The language in which the description is written.
120
+ -->
121
+ <!ELEMENT Description ( #PCDATA | ShortName )* > <!-- mixed: string and
122
+ ShortName -->
123
+ <!ATTLIST Description
124
+ xml:lang %xmlLangCode; #REQUIRED
125
+ >
126
+
127
+ <!--
128
+ A short string which describes something in fewer characters than the
129
+ entire Description. This should be used when limited space is available.
130
+ For example, a table of elements might show the ShortName's of each. A
131
+ linked "details" view would show the entire Description (including the
132
+ ShortName). Without a ShortName, the user interface must default to a
133
+ truncation of the Description.
134
+ This element does not require an xml:lang attribute since it appears only
135
+ within a Description element. The language of the ShortName must match
136
+ that of the surrounding Description.
137
+ -->
138
+ <!ELEMENT ShortName (#PCDATA)> <!-- string -->
139
+
140
+ <!-- Telephone Number Elements -->
141
+ <!--
142
+ International ITU dial code for the country code in question. This
143
+ code would be entered after any escape code necessary to begin
144
+ International dialing. That is, the escape code does not appear in the
145
+ content of this element.
146
+
147
+ isoCountryCode
148
+ The ISO 3166 2-letter country code for the dial code in question.
149
+ -->
150
+ <!ELEMENT CountryCode (#PCDATA)> <!-- uint -->
151
+ <!ATTLIST CountryCode
152
+ isoCountryCode %isoCountryCode; #REQUIRED
153
+ >
154
+
155
+ <!--
156
+ The areacode or city code within a CountryCode.
157
+ -->
158
+ <!ELEMENT AreaOrCityCode (#PCDATA)> <!-- uint -->
159
+
160
+ <!--
161
+ The local number part of a telephone number.
162
+ -->
163
+ <!ELEMENT Number (#PCDATA)> <!-- string -->
164
+
165
+ <!--
166
+ An extension within relative to the Number element. This element has no
167
+ meaning without an associated Number element.
168
+ -->
169
+ <!ELEMENT Extension (#PCDATA)> <!-- uint -->
170
+
171
+ <!--
172
+ TelephoneNumber represents international telephone numbers.
173
+ -->
174
+ <!ELEMENT TelephoneNumber (CountryCode, AreaOrCityCode, Number, Extension?)>
175
+
176
+ <!--
177
+ Phone is a "named" TelephoneNumber.
178
+
179
+ name
180
+ specifies an identifier which indicates the type of phone number.
181
+ US examples would include "work","home", etc.
182
+ -->
183
+ <!ELEMENT Phone (TelephoneNumber)>
184
+ <!ATTLIST Phone
185
+ name %string; #IMPLIED
186
+ >
187
+
188
+ <!--
189
+ Fax number.
190
+ -->
191
+ <!ELEMENT Fax (TelephoneNumber | URL | Email)>
192
+ <!ATTLIST Fax
193
+ name %string; #IMPLIED
194
+ >
195
+
196
+ <!-- Addressing Elements -->
197
+ <!--
198
+ URL. A string which represents a URL
199
+ -->
200
+ <!ELEMENT URL (#PCDATA)> <!-- URL -->
201
+ <!ATTLIST URL
202
+ name %string; #IMPLIED
203
+ >
204
+
205
+ <!--
206
+ An email address. Address must conform to RFC 821 (SMTP Standard).
207
+
208
+ preferredLang
209
+ optional language that the email owner prefers to receive
210
+ emails in. Refer to the definition of xmlLangCode entity.
211
+
212
+ -->
213
+ <!ELEMENT Email (#PCDATA)> <!-- string -->
214
+ <!ATTLIST Email
215
+ name %string; #IMPLIED
216
+ preferredLang %xmlLangCode; #IMPLIED
217
+ >
218
+
219
+ <!--
220
+ Contact represents an entity at a location. The nature of this
221
+ element is that it represents a communication "end point" for a
222
+ location.
223
+
224
+ role
225
+ Position this person or group plays in the procurement process.
226
+ Likely values include endUser, administrator, purchasingAgent,
227
+ technicalSupport, customerService, sales,
228
+ supplierCorporate, supplierMasterAccount, supplierAccount,
229
+ buyerCorporate, buyerMasterAccount, buyerAccount, buyer,
230
+ subsequentBuyer. Other values may be allowed in some cases.
231
+
232
+ from and to roles are reserved for future use.
233
+
234
+ addressID
235
+ An id for the address. Needed to support address codes for
236
+ relationships that require id references.
237
+ -->
238
+ <!ELEMENT Contact (Name, PostalAddress*, Email*, Phone*, Fax*, URL*)>
239
+ <!ATTLIST Contact
240
+ role NMTOKEN #IMPLIED
241
+ addressID %string; #IMPLIED
242
+ >
243
+
244
+ <!--
245
+ The DeliverTo part of an Address. This would be internal to the actual
246
+ address know to the outside world. Similar to what an extension is to a
247
+ TelephoneNumber.
248
+ -->
249
+ <!ELEMENT DeliverTo (#PCDATA)> <!-- string -->
250
+
251
+ <!--
252
+ Street is a single line of an Address' location.
253
+ -->
254
+ <!ELEMENT Street (#PCDATA)> <!-- string -->
255
+
256
+ <!--
257
+ City is the name of the city in an Address' location.
258
+ -->
259
+ <!ELEMENT City (#PCDATA)> <!-- string -->
260
+
261
+ <!--
262
+ State is an optional state identifier in an Address' location.
263
+ -->
264
+ <!ELEMENT State (#PCDATA)> <!-- string -->
265
+
266
+ <!--
267
+ PostalCode (I have no idea how to describe it)
268
+ -->
269
+ <!ELEMENT PostalCode (#PCDATA)> <!-- string -->
270
+
271
+ <!--
272
+ Country is the name of the country in an Address' location. The
273
+ content of this element is a string which may (for example) be printed
274
+ directly to a shipping label. The content is the human-readable
275
+ equivalent of the isoCountryCode used by applications.
276
+
277
+ isoCountryCode
278
+ The ISO 3166 2-letter country code for this country.
279
+ -->
280
+ <!ELEMENT Country (#PCDATA)> <!-- string -->
281
+ <!ATTLIST Country
282
+ isoCountryCode %isoCountryCode; #REQUIRED
283
+ >
284
+
285
+ <!--
286
+ PostalAddress is a real-world location for a business or person.
287
+ -->
288
+ <!ELEMENT PostalAddress (DeliverTo*, Street+, City, State?,
289
+ PostalCode?, Country)>
290
+ <!ATTLIST PostalAddress
291
+ name %string; #IMPLIED
292
+ >
293
+
294
+ <!--
295
+ Address is the association of a Contact and an Location.
296
+
297
+ isoCountryCode
298
+ The ISO 3166 2-letter country code for the country containing this
299
+ location.
300
+
301
+ addressID
302
+ An id for the address. Needed to support address codes for
303
+ relationships that require id references. An example would be a
304
+ shipping code.
305
+ -->
306
+ <!ELEMENT Address (Name, PostalAddress?, Email?, Phone?, Fax?, URL?)>
307
+ <!ATTLIST Address
308
+ isoCountryCode %isoCountryCode; #IMPLIED
309
+ addressID %string; #IMPLIED
310
+ >
311
+
312
+ <!-- Financial Elements -->
313
+ <!--
314
+ Money is the representation of the object used to pay for items.
315
+
316
+ currency
317
+ specifies the currency in which amount is stated, must conform to ISO
318
+ 4217 currency codes.
319
+
320
+ alternateAmount
321
+ the amount of money in the alternateCurrency. Optional and used to
322
+ support dual-currency requirements such as the Euro.
323
+
324
+ alternateCurrency
325
+ specifies the currency in which the alternateAmount is stated, must
326
+ conform to ISO 4217 currency codes.
327
+ -->
328
+ <!ELEMENT Money (#PCDATA)> <!-- number -->
329
+ <!ATTLIST Money
330
+ currency %isoCurrencyCode; #REQUIRED
331
+ alternateAmount %number; #IMPLIED
332
+ alternateCurrency %isoCurrencyCode; #IMPLIED
333
+ >
334
+
335
+ <!--
336
+ Optional textual child for communicating arbitrary comments or
337
+ description along with the parent.
338
+ Though text may be interspersed with Attachment elements in this content
339
+ model, grouping the Attachment list at the begging or end of the element
340
+ is much preferred. The intended content model would be more like
341
+ (( Attachment+, #PCDATA ) | ( #PCDATA | Attachment* )) if the DTD syntax
342
+ supported it.
343
+
344
+ xml:lang
345
+ The language in which the Comments are written. This attribute
346
+ will be required in a future version of cXML. (Leaving it out is
347
+ deprecated.)
348
+ -->
349
+ <!ELEMENT Comments ( #PCDATA | Attachment )* > <!-- mixed: string and
350
+ opt. Attachment list -->
351
+ <!ATTLIST Comments
352
+ xml:lang %xmlLangCode; #IMPLIED
353
+ >
354
+
355
+ <!--
356
+ Optional child of Comments element referencing a part in a multipart MIME
357
+ transmission.
358
+
359
+ The contained URL must use the scheme "cid:". This is the identifier for
360
+ the referenced attachment within the larger transmission. Must match the
361
+ Content-ID header of one (and only one) part of the MIME transmission
362
+ containing this cXML document. May also be used to retrieve the
363
+ attachment file separately.
364
+ -->
365
+ <!ELEMENT Attachment (URL)>
366
+
367
+ <!---
368
+ Reference to a remote attachment.
369
+
370
+ AttachmentReference is used inside Extrinsic elements that have a
371
+ predefined name of "Attachments".
372
+
373
+ In the context of AttachmentReference, the domain attribute of
374
+ InternalID is currently optional. However, as a way to prevent
375
+ circular request paths, the sending application may use a
376
+ predefined value of "local" to indicate that the attachment
377
+ requested is local to the other application.
378
+
379
+ length
380
+ length of the attachment in bytes.
381
+ -->
382
+ <!ELEMENT AttachmentReference (Name, Description, InternalID)>
383
+ <!ATTLIST AttachmentReference
384
+ length %uint; #IMPLIED
385
+ >
386
+
387
+ <!--
388
+ Price per unit of item.
389
+ -->
390
+ <!ELEMENT UnitPrice (Money)>
391
+
392
+ <!--
393
+ Reference to an earlier document (for example, OrderRequest). In a
394
+ StatusUpdateRequest, this element identifies the purchase order to be
395
+ updated.
396
+
397
+ payloadID
398
+ A unique identifier for the document. Copied directly from the
399
+ cXML element of the original document.
400
+ -->
401
+ <!ELEMENT DocumentReference EMPTY>
402
+ <!ATTLIST DocumentReference
403
+ payloadID %string; #REQUIRED
404
+ >
405
+
406
+ <!ELEMENT InternalID (#PCDATA)> <!-- string -->
407
+ <!ATTLIST InternalID
408
+ domain %string; #IMPLIED
409
+ >
410
+
411
+ <!-- ====
412
+ Common to most variants of the PunchOut transaction set. Defined here
413
+ to be easily shared between multiple DTD files without requiring
414
+ inclusion of Transaction.mod in all of them.
415
+
416
+ All of the PunchOut transaction sets include an originating Request
417
+ (ProviderSetupRequest for example), relatively simple Response
418
+ (PunchOutSetupResponse for example) and final Message
419
+ (ProviderDoneMessage or PunchOutOrderMessage). The Request and
420
+ Response comprise a back-end transaction between two cooperating
421
+ applications that wish to extend an interactive session from one to the
422
+ other. The Request provides the destination application with
423
+ authentication, identification and other setup information. The
424
+ Response provides the originating application with a unique starting
425
+ location for the interactive (HTML) session at the destination system.
426
+
427
+ After receiving a Response of this type, the originating application
428
+ redirects the user's browser to the provided location. (For some
429
+ non-HTML applications, opening a new browser window at that location
430
+ may be more appropriate.) The destination system eventually provides
431
+ an HTML form to the user's browser. This form submits the final
432
+ Message to close the remote session, return that user to the
433
+ originating application and carry any required information back to the
434
+ originating application.
435
+ ==== -->
436
+
437
+ <!--
438
+ OriginatorCookie - Identification of a specific PunchOut session. Used
439
+ in both originating Request and later Message that returns user to
440
+ originating application.
441
+
442
+ Note: The BuyerCookie element used in a 'regular' PunchOut transaction
443
+ (defined in Transaction.mod) is of type ANY. That does not seem
444
+ useful. The string required below better matches the needs for this
445
+ element. Future transactions similar to the PunchOut transaction will
446
+ use this element.
447
+ -->
448
+ <!ELEMENT OriginatorCookie (#PCDATA)>
449
+
450
+ <!--
451
+ BrowserFormPost - Location to which the user's browser must submit the
452
+ final Message. This location (carried in the originating Request) does
453
+ not need to be specific to a PunchOut session since the
454
+ OriginatorCookie is returned in the Message.
455
+ -->
456
+ <!ELEMENT BrowserFormPost (URL)>
457
+
458
+ <!--
459
+ SelectedService - Identification of a service offered by this provider
460
+ and requested in this transaction. Used only in the originating
461
+ Request.
462
+ -->
463
+ <!ELEMENT SelectedService (#PCDATA)>
464
+
465
+ <!--
466
+ StartPage - Location to which the user's browser must be redirected to
467
+ begin the interactive portion of the session at the remote site. The
468
+ destination system returns this information in the Response document.
469
+ This location must be specific to a particular session. It is
470
+ effectively a one time key, providing authenticated entry into the
471
+ destination system.
472
+ -->
473
+ <!ELEMENT StartPage (URL)>
474
+
475
+ <!--
476
+ ReturnData - Any information the originator must know about the
477
+ completed operation at the provider site. The ReturnValue is for
478
+ applications; the Name is for human consumption (direct presentation in
479
+ the User Interface of the application). Where appropriate for the
480
+ possible services, this element may appear in the final Message for a
481
+ PunchOut session.
482
+
483
+ name
484
+ An identifier for the data returned. Provides a meaning for the
485
+ contents of a ReturnData element.
486
+ -->
487
+ <!ELEMENT ReturnData (ReturnValue, Name)>
488
+ <!ATTLIST ReturnData
489
+ name %string; #IMPLIED
490
+ >
491
+
492
+ <!ELEMENT ReturnValue (#PCDATA)>
493
+
494
+ <!--
495
+ Defines a time range. The start and end can be unbounded
496
+ startDate
497
+ The starting date of the time range
498
+ endDate
499
+ The ending date of the range
500
+ -->
501
+ <!ELEMENT TimeRange EMPTY>
502
+ <!ATTLIST TimeRange
503
+ startDate %datetime.tz; #IMPLIED
504
+ endDate %datetime.tz; #IMPLIED
505
+ >
506
+
507
+ <!--
508
+ Defines a period in time.
509
+
510
+ startDate
511
+ The starting date of the period
512
+
513
+ endDate
514
+ The ending date of the period
515
+ -->
516
+ <!ELEMENT Period EMPTY>
517
+ <!ATTLIST Period
518
+ startDate %datetime.tz; #REQUIRED
519
+ endDate %datetime.tz; #REQUIRED
520
+ >
521
+
522
+ <!--
523
+ Must be a UN/CEFACT (Recommendation 20) unit of measure code.
524
+ -->
525
+ <!ELEMENT UnitOfMeasure (#PCDATA)> <!-- nmtoken -->
526
+
527
+ <!--
528
+ Defines a reference to a term which is defined
529
+ in another document.
530
+
531
+ termName
532
+ The name of the ID attribute containing the term.
533
+
534
+ term
535
+ The value of that attribute (i.e., the term itself).
536
+
537
+ -->
538
+ <!ELEMENT TermReference EMPTY>
539
+ <!ATTLIST TermReference
540
+ termName %string; #REQUIRED
541
+ term %string; #REQUIRED
542
+ >
543
+
544
+ <!--
545
+ Defines an optionally named monetary rate at which goods or services are
546
+ charged or paid.
547
+
548
+ Money
549
+ The amount of Money per UnitOfMeasure to be charged or paid.
550
+
551
+ UnitOfMeasure
552
+ Unit of measure.
553
+
554
+ TermReference
555
+ Identifies the definition of this UnitRate
556
+ (found, for example, in contracts, master agreements, and other documents
557
+ which may or may not be cXML documents).
558
+ -->
559
+ <!ELEMENT UnitRate (
560
+ Money,
561
+ UnitOfMeasure,
562
+ TermReference?
563
+ )>
564
+ <!--
565
+ For cXML license agreement information, please see
566
+ http://www.cxml.org/home/license.asp
567
+
568
+ $Id: //ariba/cxml/modules/Version.mod#4 $
569
+ -->
570
+
571
+ <!--
572
+ Another top-level entity used in Transport.mod. Defined here to allow
573
+ easy updates to the release version of cXML without opening
574
+ Transport.mod. This should also provide an easy file to search for
575
+ the current release version string.
576
+ -->
577
+
578
+ <!-- cxml.version
579
+ Current default string for the cXML@version attribute. Corresponds to
580
+ the final directory of the SYSTEM identifier used in all up-to-date
581
+ cXML documents.
582
+ For easy parsing of this file, do not remove whitespace surrounding the
583
+ actual version string.
584
+ -->
585
+ <!ENTITY cxml.version "1.2.014" >
586
+ <!--
587
+ For cXML license agreement information, please see
588
+ http://www.cxml.org/home/license.asp
589
+
590
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Supplier.mod#1 $
591
+ -->
592
+
593
+ <!--
594
+ Supplier of goods and services. Includes a list of SupplierIDs which
595
+ identify the Supplier.
596
+
597
+ corporateURL
598
+ URL to web site about the supplier
599
+
600
+ storeFrontURL
601
+ URL to web site where a user can shop or browse
602
+ -->
603
+ <!ELEMENT Supplier (Name, Comments?, SupplierID+, SupplierLocation*)>
604
+ <!ATTLIST Supplier
605
+ corporateURL %URL; #IMPLIED
606
+ storeFrontURL %URL; #IMPLIED
607
+ >
608
+
609
+ <!--
610
+ One of the locations for a supplier. Supplier location is
611
+ generally a physical location.
612
+ -->
613
+ <!ELEMENT SupplierLocation (Address, OrderMethods)>
614
+
615
+ <!--
616
+ OrderMethods is the list of methods by which one can order
617
+ from a supplier. The contact element is the technical contact
618
+ who should be able to assist with order processing issues.
619
+ The list is to be ordered by supplier preference, the first
620
+ element having the highest degree of preference.
621
+ -->
622
+ <!ELEMENT OrderMethods (OrderMethod+, Contact?)>
623
+
624
+ <!--
625
+ OrderMethod is a method for ordering. It is comprised of a
626
+ target address for the order and the protocol expected by
627
+ the address.
628
+ -->
629
+ <!ELEMENT OrderMethod (OrderTarget, OrderProtocol?)>
630
+
631
+ <!--
632
+ OrderTarget represents an address to which orders can be
633
+ sent.
634
+ -->
635
+ <!ELEMENT OrderTarget (Phone | Email | Fax | URL | OtherOrderTarget)>
636
+
637
+ <!--
638
+ OrderProtocol is the communication method to be used when
639
+ communicating an order to a supplier. An example would be "cXML".
640
+ -->
641
+ <!ELEMENT OrderProtocol (#PCDATA)> <!-- string -->
642
+
643
+ <!--
644
+ OtherOrderTarget represents an address which is not enumerated by
645
+ default in the OrderTarget Element. This may contain address targets
646
+ beyond the ability of this document to describe.
647
+
648
+ name
649
+ Optional name for target.
650
+ -->
651
+ <!ELEMENT OtherOrderTarget ANY>
652
+ <!ATTLIST OtherOrderTarget
653
+ name %string; #IMPLIED
654
+ >
655
+
656
+ <!--
657
+ Definition of a supplier id. A supplier id is a (domain, value)
658
+ pair so that suppliers have the flexibility to define their id's
659
+ according to an arbitrary convention (e.g., (DUNS, 12345),
660
+ (TaxID, 88888888)).
661
+
662
+ domain
663
+ the domain of the id
664
+ -->
665
+
666
+ <!ELEMENT SupplierID (#PCDATA)> <!-- string -->
667
+ <!ATTLIST SupplierID
668
+ domain %string; #REQUIRED
669
+ >
670
+ <!--
671
+ Defines a List of Suppliers that might be associated with a quote Item. Used in
672
+ ItemOut.
673
+ -->
674
+ <!ELEMENT SupplierList (Supplier+)>
675
+ <!--
676
+ For cXML license agreement information, please see
677
+ http://www.cxml.org/home/license.asp
678
+
679
+ $Id: //ariba/cxml/modules/Item.mod#6 $
680
+ -->
681
+
682
+ <!--
683
+ ID with which the item's manufacturer identifies the item.
684
+ -->
685
+ <!ELEMENT ManufacturerPartID (#PCDATA)> <!-- string -->
686
+
687
+ <!--
688
+ Name of the item's manufacturer.
689
+
690
+ xml:lang
691
+ The language in which the ManufacturerName is written. This
692
+ attribute will be required in a future version of cXML. (Leaving it
693
+ out is deprecated.)
694
+ -->
695
+ <!ELEMENT ManufacturerName (#PCDATA)> <!-- string -->
696
+ <!ATTLIST ManufacturerName
697
+ xml:lang %xmlLangCode; #IMPLIED
698
+ >
699
+
700
+ <!--
701
+ Classification is used to group items into similar categories.
702
+
703
+ domain
704
+ "name" of classification, ie., SPSC
705
+ -->
706
+ <!ELEMENT Classification (#PCDATA)> <!-- string -->
707
+ <!ATTLIST Classification
708
+ domain %string; #REQUIRED
709
+ >
710
+
711
+ <!--
712
+ LeadTime specifies, in days, the amount of time required to
713
+ receive the item.
714
+ -->
715
+ <!ELEMENT LeadTime (#PCDATA)> <!-- uint -->
716
+
717
+ <!--
718
+ How the supplier identifies an item they sell.
719
+
720
+ If SupplierPartID does not provide a unique key to identify the item,
721
+ then the supplier should generate a key which identifies the part
722
+ uniquely when combined with the SupplierID and SupplierPartID. The
723
+ key is called SupplierPartAuxiliaryID.
724
+
725
+ An example is where a Supplier would use the same PartID for an
726
+ item but have a different price for units of "EA" versus "BOX".
727
+ In this case, the ItemIDs should be:
728
+ <ItemID>
729
+ <SupplierPartID>pn12345</SupplierPartID>
730
+ <SupplierPartAuxiliaryID>EA</SupplierPartAuxiliaryID>
731
+ </ItemID>
732
+ <ItemID>
733
+ <SupplierPartID>pn12345</SupplierPartID>
734
+ <SupplierPartAuxiliaryID>
735
+ <foo>well formed XML here</foo>
736
+ </SupplierPartAuxiliaryID>
737
+ </ItemID>
738
+ In this case, the "foo" element must be defined in an internal subset
739
+ sent with the cXML document. Otherwise, parsers will not be able to
740
+ validate that document.
741
+
742
+ In a preferred approach, the sending application may escape the contained
743
+ XML using CDATA sections. This would appear as:
744
+ ...
745
+ <SupplierPartAuxiliaryID>
746
+ <![CDATA[<foo>well formed XML here</foo>]]>
747
+ </SupplierPartAuxiliaryID>
748
+ ...
749
+
750
+ Finally, the angle brackets could be escaped using XML character
751
+ entities. This might be a bit harder for humans to read. For example:
752
+ ...
753
+ <SupplierPartAuxiliaryID>
754
+ &lt;foo&gt;well formed XML here&lt;/foo&gt;
755
+ </SupplierPartAuxiliaryID>
756
+ ...
757
+ -->
758
+ <!ELEMENT SupplierPartID (#PCDATA)> <!-- string -->
759
+
760
+ <!ELEMENT SupplierPartAuxiliaryID ANY>
761
+
762
+ <!--
763
+ A unique identification of an item. SupplierID is not required since
764
+ ItemIDs never travel alone.
765
+ -->
766
+ <!ELEMENT ItemID (SupplierPartID, SupplierPartAuxiliaryID?)>
767
+
768
+ <!--
769
+ ItemDetail contains detailed information about an item. All the data that
770
+ a user would want to see about an item instead of the bare essentials
771
+ that are represented in the ItemID.
772
+
773
+ LeadTime
774
+ time in days to receive the item
775
+ -->
776
+ <!ELEMENT ItemDetail (UnitPrice, Description+, UnitOfMeasure,
777
+ Classification+, ManufacturerPartID?,
778
+ ManufacturerName?, URL?, LeadTime?, Extrinsic*)>
779
+ <!--
780
+ For cXML license agreement information, please see
781
+ http://www.cxml.org/home/license.asp
782
+
783
+ $Id$
784
+ -->
785
+
786
+ <!--
787
+ This element captures travel information. It could be one of four
788
+ types: air, car rental, hotel or rail.
789
+
790
+ AirDetail
791
+ Air travel detail.
792
+
793
+ CarRentalDetail
794
+ Car rental detail.
795
+
796
+ HotelDetail
797
+ Hotel detail.
798
+
799
+ RailDetail
800
+ Rail detail.
801
+
802
+ PolicyViolation
803
+ List of policy violations (if any) associated with this
804
+ travel line item.
805
+
806
+ Comments
807
+ Top level comments for this travel line item (if any). This
808
+ is not the policy violation comment but a top level comment
809
+ given by the user for this travel line item while in Travel
810
+ Booking Provider's web site.
811
+
812
+ TermsAndConditions
813
+ List of Terms and conditions (if any) associated with this
814
+ travel line item.
815
+
816
+ confirmationNumber
817
+ A unique confirmation number that is useful to both the
818
+ traveler and the vendor who is providing the service for this
819
+ travel line item. For example, hotel reservation number or
820
+ e-ticket number from the airline.
821
+
822
+ pnrLocator
823
+ Passenger Name Record (PNR) Locator that is useful to the
824
+ Travel Booking Provider.
825
+
826
+ quoteExpirationTime
827
+ Date and time that this quote will expire. This value is
828
+ normally supplied in the PunchoutOrderMessage. If no value is
829
+ supplied, it is assumed that there is no expiration time or
830
+ date for this quote.
831
+ -->
832
+ <!ELEMENT TravelDetail ((AirDetail | CarRentalDetail | HotelDetail | RailDetail),
833
+ PolicyViolation*,
834
+ Comments?,
835
+ TermsAndConditions?)>
836
+ <!ATTLIST TravelDetail
837
+ confirmationNumber %string; #REQUIRED
838
+ pnrLocator %string; #IMPLIED
839
+ quoteExpirationTime %datetime.tz; #IMPLIED
840
+ >
841
+
842
+ <!-- Air -->
843
+
844
+ <!--
845
+ Air detail information for the air trip.
846
+
847
+ TripType
848
+ Round Trip, One Way, or Multi Leg
849
+
850
+ AirLeg
851
+ Different air leg that makes up this air detail.
852
+ For example a round trip from SFO -> TPE with no stops
853
+ will have two air legs. One air leg from SFO -> TPE
854
+ and another from TPE -> SFO.
855
+
856
+ AvailablePrice
857
+ Other available airfare prices that the user did not pick.
858
+
859
+ Penalty
860
+ Penalty amount (if any). This is normally due to changes or
861
+ cancelation of the ticket.
862
+ -->
863
+ <!ELEMENT AirDetail (TripType,
864
+ AirLeg+,
865
+ AvailablePrice*,
866
+ Penalty?)>
867
+
868
+ <!--
869
+ Define a single leg in the air travel.
870
+
871
+ Vendor
872
+ Airline vendor name and information.
873
+
874
+ AirLegOrigin
875
+ Originating airport for this air leg.
876
+
877
+ AirLegDestination
878
+ Destination airport for this air leg.
879
+
880
+ BookingClassCode
881
+ Airline booking class code. This is the de-facto
882
+ airline standard. For example,
883
+
884
+ F, FN, P, R, A - first class
885
+ C, CN, D, J, I, Z - business class.
886
+ Y, YN, B, BN, M, H, V, VN, O, Q, QN, S,
887
+ K, KN, L, U, T, W - coach class.
888
+
889
+ Rate
890
+ Rate for this particular air leg. If specify, the total
891
+ of all the rate for the different air legs must add up
892
+ to the total the line item level.
893
+
894
+ Meal
895
+ Meal information for this air leg (if any)
896
+
897
+ travelSegment
898
+ Textual information to identify this travel segment.
899
+ This information is specific to the Travel Booking Provider.
900
+
901
+ departureTime
902
+ Departure date and time for this air leg
903
+
904
+ arrivalTime
905
+ Arrival date and time for this air leg
906
+
907
+ flightNumber
908
+ Flight number for this air leg
909
+
910
+ seatNumber
911
+ Seat number for this air leg
912
+
913
+ seatType
914
+ Seat type
915
+ aisle - Aisle
916
+ window - Window
917
+ middle - Middle
918
+
919
+ upgrade
920
+ Is this ticket an upgrade?
921
+
922
+ stops
923
+ The number of stop for this air leg.
924
+ 0 if it is a direct flight. If no information is supplied
925
+ it is defaulted to 0.
926
+
927
+ equipment
928
+ The plane equipment information for this air leg
929
+ -->
930
+ <!ELEMENT AirLeg (Vendor,
931
+ AirLegOrigin,
932
+ AirLegDestination,
933
+ BookingClassCode?,
934
+ Rate?,
935
+ Meal*)>
936
+ <!ATTLIST AirLeg
937
+ travelSegment %string; #REQUIRED
938
+ departureTime %datetime.tz; #REQUIRED
939
+ arrivalTime %datetime.tz; #REQUIRED
940
+ flightNumber %string; #REQUIRED
941
+ seatNumber %string; #IMPLIED
942
+ seatType (window | aisle | middle) #IMPLIED
943
+ upgrade (yes) #IMPLIED
944
+ stops %r8; #IMPLIED
945
+ equipment %string; #IMPLIED
946
+ >
947
+
948
+ <!--
949
+ Originating airport for this Air Leg.
950
+
951
+ Airport
952
+ Originating airport
953
+ -->
954
+ <!ELEMENT AirLegOrigin (Airport)>
955
+
956
+ <!--
957
+ Destination airport for this Air Leg.
958
+
959
+ Airport
960
+ Destination airport
961
+ -->
962
+ <!ELEMENT AirLegDestination (Airport)>
963
+
964
+ <!--
965
+ Airport information that includes the iso airport code
966
+
967
+ Address
968
+ Physical adress of the airport.
969
+
970
+ airportCode
971
+ The 3 letter IATA airport code.
972
+ -->
973
+ <!ELEMENT Airport (Address?)>
974
+ <!ATTLIST Airport airportCode %string; #REQUIRED>
975
+
976
+ <!---
977
+ Meal information used by air, hotel and rail.
978
+
979
+ BookingClassCode
980
+ Code for the meal. For example, airlines use
981
+ B - Breakfast
982
+ C - Complimentary liquor
983
+ D - Dinner
984
+ F - Food for purchase
985
+ G - Food and beverage for purchase
986
+ H - Hot meal
987
+ K - Continental breakfast
988
+ L - Lunch
989
+ M - Meal
990
+ N - No meal service
991
+ O - Cold meal
992
+ P - Liquor for purchase
993
+ R - Refreshments
994
+ S - Snack or brunch
995
+ V - Refreshments for purchase
996
+
997
+ Description
998
+ Textual description of the meal, including any special needs
999
+ such as vegetarian or dairy-free.
1000
+ -->
1001
+ <!ELEMENT Meal (BookingClassCode?, Description?)>
1002
+
1003
+ <!-- Car Rental -->
1004
+
1005
+ <!--
1006
+ Car rental information.
1007
+
1008
+ Vendor
1009
+ Car rental vendor information.
1010
+
1011
+ CarRentalPickup
1012
+ Pickup location for the rental car.
1013
+
1014
+ CarRentalDropoff
1015
+ Drop off location for the rental car.
1016
+
1017
+ BookingClassCode
1018
+ 4 letter code for car.
1019
+
1020
+ 1st Letter - M (Mini), E (Economy), C (Compact), S (Standard),
1021
+ I (Intermediate), F (Full size), P (Premium), L (Luxury)
1022
+ V (MiniVan), X (Special)
1023
+ 2nd Letter - B (2 door), C (2/4 door), D (4 door), T (Convertible),
1024
+ F (Four wheel drive), V (Van), W (Wagon), S (Sport)
1025
+ X (Special)
1026
+ 3rd Letter - A (Automatic), M (Manual)
1027
+ 4th Letter - R (A/c), N (No A/C)
1028
+
1029
+ CarRentalFee
1030
+ Mutliple car rental fee can be specified to capture the
1031
+ break down of different fees. The total of these fees must
1032
+ add up to the total at the line item level.
1033
+
1034
+ LimitedMileage
1035
+ Mileage limit information
1036
+
1037
+ AvailablePrice
1038
+ Other available prices for car rental that the user did not pick.
1039
+
1040
+ travelSegment
1041
+ Textual information to identify this travel segment.
1042
+ This information is specific to the Travel Booking Provider.
1043
+
1044
+ pickupTime
1045
+ The intended pickup date and time
1046
+
1047
+ dropoffTime
1048
+ The intended dropoff date and time
1049
+ -->
1050
+ <!ELEMENT CarRentalDetail (Vendor,
1051
+ CarRentalPickup,
1052
+ CarRentalDropoff,
1053
+ BookingClassCode?,
1054
+ CarRentalFee+,
1055
+ LimitedMileage?,
1056
+ AvailablePrice*)>
1057
+ <!ATTLIST CarRentalDetail
1058
+ travelSegment %string; #REQUIRED
1059
+ pickupTime %datetime.tz; #REQUIRED
1060
+ dropoffTime %datetime.tz; #REQUIRED
1061
+ >
1062
+
1063
+ <!--
1064
+ Physical location where the rental car should be picked up. This
1065
+ is either an Airport or off airport car rental location.
1066
+
1067
+ Airport
1068
+ An airport location.
1069
+
1070
+ Address
1071
+ Physical address of the car rental location
1072
+ -->
1073
+ <!ELEMENT CarRentalPickup (Airport | Address)>
1074
+
1075
+ <!--
1076
+ Physical location where the rental car should be dropped off.
1077
+ This is either an Airport or off-airport car rental location.
1078
+
1079
+ Airport
1080
+ An airport location.
1081
+
1082
+ Address
1083
+ Physical address of the car rental location
1084
+ -->
1085
+ <!ELEMENT CarRentalDropoff (Airport | Address)>
1086
+
1087
+ <!--
1088
+ This specifies the quantity and the unit of measure of the mileage
1089
+ limit.
1090
+
1091
+ UnitOfMeasure
1092
+ Unit of measure either miles or kilometers.
1093
+
1094
+ quantity
1095
+ The mileage limit amount.
1096
+ -->
1097
+ <!ELEMENT LimitedMileage (UnitOfMeasure)>
1098
+ <!ATTLIST LimitedMileage
1099
+ quantity %r8; #REQUIRED
1100
+ >
1101
+
1102
+ <!--
1103
+ Car rental fee information. CarRentalFee captures the actual
1104
+ charges and fee that applies to this rental. Conditional charges
1105
+ such as extra mileages that are over the mileage limit should not
1106
+ be specified here but rather in the TermsAndConditions text.
1107
+
1108
+ Total
1109
+ Total amount for this car rental fee. All the total for the rates
1110
+ must add up to this amount.
1111
+
1112
+ Rate
1113
+ The individual broken-down fee information.
1114
+
1115
+ type
1116
+ Type of rate
1117
+ baseRate - Base rental rate
1118
+ additionalDriver - Additional driver fee
1119
+ airportAccessFee - Airport Access fee
1120
+ dropOffCharge - Drop off charge
1121
+ vehicleLicensingFee - Vehicle lincensing fee
1122
+ touristTax - Tourist tax
1123
+ prepaidGasoline - Prepaid gasoline charge
1124
+ navigationSystem - Navigation system
1125
+ childSeat - Child seat charge
1126
+ luggageRack - Luggage rack charge
1127
+ collisionDamageInsurance - Collision damage insurance
1128
+ liabilityInsurance - Liability insurance
1129
+ mobilePhone - Mobile phone base charge
1130
+ other - Other charges.
1131
+ -->
1132
+ <!ELEMENT CarRentalFee (Total, Rate*)>
1133
+ <!ATTLIST CarRentalFee
1134
+ type (baseRate | additionalDriver | airportAccessFee | dropOffCharge |
1135
+ vehicleLicensingFee | touristTax | prepaidGasoline |
1136
+ navigationSystem | childSeat | luggageRack | collisionDamageInsurance |
1137
+ liabilityInsurance | mobilePhone | other) "baseRate"
1138
+ >
1139
+
1140
+ <!-- Hotel -->
1141
+
1142
+ <!--
1143
+ Hotel detail information.
1144
+
1145
+ Vendor
1146
+ Hotel vendor information.
1147
+
1148
+ Address
1149
+ Physical address of the hotel. This is might be different
1150
+ from the address specified in the Vendor field as the vendor
1151
+ address might be the head quarter address.
1152
+
1153
+ RoomType
1154
+ The type of room reserved.
1155
+
1156
+ BookingClassCode
1157
+ Hotel booking class code.
1158
+
1159
+ Meal
1160
+ Any complementary meals that are included with the room. For
1161
+ example, complementary continental breakfast.
1162
+
1163
+ Rate
1164
+ Hotel rate information. Multiple rates can be specified. For
1165
+ example, the night rate, valet parking rate, and other rates.
1166
+
1167
+ AvailablePrice
1168
+ Other available prices that user did not pick. Available
1169
+ prices can be from the same vendor or different vendor.
1170
+
1171
+ travelSegment
1172
+ Textual information to identify this travel segment. This
1173
+ information is specific to the Travel Booking Provider.
1174
+
1175
+ arrivalTime
1176
+ Date and time of arrival at the hotel. This is used as an
1177
+ advisory to the hotel vendor for the arrival time.
1178
+
1179
+ departureTime
1180
+ Date and time of departure from the hotel. This is used as an
1181
+ advisory to the hotel vendor for the departure time.
1182
+
1183
+ checkinTime
1184
+ The official checkin time. For example, most hotel checkin
1185
+ time is 3:00 PM.
1186
+
1187
+ checkoutTime
1188
+ The official checkout time. For example, most hotel checkout
1189
+ time is 12:00 PM (noon).
1190
+
1191
+ earlyCheckinAllowed
1192
+ Does the hotel allow early checkin?
1193
+
1194
+ lateCheckoutAllowed
1195
+ Does the hotel allow late checkout?
1196
+ -->
1197
+ <!ELEMENT HotelDetail (Vendor,
1198
+ Address,
1199
+ RoomType,
1200
+ BookingClassCode?,
1201
+ Meal*,
1202
+ Rate*,
1203
+ AvailablePrice*)>
1204
+ <!ATTLIST HotelDetail
1205
+ travelSegment %string; #REQUIRED
1206
+ arrivalTime %datetime.tz; #REQUIRED
1207
+ departureTime %datetime.tz; #REQUIRED
1208
+ checkinTime %time.tz; #REQUIRED
1209
+ checkoutTime %time.tz; #REQUIRED
1210
+ earlyCheckinAllowed (yes) #IMPLIED
1211
+ lateCheckoutAllowed (yes) #IMPLIED
1212
+ >
1213
+
1214
+ <!--
1215
+ Information about a hotel room.
1216
+
1217
+ Description
1218
+ Textual description of the hotel room.
1219
+
1220
+ Amenities
1221
+ List of amenities for this hotel room.
1222
+
1223
+ smoking
1224
+ Is the room a smoking or non-smoking room
1225
+
1226
+ numberOfBed
1227
+ The number of beds in this room
1228
+
1229
+ bedType
1230
+ The bed type in this room.
1231
+ -->
1232
+ <!ELEMENT RoomType (Description?, Amenities*)>
1233
+ <!ATTLIST RoomType
1234
+ smoking (yes | no) #REQUIRED
1235
+ numberOfBed %r8; #IMPLIED
1236
+ bedType (king | queen | full | double | single | other) #IMPLIED
1237
+ >
1238
+
1239
+ <!--
1240
+ Textual description of the amenities for the hotel room.
1241
+
1242
+ Description
1243
+ Text description of this amenities. For example,
1244
+ DSL connection, two telephone lines, and other information
1245
+ about a hotel room.
1246
+ -->
1247
+ <!ELEMENT Amenities (Description)>
1248
+
1249
+ <!-- Rail -->
1250
+
1251
+ <!--
1252
+ Rail detail information. A rail detail can have multiple legs.
1253
+
1254
+ TripType
1255
+ Trip type for this rail.
1256
+
1257
+ Rail leg
1258
+ The different rail legs that make up this rail detail.
1259
+
1260
+ AvailablePrice
1261
+ Other available prices that the user did not pick for for this
1262
+ rail trip.
1263
+
1264
+ Penalty
1265
+ Penalty (if any) associated with this rail trip.
1266
+ -->
1267
+ <!ELEMENT RailDetail (TripType,
1268
+ RailLeg+,
1269
+ AvailablePrice*,
1270
+ Penalty?)>
1271
+
1272
+ <!--
1273
+ Rail leg is used to express information regarding a single leg for
1274
+ a rail travel.
1275
+
1276
+ Vendor
1277
+ Rail vendor information.
1278
+
1279
+ RailLegOrigin
1280
+ Rail originating location.
1281
+
1282
+ RailLegDestination
1283
+ Rail Destination location.
1284
+
1285
+ BookingClassCode
1286
+ Rail booking class code.
1287
+
1288
+ Rate
1289
+ Rate information (if any) for this rail leg. If specified,
1290
+ all the rates in all rail legs must add up to the total at the
1291
+ travel line item level.
1292
+
1293
+ Meal
1294
+ Meal served for this leg (if any).
1295
+
1296
+ travelSegment
1297
+ Textual information to identify this travel segment. This
1298
+ information is specific to the Travel Booking Provider.
1299
+
1300
+ departureTime
1301
+ Date and time of departure at the originating location.
1302
+
1303
+ arrivalTime
1304
+ Date and time of arrival at the destination location.
1305
+
1306
+ trainNumber
1307
+ Train number for this rail leg.
1308
+
1309
+ seatNumber
1310
+ Seat number.
1311
+
1312
+ carType
1313
+ Type of the rail car.
1314
+ -->
1315
+ <!ELEMENT RailLeg (Vendor,
1316
+ RailLegOrigin,
1317
+ RailLegDestination,
1318
+ BookingClassCode?,
1319
+ Rate?,
1320
+ Meal*)>
1321
+ <!ATTLIST RailLeg
1322
+ travelSegment %string; #REQUIRED
1323
+ departureTime %datetime.tz; #REQUIRED
1324
+ arrivalTime %datetime.tz; #REQUIRED
1325
+ trainNumber %string; #REQUIRED
1326
+ seatNumber %string; #IMPLIED
1327
+ carType (sleeper | seat) #IMPLIED
1328
+ >
1329
+
1330
+ <!--
1331
+ The origin of a particular rail leg. This can be an airport or a
1332
+ physical address of a rail station.
1333
+
1334
+ Airport
1335
+ An airport location
1336
+
1337
+ Address
1338
+ A physical address of a rail station
1339
+ -->
1340
+ <!ELEMENT RailLegOrigin (Airport | Address)>
1341
+
1342
+ <!--
1343
+ The destination of a particular rail leg. This can be an airport
1344
+ or a physical address of a rail station.
1345
+
1346
+ Airport
1347
+ An airport location
1348
+
1349
+ Address
1350
+ A physical address of a rail station
1351
+ -->
1352
+ <!ELEMENT RailLegDestination (Airport | Address)>
1353
+
1354
+ <!-- Travel/Expense common definitions -->
1355
+
1356
+ <!--
1357
+ The type of the trip. This is used by Air and Rail to indicate
1358
+ round trip, one way or multi-leg trip.
1359
+
1360
+ type
1361
+ Type of the trip
1362
+ round - a round trip
1363
+ oneWay - a one way trip
1364
+ multiLeg - a multi leg or open jaw trip
1365
+ -->
1366
+ <!ELEMENT TripType EMPTY>
1367
+ <!ATTLIST TripType
1368
+ type (round | oneWay | multiLeg) #REQUIRED
1369
+ >
1370
+
1371
+ <!--
1372
+ Information about a vendor that is providing this service.
1373
+
1374
+ Address
1375
+ The physical address of the vendor. This address normally is
1376
+ the business or head quarter address of the vendor.
1377
+
1378
+ SupplierID
1379
+ Supplier id for this vendor. This is just a (domain, value)
1380
+ pair so that Travel Booking Providers have the flexibility to
1381
+ define their id's according to an arbitrary convention (e.g.,
1382
+ (DUNS, 12345), (TaxID, 88888888)).
1383
+
1384
+ Note that multiple supplier id can be specified. This is so
1385
+ that Travel Booking Provider can have a single implementation
1386
+ that works with different Buyer implementations that use
1387
+ different supplier id domain.
1388
+
1389
+ preferred
1390
+ Is this vendor a preferred vendor?
1391
+ -->
1392
+ <!ELEMENT Vendor (Address, SupplierID*)>
1393
+ <!ATTLIST Vendor
1394
+ preferred (yes | no) #REQUIRED
1395
+ >
1396
+
1397
+ <!--
1398
+ Textual terms and conditions associated with an air fare, car
1399
+ rental, hotel, or rail. For example, a car rental terms and
1400
+ conditions normally include boundary limit, additional mileage
1401
+ charges, gasoline charge and other restriction information.
1402
+
1403
+ Multiple terms and conditions can be attached to a single travel
1404
+ line item.
1405
+
1406
+ Description
1407
+ Textual terms and conditions.
1408
+ -->
1409
+ <!ELEMENT TermsAndConditions (Description+)>
1410
+
1411
+ <!--
1412
+ Policy violation (if any) that results from the user picking this
1413
+ particular travel. Policy violations are associated with an
1414
+ individual line item of travel and not associated at the header
1415
+ level. This allows for clear identification of the violation with
1416
+ the individual line item.
1417
+
1418
+ Description
1419
+ Textual description of this violation.
1420
+
1421
+ PolicyViolationJustification
1422
+ Justification for this violation given by user normally picked
1423
+ from a standard list of justifications at the Travel Booking
1424
+ Provider web site.
1425
+
1426
+ Comments
1427
+ Additional comments to further clarify the justification given
1428
+ by user.
1429
+
1430
+ level
1431
+ Violation level.
1432
+ warning - a non serious violation.
1433
+ violation - a serious violation of company policy.
1434
+ -->
1435
+ <!ELEMENT PolicyViolation (Description,
1436
+ PolicyViolationJustification,
1437
+ Comments?)>
1438
+ <!ATTLIST PolicyViolation
1439
+ level (warning | violation) #REQUIRED
1440
+ >
1441
+
1442
+ <!--
1443
+ Justification given by the user why they violate the company
1444
+ travel policy. This justification value is normally picked from a
1445
+ pick list at the Travel Booking Provider web site.
1446
+
1447
+ Description
1448
+ The justification of the violation picked from a standard list
1449
+ at the Travel Booking Provider web site.
1450
+ -->
1451
+ <!ELEMENT PolicyViolationJustification (Description)>
1452
+
1453
+ <!--
1454
+ Penalty (if any) for this travel segment
1455
+
1456
+ Money
1457
+ The penalty amount
1458
+
1459
+ Description
1460
+ Textual description of the cause of the penalty. For example,
1461
+ change fee associated with air ticket.
1462
+ -->
1463
+ <!ELEMENT Penalty (Money, Description)>
1464
+
1465
+ <!--
1466
+ Other avaible price. AvailablePrice is used to express what other
1467
+ prices are available that the traveler did not pick.
1468
+ AvailablePrice is can be used to capture the lowest price, the
1469
+ highest price, the lowest compliant price, and the hight compliant
1470
+ price.
1471
+
1472
+ Money
1473
+ The amount of the other available price.
1474
+
1475
+ Description
1476
+ Textual description of the available price. It explain
1477
+ how this price was derived at. For example, a non direct flight
1478
+ exists with the flight number can be put here.
1479
+
1480
+ Type
1481
+ Type of available price. Currently we capture four
1482
+ different type.
1483
+ lowest - The lowest price possible regardless of the
1484
+ traveling policies
1485
+ lowestCompliant - The lowest price that still complies with
1486
+ the travel policies
1487
+ highestCompliant - The highest price that still complies with
1488
+ the travel policies
1489
+ highest - The highest price possible regardless of the travel
1490
+ policies
1491
+ other - Other, specify in the description
1492
+ -->
1493
+ <!ELEMENT AvailablePrice (Money, Description?)>
1494
+ <!ATTLIST AvailablePrice
1495
+ type (lowest | lowestCompliant | highestCompliant | highest | other) #REQUIRED
1496
+ >
1497
+
1498
+ <!--
1499
+ The rate information used to define the rate for an air leg, a car
1500
+ rental fee, a hotel, or a rail leg.
1501
+
1502
+ Total
1503
+ The total amount for the rate. The total amount
1504
+ must equal to quantity x UnitRate.
1505
+
1506
+ UnitRate
1507
+ The single unit rate.
1508
+
1509
+ Description
1510
+ Textual description for the rate. For example, hotel
1511
+ nightly rate.
1512
+
1513
+ Quantity
1514
+ The quantity. For example, a 4 nights stay at a hotel will
1515
+ have quantity set to 4 with UnitofMesure in UnitRate set to
1516
+ Day.
1517
+ -->
1518
+ <!ELEMENT Rate (Total, UnitRate, Description?)>
1519
+ <!ATTLIST Rate
1520
+ quantity %r8; #REQUIRED
1521
+ >
1522
+
1523
+ <!--
1524
+ Booking class code used by airfare, car rental, hotel, and rail to
1525
+ indicate the class.
1526
+
1527
+ Description
1528
+ Textual description of the code
1529
+
1530
+ code
1531
+ code
1532
+ -->
1533
+ <!ELEMENT BookingClassCode (Description?)>
1534
+ <!ATTLIST BookingClassCode
1535
+ domain %string; #REQUIRED
1536
+ code %string; #REQUIRED
1537
+ >
1538
+ <!--
1539
+ For cXML license agreement information, please see
1540
+ http://www.cxml.org/home/license.asp
1541
+
1542
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Transaction.mod#3 $
1543
+ -->
1544
+
1545
+ <!--
1546
+ For better definitions of these Elements/Entities, refer to the cXML
1547
+ Transaction Specification documents.
1548
+ -->
1549
+
1550
+ <!-- Basic transactional elements used throughout -->
1551
+
1552
+ <!--
1553
+ The total for something.
1554
+ -->
1555
+ <!ELEMENT Total (Money)>
1556
+
1557
+ <!--
1558
+ The bill to for an item.
1559
+ -->
1560
+ <!ELEMENT BillTo (Address)>
1561
+
1562
+ <!--
1563
+ The ship to for a item.
1564
+ -->
1565
+ <!ELEMENT ShipTo (Address)>
1566
+
1567
+ <!--
1568
+ Definition of a cXML Shipping item. Represents a shipping cost in the
1569
+ shopping basket (PunchOutOrderMessage) or an order to the supplier
1570
+ (OrderRequest). There could be one of these for the entire order, or one
1571
+ per lineitem.
1572
+
1573
+ trackingDomain
1574
+ represents the logistics supplier, I.E., "FedEx", "UPS", etc.
1575
+
1576
+ trackingId
1577
+ an optional element value that represents the logistics supplier
1578
+ tracking number
1579
+
1580
+ tracking
1581
+ Deprecated - Do Not Use
1582
+ -->
1583
+ <!ELEMENT Shipping (Money, Description)>
1584
+ <!ATTLIST Shipping
1585
+ trackingDomain %string; #IMPLIED
1586
+ trackingId %string; #IMPLIED
1587
+ tracking %string; #IMPLIED
1588
+ >
1589
+
1590
+ <!--
1591
+ Defines discount applied.
1592
+
1593
+ DiscountAmount
1594
+ The discount expressed as a flat amount with currency.
1595
+
1596
+ DiscountPercent
1597
+ The discount rate expressed as a percentage.
1598
+ -->
1599
+ <!ELEMENT Discount (DiscountPercent | DiscountAmount)>
1600
+
1601
+ <!--
1602
+ Defines the discount rate
1603
+
1604
+ percent
1605
+ The discount rate expressed as a percentage. A negative discount percent
1606
+ represents a penalty.
1607
+ -->
1608
+ <!ELEMENT DiscountPercent EMPTY>
1609
+ <!ATTLIST DiscountPercent
1610
+ percent %r8; #REQUIRED
1611
+ >
1612
+
1613
+ <!--
1614
+ Defines a payment term in an invoice or order. This deprecates the
1615
+ InvoiceDetailPaymentTerm previously defined. Payment term can be the
1616
+ net term (without discount) or discount term (with discount).
1617
+
1618
+ payInNumberOfDays
1619
+ The number of days after invoice effective date for the invoice to be paid.
1620
+
1621
+ Discount
1622
+ The percentage or amount of the discount term. This element should be omitted
1623
+ if the payment term is a net term.
1624
+ -->
1625
+ <!ELEMENT PaymentTerm (Discount?)>
1626
+ <!ATTLIST PaymentTerm
1627
+ payInNumberOfDays %uint; #REQUIRED
1628
+ >
1629
+
1630
+ <!--
1631
+ The list of valid payment types.
1632
+ -->
1633
+ <!ENTITY % cxml.payment "PCard">
1634
+ <!ELEMENT Payment (%cxml.payment;)>
1635
+
1636
+ <!--
1637
+ Defines an accounting segment. Segment is an older, deprecated way to
1638
+ transport this information.
1639
+
1640
+ type
1641
+ The accounting type of this segment.
1642
+
1643
+ id
1644
+ The unique key of this Segment against the type.
1645
+
1646
+ description
1647
+ Textual description of the Segment. For human readability.
1648
+ -->
1649
+ <!ELEMENT Segment EMPTY>
1650
+ <!ATTLIST Segment
1651
+ type %string; #REQUIRED
1652
+ id %string; #REQUIRED
1653
+ description %string; #REQUIRED
1654
+ >
1655
+
1656
+ <!--
1657
+ Defines an accounting segment. AccountingSegment is the newer, better
1658
+ way to transport this information. Name corresponds to the type
1659
+ attribute of Segment; Description corresponds to description. Both add
1660
+ required locale attributes to the strings.
1661
+
1662
+ id
1663
+ The unique key of this Segment against the type.
1664
+ -->
1665
+ <!ELEMENT AccountingSegment ( Name, Description )>
1666
+ <!ATTLIST AccountingSegment
1667
+ id %string; #REQUIRED
1668
+ >
1669
+
1670
+ <!--
1671
+ An accounting object. Use of the Segment element here is deprecated.
1672
+
1673
+ name
1674
+ The name of the object containing the specified accounting segments.
1675
+ -->
1676
+ <!ENTITY % cxml.accounting "( Segment+ | AccountingSegment+ )">
1677
+ <!ELEMENT Accounting (%cxml.accounting;)>
1678
+ <!ATTLIST Accounting
1679
+ name %string; #REQUIRED
1680
+ >
1681
+
1682
+ <!--
1683
+ A charge against an Accounting element.
1684
+ -->
1685
+ <!ELEMENT Charge (Money)>
1686
+
1687
+ <!--
1688
+ The combination of a Charge against an Accounting Element. A distribution
1689
+ represents the breakdown of one overall amount into sub-amounts.
1690
+ -->
1691
+ <!ELEMENT Distribution (Accounting, Charge)>
1692
+
1693
+ <!ELEMENT TaxAmount (Money)>
1694
+
1695
+ <!ELEMENT TaxableAmount (Money)>
1696
+
1697
+ <!--
1698
+ One language-specific string for the location of tax,
1699
+ e.g. London, Canada, California, etc.
1700
+
1701
+ xml:lang
1702
+ The language or locale in which the location of tax is written.
1703
+ -->
1704
+ <!ELEMENT TaxLocation (#PCDATA)> <!-- string -->
1705
+ <!ATTLIST TaxLocation
1706
+ xml:lang %xmlLangCode; #REQUIRED
1707
+ >
1708
+
1709
+ <!--
1710
+
1711
+ TriangularTransactionLawReference indicates the relevant law as
1712
+ titled for the local jurisdiction in the scenario of a triangular
1713
+ transaction. ex: Triangulation, article 28c,E paragraph 3 of the
1714
+ 6th EU VAT Directive
1715
+
1716
+ xml:lang
1717
+ the language in which the law reference is written.
1718
+ -->
1719
+ <!ELEMENT TriangularTransactionLawReference (#PCDATA)>
1720
+ <!ATTLIST TriangularTransactionLawReference
1721
+ xml:lang %xmlLangCode; #REQUIRED
1722
+ >
1723
+
1724
+ <!--
1725
+ Defines details of one type of tax.
1726
+
1727
+ TaxableAmount
1728
+ The taxable amount.
1729
+
1730
+ TaxAmount
1731
+ The tax amount.
1732
+
1733
+ TaxLocation
1734
+ The tax location.
1735
+
1736
+ Description
1737
+ The textual description of the current type of tax.
1738
+
1739
+ TriangularTransactionLawReference
1740
+ The law reference for transactions where isTriangularTransaction is True
1741
+
1742
+ purpose
1743
+ The purpose of the tax, e.g., tax (tax), custom duty, shippingTax,
1744
+ specialHandlingTax, etc.
1745
+
1746
+ category
1747
+ The tax category, Sales tax (sales), Use tax (usage), VAT (vat),
1748
+ GST (gst) are defined categories. Other values are permitted.
1749
+
1750
+ percentageRate
1751
+ The tax rate in number of percentage.
1752
+
1753
+ isVatRecoverable
1754
+ True if the VAT is recoverable. Default is false.
1755
+
1756
+ taxPointDate
1757
+ refers to the date on which VAT becomes due.
1758
+
1759
+ paymentDate
1760
+ indicate the date when payment must be made.
1761
+
1762
+ isTriangularTransaction
1763
+ True if the transaction is triangular. Default is false.
1764
+ -->
1765
+ <!ELEMENT TaxDetail (TaxableAmount?, TaxAmount, TaxLocation?, Description?,
1766
+ TriangularTransactionLawReference?)>
1767
+ <!ATTLIST TaxDetail
1768
+ purpose %string; #IMPLIED
1769
+ category %string; #REQUIRED
1770
+ percentageRate %r8; #IMPLIED
1771
+ isVatRecoverable (yes) #IMPLIED
1772
+ taxPointDate %datetime.tz; #IMPLIED
1773
+ paymentDate %datetime.tz; #IMPLIED
1774
+ isTriangularTransaction (yes) #IMPLIED
1775
+ >
1776
+
1777
+ <!--
1778
+ Definition of a cXML Tax item. This represents what a Tax element should
1779
+ be in the classic notion of a line on a PO or Invoice. It can also
1780
+ represent a per-lineitem tax element depending on where it appears
1781
+ (inside of a item ELEMENT or inside of a something like a supplierOrder
1782
+ ELEMENT).
1783
+
1784
+ Represents a tax item in the shopping basket. There could be one of these
1785
+ for the entire order, or one per lineitem.
1786
+
1787
+ The total amount of taxes for the line item or order should be reflected
1788
+ in the Money element. The breakdown of taxes, for example, tax on shipping
1789
+ or tax on goods should be represented in separate TaxDetail elements.
1790
+ -->
1791
+ <!ELEMENT Tax (Money, Description, TaxDetail*)>
1792
+
1793
+ <!-- Item Elements -->
1794
+ <!--
1795
+ The representation of a line item as it needs to be for sending to a
1796
+ supplier.
1797
+
1798
+ quantity
1799
+ How many items are desired.
1800
+ lineNumber
1801
+ Position (counting from 1) of this item in an order. Used to
1802
+ maintain a reference between items in create and update OrderRequest
1803
+ documents.
1804
+ requisitionID
1805
+ The buyers system requisition id for this line item. It might be the
1806
+ same as orderID, and it might not be included at all. Must not be
1807
+ included if requisitionID is specified in the OrderRequestHeader.
1808
+ requestedDeliveryDate
1809
+ The date this item was requested for delivery.
1810
+ agreementItemNumber
1811
+ The corresponding Item Number of the Item in the Master Agreement if this is
1812
+ a 'release' order item.
1813
+ -->
1814
+ <!ELEMENT ItemOut (ItemID, Path?, ItemDetail?, (SupplierID | SupplierList)?, ShipTo?, Shipping?,
1815
+ Tax?, SpendDetail?, Distribution*, Contact*, Comments?)>
1816
+ <!ATTLIST ItemOut
1817
+ quantity %r8; #REQUIRED
1818
+ lineNumber %uint; #IMPLIED
1819
+ requisitionID %string; #IMPLIED
1820
+ agreementItemNumber %string; #IMPLIED
1821
+ requestedDeliveryDate %date; #IMPLIED
1822
+ isAdHoc (yes) #IMPLIED
1823
+ >
1824
+
1825
+ <!--
1826
+ The representation of a line item as it needs to be for sending to a
1827
+ buyer.
1828
+
1829
+ quantity
1830
+ How many items are desired.
1831
+ lineNumber
1832
+ Position (counting from 1) of this item in an order. Used to
1833
+ maintain a reference between items in create and update OrderRequest
1834
+ documents.
1835
+ -->
1836
+ <!ELEMENT ItemIn (ItemID, Path?, ItemDetail, SupplierID?, ShipTo?, Shipping?, Tax?, SpendDetail?)>
1837
+ <!ATTLIST ItemIn
1838
+ quantity %r8; #REQUIRED
1839
+ lineNumber %uint; #IMPLIED
1840
+ >
1841
+
1842
+ <!--
1843
+ StatusUpdate for Confirmation (type=RequestToPay) request.
1844
+
1845
+ transactionTimestamp
1846
+ time when the XMLPay transaction was submitted
1847
+
1848
+ transactionID
1849
+ an identifier assisgned to the transaction by the payment processing gateway
1850
+
1851
+ authorizationID
1852
+ the authorization code for the transaction provided by the bank
1853
+
1854
+ isFailed
1855
+ should have a status code greater than zero. Zero implies a successful transaction.
1856
+ -->
1857
+ <!ELEMENT PaymentStatus (PCard, Total, Shipping?, Tax?, Extrinsic*)>
1858
+ <!ATTLIST PaymentStatus
1859
+ orderID %string; #REQUIRED
1860
+ transactionTimestamp %datetime.tz; #REQUIRED
1861
+ type (Authorization| Settlement| Sale| Credit) #REQUIRED
1862
+ isFailed (yes) #IMPLIED
1863
+ transactionID %string; #IMPLIED
1864
+ authorizationID %string; #IMPLIED
1865
+ >
1866
+
1867
+ <!--
1868
+ Partial amount paid against an InvoiceDetail request. Used in InvoiceStatus.
1869
+ If this element exists in an InvoiceStatus element, it should mean that the buyer
1870
+ does not pay the full amount as the InvoiceDetail request specified.
1871
+ -->
1872
+ <!ELEMENT PartialAmount (Money)>
1873
+
1874
+ <!--
1875
+ StatusUpdate for InvoiceDetail request.
1876
+
1877
+ InvoiceIDInfo
1878
+ ID of an invoice known to the supplier system. This attribute is used to reference an invoice in StatusUpdateRequest when DocumentReference is omitted.
1879
+
1880
+ PartialAmount
1881
+ The partial amount paid against the InvoiceDetail document. This attribute is
1882
+ only relevant when the status type is "paid".
1883
+
1884
+ Comments
1885
+ Comments associated with the status update.
1886
+
1887
+ type
1888
+ Type of the invoice status.
1889
+ processing - The invoice is received and being processed.
1890
+ canceled - The invoice has been canceled.
1891
+ reconciled - The invoice is reconciled.
1892
+ rejected - The invoice is rejected.
1893
+ paying - The invoice is being paid.
1894
+ paid - The InvoiceDetail request is paid.
1895
+ -->
1896
+
1897
+ <!ELEMENT InvoiceStatus (InvoiceIDInfo?, PartialAmount?, Comments*)>
1898
+ <!ATTLIST InvoiceStatus
1899
+ type (processing | canceled | reconciled | rejected | paying | paid) #REQUIRED
1900
+ >
1901
+
1902
+ <!-- OrderRequest* Elements -->
1903
+ <!--
1904
+ Definition of an order. This is the data that is sent to the supplier
1905
+ to have them place an order in their order management system. The new
1906
+ world order equivalent of a PO.
1907
+ -->
1908
+ <!ELEMENT OrderRequest (OrderRequestHeader, ItemOut+)>
1909
+
1910
+ <!--
1911
+ Header of an order. This is the data that is sent to the supplier
1912
+ to have them place an order in their order management system. Money
1913
+ represents the total amount of this order.
1914
+
1915
+ orderID
1916
+ The buyer system orderID for this request. This is an internal
1917
+ Buyer unique number.
1918
+
1919
+ orderVersion
1920
+ The buyer system order version number for this request. Relevant when
1921
+ the OrderRequest represents a change order request. The version number
1922
+ for the original document should be 1 and should be incremented by 1 for
1923
+ each subsequent version (2,3,4...).
1924
+
1925
+ isInternalVersion
1926
+ A value of yes indicates that this OrderRequest is a version whose changes from
1927
+ the previous version are deemed internal to the buyer system. Relevant when the
1928
+ version being sent to the supplier is not the first version.
1929
+
1930
+ orderDate
1931
+ The date and time the order request was created.
1932
+
1933
+ type
1934
+ The type of the order request. Defaults to "new".
1935
+
1936
+ requisitionID
1937
+ The buyers system requisition id for this entire order. It might be
1938
+ the same as orderID, and it might not be included at all. Must not
1939
+ be included if requisitionID is specified in any ItemOut elements.
1940
+
1941
+ shipComplete
1942
+ Optional preference for "hold until complete" processing. Defaults
1943
+ to shipping when available if not specified. Future versions of the
1944
+ protocol may extend the datatype of this attribute to include
1945
+ additional possible values (such as "unlessGreatlyBackOrdered"?).
1946
+ orderType
1947
+ "release", indicates that this is a Release Order from an existing
1948
+ Master Agreement/ Contract. Default is regular.
1949
+ agreementID
1950
+ Identifies associated agreement corresponding to the Release Order.
1951
+ At an implementation level it has to be validated that if the orderType
1952
+ is 'release' then the appropriate agreementID is also provided.
1953
+ agreementPayloadID
1954
+ Optional PayloadID for the corresponding Master Agreement.
1955
+
1956
+
1957
+ The contained DocumentReference element would appear in a document only
1958
+ when the type is "update" or "delete". In that case, the
1959
+ DocumentReference would reference the most recent OrderRequest document
1960
+ for the order. For example when an order is created, updated and then
1961
+ deleted, the final document should contain a DocumentReference
1962
+ referring to the OrderRequest with type="update". That document would,
1963
+ in turn, refer to the original (type="new") OrderRequest document.
1964
+ -->
1965
+ <!ELEMENT OrderRequestHeader (Total, ShipTo?, BillTo, Shipping?, Tax?,
1966
+ Payment?, PaymentTerm*, Contact*, Comments?, Followup?,
1967
+ DocumentReference?, SupplierOrderInfo?, Extrinsic*)>
1968
+ <!ATTLIST OrderRequestHeader
1969
+ orderID %string; #REQUIRED
1970
+ orderDate %datetime.tz; #REQUIRED
1971
+ orderType (release| regular) "regular"
1972
+ type (new | update | delete) "new"
1973
+ orderVersion %number; #IMPLIED
1974
+ isInternalVersion (yes) #IMPLIED
1975
+ agreementID %string; #IMPLIED
1976
+ agreementPayloadID %string; #IMPLIED
1977
+ requisitionID %string; #IMPLIED
1978
+ shipComplete (yes) #IMPLIED
1979
+ >
1980
+ <!--
1981
+ Definition of a Master Agreement. This is the electronic document representing the
1982
+ Master Agreement that was created and agreed upon in the Buying organizations.
1983
+ -->
1984
+ <!ELEMENT MasterAgreementRequest (MasterAgreementRequestHeader, AgreementItemOut*)>
1985
+
1986
+ <!--
1987
+ Header of an Agreement. This is the header level information in the Agreement.
1988
+ agreementID
1989
+ The buyer system agreementID for this request. the Master Agreement Number in Buyer.
1990
+ agreementDate
1991
+ The date and time the agreement request was created.
1992
+ This is different from the effective and expiry date of the agreement.
1993
+ agreementType
1994
+ Identifies if this is a Value based agreement or quantity based Agreement.
1995
+ requestType
1996
+ The type of the agreement request. Defaults to "new".
1997
+ effectiveDate
1998
+ Date the Master Agreement is available for ordering/releases.
1999
+ expirationDate
2000
+ Date the Master Agreement is no longer available.
2001
+ parentAgreementPayloadID
2002
+ PayloadID for the corresponding parent document that this agreement is derived from.
2003
+ operation:
2004
+ "delete" operation will be used to cancel an existing Master Agreement, the
2005
+ assumption here is that the delete request will be an exact replica of the
2006
+ original request.
2007
+ "new" operation identifies a new MasterAgreement transaction.
2008
+ "update" operation identified an update to an existing transaction.
2009
+ the DocumentReference attribute should be used to indicate the Orignal
2010
+ Document information.
2011
+ Note:
2012
+ Use "Contact" element to supply any additional Address or Location information.
2013
+ -->
2014
+
2015
+ <!ELEMENT MasterAgreementRequestHeader (MaxAmount?, MinAmount?,
2016
+ MaxReleaseAmount?, MinReleaseAmount?,
2017
+ Contact*,Comments?, DocumentReference?, Extrinsic*)>
2018
+ <!ATTLIST MasterAgreementRequestHeader
2019
+ agreementID %string; #REQUIRED
2020
+ agreementDate %datetime.tz; #REQUIRED
2021
+ type (value | quantity) "value"
2022
+ effectiveDate %datetime.tz; #REQUIRED
2023
+ expirationDate %datetime.tz; #REQUIRED
2024
+ parentAgreementPayloadID %string; #IMPLIED
2025
+ operation (new | update | delete) "new"
2026
+ >
2027
+
2028
+ <!--
2029
+ The representation of a agreement line item as it needs to be for sending to a
2030
+ supplier.
2031
+ maxQuantity
2032
+ maximum quantity for this particular lineItem
2033
+ minQuantity
2034
+ minimum quantity for this particular lineItem
2035
+ maxReleaseQuantity
2036
+ maximum quantity per release for this particular lineItem
2037
+ minReleaseQuantity
2038
+ minimum quantity per release for this particular lineItem
2039
+
2040
+ Note :
2041
+ The #lineNumber attribute in the <ItemOut> will be used to specify the corresponding
2042
+ lineNumber on the Master Agreement in the Procurement Application.
2043
+ At an implementation, level checks should be made to validate this.
2044
+ Note :
2045
+ The quantity attribute in the ItemOut tag should be set to one and ignored at
2046
+ the Mater Agreement implementation processing stage.
2047
+ Note :
2048
+ The MaxReleaseAmount/Quantity and MinReleaseAmount/Quantity at an item level i
2049
+ indicate the ItemLevel amounts and quantities per release.
2050
+ -->
2051
+ <!ELEMENT AgreementItemOut (MaxAmount?, MinAmount?, MaxReleaseAmount?, MinReleaseAmount?, ItemOut)>
2052
+ <!ATTLIST AgreementItemOut
2053
+ maxQuantity %r8; #IMPLIED
2054
+ minQuantity %r8; #IMPLIED
2055
+ maxReleaseQuantity %r8; #IMPLIED
2056
+ minReleaseQuantity %r8; #IMPLIED
2057
+ >
2058
+
2059
+ <!--
2060
+ The maximum amount for something.
2061
+ -->
2062
+ <!ELEMENT MaxAmount (Money)>
2063
+
2064
+ <!--
2065
+ The minimum amount for something.
2066
+ -->
2067
+ <!ELEMENT MinAmount (Money)>
2068
+
2069
+ <!--
2070
+ The contractual maximum amount per Release of this Master Agreement.
2071
+ -->
2072
+ <!ELEMENT MaxReleaseAmount (Money)>
2073
+
2074
+ <!--
2075
+ The contractual minimum amount per Release of this Master Agreement
2076
+ -->
2077
+ <!ELEMENT MinReleaseAmount (Money)>
2078
+
2079
+
2080
+ <!-- Followup
2081
+
2082
+ Location to which future StatusUpdateRequest documents should be
2083
+ posted. In general, this is the input location for any later
2084
+ documents which reference the current OrderRequest document.
2085
+ -->
2086
+ <!ELEMENT Followup (URL)>
2087
+
2088
+ <!-- PunchOut* Elements -->
2089
+ <!--
2090
+ Definition of a PunchOut Setup Request. This is the data that is sent
2091
+ to the external system that the procurement application is going to
2092
+ extract catalog data from.
2093
+
2094
+ The BrowserFormPost element contains the URL we would like the browser
2095
+ re-directed to when the PunchOut shopping experience is finished (where
2096
+ the PunchOutOrder message should be returned).
2097
+ -->
2098
+ <!ELEMENT PunchOutSetupRequest (BuyerCookie, Extrinsic*, BrowserFormPost?,
2099
+ Contact*, SupplierSetup?, ShipTo?,
2100
+ SelectedItem?, ItemOut*)>
2101
+ <!ATTLIST PunchOutSetupRequest
2102
+ operation (create | inspect | edit | source) #REQUIRED
2103
+ >
2104
+
2105
+ <!ELEMENT BuyerCookie ANY> <!-- any valid XML data -->
2106
+
2107
+ <!ELEMENT SelectedItem (ItemID)>
2108
+ <!ELEMENT SupplierSetup (URL)>
2109
+
2110
+ <!ELEMENT PunchOutSetupResponse (StartPage)>
2111
+
2112
+ <!--
2113
+ Definition of a PunchOut Order Message. This is the data that is sent
2114
+ back to the procurement application from the external system that the
2115
+ PunchOut Request was targeted at.
2116
+ -->
2117
+ <!ELEMENT PunchOutOrderMessage (BuyerCookie, PunchOutOrderMessageHeader,
2118
+ ItemIn*)>
2119
+
2120
+ <!--
2121
+ Header of a PunchOut Order Request. This is the data that is sent from
2122
+ the supplier to transfer the supplier acquired shopping basket back to
2123
+ the buyer system.
2124
+
2125
+ operationAllowed
2126
+ Highest operation allowed on the PunchOut shopping basket.
2127
+ "create" allows only later OrderRequest operations on these items.
2128
+ "inspect" adds a PunchOutSetupRequest with operation="inspect".
2129
+ And, "edit" allows operation="edit" in that later Setup request.
2130
+
2131
+ quoteStatus
2132
+ "pending" - Identifies that the transaction is still pending
2133
+ "final" - Identifies that the transaction is complete
2134
+ -->
2135
+ <!ELEMENT PunchOutOrderMessageHeader (SourcingStatus?, Total, ShipTo?, Shipping?, Tax?, SupplierOrderInfo?)>
2136
+ <!ATTLIST PunchOutOrderMessageHeader
2137
+ operationAllowed (create | inspect | edit) #REQUIRED
2138
+ quoteStatus (pending|final) "final"
2139
+ >
2140
+
2141
+ <!-- ====
2142
+ Other small Request elements.
2143
+ ==== -->
2144
+
2145
+ <!--
2146
+ Request to update the status of an earlier transaction.
2147
+
2148
+ DocumentReference
2149
+ A reference by payloadID to a cXML document to be updated. This
2150
+ element can be omitted only when InvoiceStatus is specified and
2151
+ the InvoiceStatus contains InvoiceIDInfo.
2152
+
2153
+ -->
2154
+ <!ENTITY % cxml.statuses "(PaymentStatus |
2155
+ SourcingStatus | InvoiceStatus)">
2156
+ <!ELEMENT StatusUpdateRequest (DocumentReference?, Status, (%cxml.statuses;)?)>
2157
+
2158
+ <!--
2159
+ A reference to an attachment containing cXML document.
2160
+
2161
+ Attachment
2162
+ A reference to the attachment containing a cXML document. The
2163
+ attachment must be either a single, complete cXML document or another
2164
+ MIME envelope containing a single, complete cXML document with
2165
+ attachments.
2166
+ -->
2167
+ <!ELEMENT cXMLAttachment (Attachment)>
2168
+
2169
+ <!--
2170
+ Request to forward a cXML document to another party. This Request
2171
+ occurs in multiple DTD files and is used depending on where (in which
2172
+ DTD) the forwarded message resides.
2173
+
2174
+ cXMLAttachment
2175
+ A reference to the attachment containing the cXML document being
2176
+ forwarded. Refer to cXMLAttachment for more details.
2177
+
2178
+ cXML
2179
+ Deprecated - Do Not Use.
2180
+ -->
2181
+ <!ELEMENT CopyRequest (cXMLAttachment | cXML)>
2182
+
2183
+ <!--
2184
+ Status for a pre-existing sourcing transaction. The textual content indicates
2185
+ the display information. "action" attribute defines the context of this message
2186
+ based on the value.
2187
+
2188
+ approve : Approve the pending transaction
2189
+ deny : deny pending transaction
2190
+ cancel : cancel any preexisting transaction.
2191
+
2192
+ -->
2193
+ <!ELEMENT SourcingStatus (#PCDATA)>
2194
+ <!ATTLIST SourcingStatus
2195
+ action (approve | cancel | deny ) #IMPLIED
2196
+ xml:lang %xmlLangCode; #REQUIRED>
2197
+ <!--
2198
+ For cXML license agreement information, please see
2199
+ http://www.cxml.org/home/license.asp
2200
+
2201
+ $Id: //ariba/cxml/schema/Modules/Transaction.mod#5 $
2202
+ -->
2203
+
2204
+ <!--
2205
+ For better definitions of these Elements/Entities, refer to the cXML
2206
+ Transaction Specification documents.
2207
+ -->
2208
+
2209
+ <!-- Basic financial elements used throughout -->
2210
+
2211
+ <!--
2212
+ The following defines a list of money amounts.
2213
+
2214
+ DepositAmount
2215
+ The amount of deposit or prepayment.
2216
+
2217
+ SubtotalAmount
2218
+ The subtotal amount.
2219
+
2220
+ DiscountAmount
2221
+ Defines the discount amount
2222
+
2223
+ SpecialHandlingAmount
2224
+ The special handling amount.
2225
+
2226
+ ShippingAmount
2227
+ The shipping amount.
2228
+
2229
+ GrossAmount
2230
+ The gross amount.
2231
+
2232
+ NetAmount
2233
+ The net amount.
2234
+
2235
+ DueAmount
2236
+ The due amount.
2237
+
2238
+ -->
2239
+ <!ELEMENT DepositAmount (Money)>
2240
+
2241
+ <!ELEMENT SubtotalAmount (Money)>
2242
+
2243
+ <!ELEMENT SpecialHandlingAmount (Money, Description?)>
2244
+
2245
+ <!ELEMENT ShippingAmount (Money)>
2246
+
2247
+ <!ELEMENT GrossAmount (Money)>
2248
+
2249
+ <!ELEMENT NetAmount (Money)>
2250
+
2251
+ <!ELEMENT DueAmount (Money)>
2252
+
2253
+ <!ELEMENT DiscountAmount (Money)>
2254
+
2255
+ <!--
2256
+ Defines a Purchasing Card element used for payment
2257
+ -->
2258
+ <!ELEMENT PCard (PostalAddress?)>
2259
+ <!ATTLIST PCard
2260
+ number %number; #REQUIRED
2261
+ expiration %date; #REQUIRED
2262
+ name %string; #IMPLIED
2263
+ >
2264
+
2265
+ <!--
2266
+ For cXML license agreement information, please see
2267
+ http://www.cxml.org/home/license.asp
2268
+
2269
+ $Id$
2270
+ -->
2271
+
2272
+ <!--
2273
+ This element captures spend detail information. SpendDetail can
2274
+ be used in the ItemIn and ItemOut and for the following types of
2275
+ messages:
2276
+
2277
+ PunchOutSetupRequest
2278
+ PunchOutOrderMessage
2279
+ OrderRequest
2280
+ ConfirmationRequest
2281
+
2282
+ But not for:
2283
+
2284
+ MasterAgreementRequest
2285
+
2286
+ TravelDetail
2287
+ Travel details for the current travel line item.
2288
+
2289
+ LaborDetail
2290
+ Labor details for the current temporary labor line item.
2291
+
2292
+ FeeDetail
2293
+ Fee details for the current fee line item.
2294
+
2295
+ Extrinsic
2296
+ Detail information for the any undefined spend category. The name
2297
+ attribute of the Extrinsic element should specify the type of the
2298
+ spend category (e.g., (PrintDetail, ProjectLaborDetail))
2299
+
2300
+ -->
2301
+ <!ELEMENT SpendDetail (TravelDetail | FeeDetail | LaborDetail | Extrinsic)>
2302
+
2303
+ <!--
2304
+ FeeDetail contains additional information about a line item for a fee,
2305
+ which may or may not be recurring.
2306
+
2307
+ UnitRate
2308
+ The amount(s) to be paid per unit (of time or other measure).
2309
+ In the case of multiple UnitRates (i.e., a "rate schedule"), it is
2310
+ customary and expected that each UnitRate will include a
2311
+ TermReference to distinguish them.
2312
+
2313
+ Period
2314
+ The Period of time over which the fee is charged, if applicable.
2315
+
2316
+ isRecurring
2317
+ Indicates that the fee is recurring (charged more than once).
2318
+ -->
2319
+ <!ELEMENT FeeDetail (UnitRate+, Period?) >
2320
+ <!ATTLIST FeeDetail
2321
+ isRecurring (yes) #IMPLIED
2322
+ >
2323
+ <!--
2324
+ For cXML license agreement information, please see
2325
+ http://www.cxml.org/home/license.asp
2326
+
2327
+ $Id: $
2328
+ -->
2329
+
2330
+ <!--
2331
+ LaborDetail contains information about an item for a temporary
2332
+ labor engagement.
2333
+
2334
+ UnitRate
2335
+ The amount(s) to be paid per unit (of time or other measure).
2336
+ In the case of multiple UnitRates (i.e., a "rate schedule"), it is
2337
+ customary and expected that each UnitRate will include a
2338
+ TermReference to distinguish them.
2339
+
2340
+ Period
2341
+ The Period of time over which the service occurs.
2342
+
2343
+ Contractor
2344
+ Identifies the contractor being engaged
2345
+
2346
+ JobDescription
2347
+ Description of the job or work to be performed.
2348
+
2349
+ Supervisor
2350
+ The person who is expected to supervise the contractor.
2351
+
2352
+ WorkLocation
2353
+ Place where the work is expected to be performed.
2354
+
2355
+ supplierReferenceCode
2356
+ The supplier's quote or proposal id, for cross-reference.
2357
+ -->
2358
+ <!ELEMENT LaborDetail (UnitRate+, Period, Contractor?, JobDescription?, Supervisor?, WorkLocation?)>
2359
+ <!ATTLIST LaborDetail
2360
+ supplierReferenceCode %string; #IMPLIED
2361
+ >
2362
+ <!-- Text description of a job (service)-->
2363
+ <!ELEMENT JobDescription (Description)>
2364
+ <!-- Contact information for the person supervising a job (service)-->
2365
+ <!ELEMENT Supervisor (Contact)>
2366
+ <!-- Address of the location where a service is to be performed-->
2367
+ <!ELEMENT WorkLocation (Address)>
2368
+ <!--
2369
+ Definition of a Contractor used in the context of temp labor.
2370
+ The contractor is uniquely identified by a contractor identifier.
2371
+ The piece of identification for a contractor is exchanged between
2372
+ the buyer and the supplier prior to sending out order/timecards.
2373
+ -->
2374
+ <!--
2375
+ Definition of a Contractor used in the context of temp labor.
2376
+ The contractor is uniquely identified by a contractor identifier.
2377
+ The piece of identification for a contractor is exchanged between
2378
+ the buyer and the supplier prior to sending out order/timecards.
2379
+ -->
2380
+ <!ELEMENT Contractor (ContractorIdentifier, Contact)>
2381
+
2382
+ <!--
2383
+ Definition of a ContractorIdentifier. uniquely identifies a contractor.
2384
+
2385
+ domain
2386
+ in what domain the identity is represented. This is for the
2387
+ end systems to know who assigned the id. buyerReferenceID
2388
+ implies that it is something generated by the buyer system
2389
+ and supplierReferenceID implies that it is something generated
2390
+ by the supplier system/entered by the supplier.
2391
+ -->
2392
+ <!ELEMENT ContractorIdentifier (#PCDATA)>
2393
+ <!ATTLIST ContractorIdentifier
2394
+ domain (supplierReferenceID|buyerReferenceID) #REQUIRED
2395
+ >
2396
+
2397
+ <!--
2398
+ For cXML license agreement information, please see
2399
+ http://www.cxml.org/home/license.asp
2400
+
2401
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Reference.mod#1 $
2402
+ -->
2403
+
2404
+ <!--
2405
+ For better definitions of these Elements/Entities, refer to the cXML
2406
+ User's Guide and related documents.
2407
+ -->
2408
+
2409
+ <!--
2410
+ The OrderReference element provides a clear reference to a prior
2411
+ OrderRequest document. While the contained DocumentReference provides
2412
+ an unambiguous reference, the additional attributes of the
2413
+ OrderReference may allow the ConfirmationRequest and ShipNoticeRequest
2414
+ to be viewed independently.
2415
+
2416
+ orderID
2417
+ The buyer system orderID for this request. Basically, what the PO
2418
+ number is today. If present, must be copied directly from the
2419
+ referenced OrderRequest document's OrderRequestHeader.
2420
+ orderDate
2421
+ The date and time the order request was created. If present, must
2422
+ be copied directly from the referenced OrderRequest document's
2423
+ OrderRequestHeader.
2424
+ -->
2425
+ <!ELEMENT OrderReference (DocumentReference)>
2426
+ <!ATTLIST OrderReference
2427
+ orderID %string; #IMPLIED
2428
+ orderDate %datetime.tz; #IMPLIED
2429
+ >
2430
+
2431
+ <!--
2432
+ Defines the ID of an order known to the buyer system.
2433
+
2434
+ orderID
2435
+ The id of an order known to the buyer system. Basically,
2436
+ what the PO number is today.
2437
+
2438
+ orderDate
2439
+ The date and time the order was created.
2440
+ -->
2441
+ <!ELEMENT OrderIDInfo EMPTY>
2442
+ <!ATTLIST OrderIDInfo
2443
+ orderID %string; #REQUIRED
2444
+ orderDate %datetime.tz; #IMPLIED
2445
+ >
2446
+
2447
+ <!--
2448
+ Defines information related to an order.
2449
+
2450
+ OrderReference
2451
+ The reference to the order being paid.
2452
+
2453
+ OrderIDInfo
2454
+ The buyer system order id of the order.
2455
+ -->
2456
+ <!ELEMENT OrderInfo (OrderReference | OrderIDInfo)>
2457
+
2458
+
2459
+ <!--
2460
+ The InvoiceReference element provides a clear reference to a prior
2461
+ InvoiceDetailRequest document.
2462
+
2463
+ invoiceID
2464
+ The suplier system invoiceID for this request. Basically, what
2465
+ the Invoice number is today. If present, must be copied
2466
+ directly from the referenced InvoiceDetailRequest document's
2467
+ InvoiceDetailRequestHeader.
2468
+
2469
+ invoiceDate
2470
+ The invoice date.
2471
+ -->
2472
+ <!ELEMENT InvoiceReference (DocumentReference)>
2473
+ <!ATTLIST InvoiceReference
2474
+ invoiceID %string; #IMPLIED
2475
+ invoiceDate %datetime.tz; #IMPLIED
2476
+ >
2477
+
2478
+ <!--
2479
+ Defines the ID of an invoice known to the supplier system.
2480
+
2481
+ invoiceID
2482
+ The id of an invoice known to the supplier system.
2483
+
2484
+ invoiceDate
2485
+ The invoice date.
2486
+ -->
2487
+ <!ELEMENT InvoiceIDInfo EMPTY>
2488
+ <!ATTLIST InvoiceIDInfo
2489
+ invoiceID %string; #REQUIRED
2490
+ invoiceDate %datetime.tz; #IMPLIED
2491
+ >
2492
+
2493
+ <!--
2494
+ Defines the ID of a master agreement known to the buyer system.
2495
+ In InvoiceDetailRequest, this element identifies the master agreement
2496
+ of the release order to be invoiced.
2497
+
2498
+ agreementID
2499
+ The id of a master agreement known to the buyer system. Basically,
2500
+ what the master agreement number is today.
2501
+
2502
+ agreementDate
2503
+ The date and time the master agreement request was created.
2504
+ -->
2505
+ <!ELEMENT MasterAgreementIDInfo EMPTY>
2506
+ <!ATTLIST MasterAgreementIDInfo
2507
+ agreementID %string; #REQUIRED
2508
+ agreementDate %datetime.tz; #IMPLIED
2509
+ >
2510
+
2511
+ <!--
2512
+ Defines a reference to an earlier MasterAgreementRequest document.
2513
+ In InvoiceDetailRequest, this element identifies the master agreement
2514
+ of the release order to be invoiced.
2515
+
2516
+ DocumentReference
2517
+ The reference to an earlier MasterAgreementRequest document.
2518
+
2519
+ agreementID
2520
+ The id of a master agreement known to the buyer system. Basically,
2521
+ what the master agreement number is today.
2522
+
2523
+ agreementDate
2524
+ The date and time the master agreement request was created.
2525
+ -->
2526
+ <!ELEMENT MasterAgreementReference (DocumentReference)>
2527
+ <!ATTLIST MasterAgreementReference
2528
+ agreementID %string; #IMPLIED
2529
+ agreementDate %datetime.tz; #IMPLIED
2530
+ >
2531
+
2532
+ <!--
2533
+ Identifies the carrier who will transport a shipment.
2534
+
2535
+ domain
2536
+ Domain in which this value has meaning. Recognized domains
2537
+ include:
2538
+ companyName - The legal name for this company. In some cases, this
2539
+ could also be provided in a Contact element with role
2540
+ "carrierCorporate". That option should be reserved for cases
2541
+ in which additional detail about the carrier appears in this
2542
+ element.
2543
+ SCAC - Standard Carrier Alpha Code (see
2544
+ http://users.erols.com/nmfta/Codes.htm)
2545
+ IATA - International Air Transport Association (see
2546
+ http://www.iata.org)
2547
+ AAR - Association of American Railroads (see http://www.aar.org/)
2548
+ UIC - International Union of Railways (see
2549
+ http://www.uic.asso.fr/)
2550
+ EAN - European Article Numbering (see http://www.ean-ucc.org/)
2551
+ DUNS - D&B's Data Universal Numbering System (see
2552
+ http://www.dnb.com/dnbhome.htm)
2553
+ -->
2554
+ <!ELEMENT CarrierIdentifier (#PCDATA)> <!-- string -->
2555
+ <!ATTLIST CarrierIdentifier
2556
+ domain %string; #REQUIRED
2557
+ >
2558
+
2559
+ <!--
2560
+ Identifier that appears on a shipment and through which additional
2561
+ detail about the shipment may be retrieved. Defined by the carrier.
2562
+ Has meaning in the domain described by the CarrierIdentifier values.
2563
+ Therefore, CarrierIdentifier and ShipmentIdentifier should normally
2564
+ be used together.
2565
+
2566
+ Conceptually, this is a tracking number. Different carriers have
2567
+ different names for shipment identifiers. Some call it a way bill
2568
+ number, others call it a pro number, and still others call it a bill of
2569
+ lading. They all represent tracking numbers.
2570
+ -->
2571
+ <!ELEMENT ShipmentIdentifier (#PCDATA)> <!-- string -->
2572
+
2573
+
2574
+ <!--
2575
+ One language-specific string for the creator of an IdReference,
2576
+ e.g. IRS, BofA, UPS, Cisco, etc.
2577
+
2578
+ xml:lang
2579
+ The language or locale in which the name of the creator is written.
2580
+ -->
2581
+ <!ELEMENT Creator (#PCDATA)> <!-- string -->
2582
+ <!ATTLIST Creator
2583
+ xml:lang %xmlLangCode; #REQUIRED
2584
+ >
2585
+
2586
+ <!--
2587
+ Defines an ID reference. Within the application context (for example,
2588
+ a certain pair of buyer and supplier), the (identifier, domain) pair
2589
+ should be unique.
2590
+
2591
+ Creator
2592
+ The creator of this IdReference, e.g. BofA, UPS, Cisco, etc.
2593
+
2594
+ Description
2595
+ Textual description of the IdReference. For human readability.
2596
+
2597
+ identifier
2598
+ The unique identifier of the IdReference within the domain.
2599
+
2600
+ domain
2601
+ The domain of the IdReference. It should be one of the
2602
+ following:
2603
+ accountID, bankRoutingID, accountPayableID,
2604
+ accountReceivableID, bankAccountID, ibanID, abaRoutingNumber,
2605
+ bankNationalID, isoBicID, swiftID, bankBranchID, federalTaxID,
2606
+ stateTaxID, provincialTaxID, vatID, gstID, and taxExemptionID.
2607
+ supplierTaxID is deprecated and will be treated as federalTaxID.
2608
+ Other possible values could be 1099ID, courtRegisterID, etc.
2609
+ -->
2610
+ <!ELEMENT IdReference (Creator?, Description?)>
2611
+ <!ATTLIST IdReference
2612
+ identifier %string; #REQUIRED
2613
+ domain %string; #REQUIRED
2614
+ >
2615
+
2616
+ <!--
2617
+ Defines supplier sales order information related to an order.
2618
+
2619
+ This is also used in PunchOutOrderMessage to indicate that the
2620
+ supplier has created an order associated with the punchout order message.
2621
+ The buyer can later cancel the sales order by sending an OrderRequest
2622
+ of type "delete" that refers to the sales order by including the
2623
+ SupplierOrderInfo element in the OrderRequestHeader
2624
+
2625
+ orderID
2626
+ Supplier sales order id of this order.
2627
+ -->
2628
+ <!ELEMENT SupplierOrderInfo EMPTY>
2629
+ <!ATTLIST SupplierOrderInfo
2630
+ orderID %string; #REQUIRED
2631
+ >
2632
+ <!--
2633
+ For cXML license agreement information, please see
2634
+ http://www.cxml.org/home/license.asp
2635
+
2636
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Entities.mod#2 $
2637
+ -->
2638
+
2639
+ <!--
2640
+ Top-level entities used in Transport.mod. Defined here to allow easy
2641
+ extention of the cXML specification (using additional DTDs) without
2642
+ redefining these entities.
2643
+ -->
2644
+
2645
+ <!-- cxml.messages
2646
+ Possible elements (for particular situations) within Message. These
2647
+ are all of the messages defined in the base cXML protocol.
2648
+ -->
2649
+ <!ENTITY % cxml.messages ",(PunchOutOrderMessage |
2650
+ ProviderDoneMessage |
2651
+ SubscriptionChangeMessage |
2652
+ DataAvailableMessage |
2653
+ SupplierChangeMessage)"
2654
+ >
2655
+
2656
+ <!-- cxml.requests
2657
+ Possible elements (for particular situations) within Request. These
2658
+ are all of the requests defined in the base cXML protocol.
2659
+ -->
2660
+ <!ENTITY % cxml.requests "(ProfileRequest |
2661
+ OrderRequest |
2662
+ MasterAgreementRequest|
2663
+ PunchOutSetupRequest |
2664
+ ProviderSetupRequest |
2665
+ StatusUpdateRequest |
2666
+ GetPendingRequest |
2667
+ SubscriptionListRequest |
2668
+ SubscriptionContentRequest |
2669
+ SupplierListRequest |
2670
+ SupplierDataRequest |
2671
+ CopyRequest |
2672
+ CatalogUploadRequest |
2673
+ AuthRequest |
2674
+ DataRequest)"
2675
+ >
2676
+
2677
+ <!-- cxml.responses
2678
+ Possible elements (for particular situations) within Response. These
2679
+ are all of the responses (corresponding to a subset of the possible
2680
+ requests) defined in the base cXML protocol.
2681
+ -->
2682
+ <!ENTITY % cxml.responses ",(ProfileResponse |
2683
+ PunchOutSetupResponse |
2684
+ ProviderSetupResponse |
2685
+ GetPendingResponse |
2686
+ SubscriptionListResponse |
2687
+ SubscriptionContentResponse |
2688
+ SupplierListResponse |
2689
+ SupplierDataResponse |
2690
+ AuthResponse |
2691
+ DataResponse)?"
2692
+ >
2693
+ <!--
2694
+ For cXML license agreement information, please see
2695
+ http://www.cxml.org/home/license.asp
2696
+
2697
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Profile.mod#1 $
2698
+ -->
2699
+
2700
+ <!--
2701
+ Request for the latest profile from the server. May also be used as
2702
+ a 'ping' transaction (to check if the server is available).
2703
+ -->
2704
+ <!ELEMENT ProfileRequest EMPTY >
2705
+
2706
+ <!--
2707
+ Static profile response describing the transactions supported by this
2708
+ server. The content should not change frequently.
2709
+
2710
+ effectiveDate
2711
+ When these services were first available. Should not be in the
2712
+ future since new clients may need to interact with a server.
2713
+
2714
+ lastRefresh
2715
+ When service information was last received from the end server.
2716
+
2717
+ a-dtype
2718
+ Datatype enumeration for the attributes of this element. May be
2719
+ ignored by most XML parsers (used for documentation purposes).
2720
+ -->
2721
+ <!ELEMENT ProfileResponse ( Option*, Transaction+ )>
2722
+ <!ATTLIST ProfileResponse
2723
+ effectiveDate %datetime.tz; #REQUIRED
2724
+ lastRefresh %datetime.tz; #IMPLIED
2725
+ a-dtype NMTOKENS #FIXED 'effectiveDate dateTime.tz
2726
+ lastRefresh dateTime.tz'
2727
+ >
2728
+
2729
+
2730
+ <!--
2731
+ Value for a defined option (either for the overall service or a
2732
+ specific transaction. At this time, no options are defined at either
2733
+ level.
2734
+
2735
+ name
2736
+ The name of this option. Future versions of cXML will define
2737
+ values for this attribute. This is not intended to be viewed
2738
+ directly (the profile is intended mostly for machine consumption).
2739
+
2740
+ a-dtype
2741
+ Datatype enumeration for the attributes of this element. May be
2742
+ ignored by most XML parsers (used for documentation purposes).
2743
+ -->
2744
+ <!ELEMENT Option ( #PCDATA )> <!-- string -->
2745
+ <!ATTLIST Option
2746
+ name %string; #REQUIRED
2747
+ a-dtype NMTOKENS #FIXED 'name string'
2748
+ >
2749
+
2750
+ <!--
2751
+ A transaction supported by this server.
2752
+
2753
+ requestName
2754
+ A specific request this server accepts at the given URL. The
2755
+ %cxml.requests entity (defined in transport.mod) contains the
2756
+ possible values for this attribute.
2757
+
2758
+ a-dtype
2759
+ Datatype enumeration for the attributes of this element. May be
2760
+ ignored by most XML parsers (used for documentation purposes).
2761
+ -->
2762
+ <!ELEMENT Transaction ( URL, Option* )>
2763
+ <!ATTLIST Transaction
2764
+ requestName %nmtoken; #REQUIRED
2765
+ a-dtype NMTOKENS #FIXED 'requestName NMTOKEN'
2766
+ >
2767
+ <!--
2768
+ For cXML license agreement information, please see
2769
+ http://www.cxml.org/home/license.asp
2770
+
2771
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Transport.mod#1 $
2772
+ -->
2773
+
2774
+ <!--
2775
+ For better definitions of these Elements/Entities, refer to the cXML
2776
+ Protocol Specification documents.
2777
+ -->
2778
+
2779
+ <!--
2780
+ Defines the set of known valid cXML digital signature versions
2781
+ -->
2782
+ <!ENTITY % cxml.signatureVersions "(1.0)">
2783
+
2784
+ <!--
2785
+ cXML envelope
2786
+
2787
+ version
2788
+ Version of this cXML transmission. Should be less than or equal
2789
+ to the version portion of the SYSTEM identifier for this document.
2790
+
2791
+ payloadID
2792
+ A unique identifier for this document.
2793
+
2794
+ timestamp
2795
+ The date and time at which this document was originally created.
2796
+
2797
+ signatureVersion
2798
+ If present, specifies the cXML digital signature version to
2799
+ which this document conforms. This implies that the
2800
+ ds:Signature element must be present. It is an error if this
2801
+ attribute is present and the document does not conform to the
2802
+ specified signature version. If absent, the document is not
2803
+ signed.
2804
+
2805
+ xml:lang
2806
+ The default locale for all strings (not formatted items such as
2807
+ dates, times and numbers) in this document. This attribute will be
2808
+ required in a future version of cXML. (Leaving it out is
2809
+ deprecated.)
2810
+ -->
2811
+ <!ELEMENT cXML (((Header, (Message | Request)) | Response), ds:Signature?)>
2812
+ <!ATTLIST cXML
2813
+ version %string; "&cxml.version;"
2814
+ payloadID %string; #REQUIRED
2815
+ timestamp %datetime.tz; #REQUIRED
2816
+ signatureVersion %cxml.signatureVersions; #IMPLIED
2817
+ xml:lang %xmlLangCode; #IMPLIED
2818
+ >
2819
+
2820
+ <!-- header -->
2821
+ <!ELEMENT Header (From, To, Sender, (Path, OriginalDocument)?)>
2822
+
2823
+ <!ELEMENT From (Credential+)>
2824
+ <!ELEMENT To (Credential+)>
2825
+ <!ELEMENT Sender (Credential+, UserAgent)>
2826
+
2827
+ <!--
2828
+ Path. A list of nodes that records the path taken by a user through
2829
+ a punchout chaining scenario.
2830
+ -->
2831
+ <!ELEMENT Path (Node+)>
2832
+
2833
+ <!--
2834
+ A Node is any entity connected to a Network.
2835
+
2836
+ type
2837
+ A node can define itself as a router node or a copy node. Routers
2838
+ assume responsibility for the transaction. Copy Nodes request to only
2839
+ be aware of the transaction.
2840
+
2841
+ itemDetailsRequired
2842
+ Intermediary Nodes may want to support special operations without
2843
+ having to store specific information required to fulfill that operation.
2844
+ This attribute tells the previous node to send ItemDetail information
2845
+ when performing a PunchOutSetupRequest edit/inspect operation.
2846
+ -->
2847
+ <!ELEMENT Node (Credential+)>
2848
+ <!ATTLIST Node
2849
+ type (copy | route) #REQUIRED
2850
+ itemDetailsRequired (yes) #IMPLIED
2851
+ >
2852
+
2853
+
2854
+ <!--
2855
+ Identifies the previous document in the situation that a router node
2856
+ forwards a message or request on to a more distant node.
2857
+
2858
+ payloadID
2859
+ The payloadId of the original document.
2860
+ -->
2861
+ <!ELEMENT OriginalDocument EMPTY>
2862
+ <!ATTLIST OriginalDocument
2863
+ payloadID %string; #REQUIRED
2864
+ >
2865
+
2866
+ <!--
2867
+ A textual string representing who the UserAgent is conducting the cXML
2868
+ conversation. Analogous to UserAgent for HTTP conversations.
2869
+ -->
2870
+ <!ELEMENT UserAgent (#PCDATA)>
2871
+
2872
+ <!--
2873
+ DEPRECATED
2874
+ Do not use this element.
2875
+ -->
2876
+ <!ELEMENT DigitalSignature ANY>
2877
+ <!ATTLIST DigitalSignature
2878
+ type %string; "PK7 self-contained"
2879
+ encoding %string; "Base64"
2880
+ >
2881
+
2882
+ <!--
2883
+ A shared secret. Typically, this is a username/password type of secret
2884
+ exchanged through a secure transport before communication takes place.
2885
+ -->
2886
+ <!ELEMENT SharedSecret ANY>
2887
+
2888
+ <!--
2889
+ Represents an identity for a credential.
2890
+
2891
+ lastChangedTimestamp
2892
+ When the underlying object last changed in the originating system.
2893
+ This is used in cases where the same object (e.g. a buyer
2894
+ organization) is replicated, and kept synchronized, across two
2895
+ systems.
2896
+ -->
2897
+ <!ELEMENT Identity ANY>
2898
+ <!ATTLIST Identity
2899
+ lastChangedTimestamp %datetime.tz; #IMPLIED
2900
+ >
2901
+
2902
+ <!--
2903
+ A Credential Message Authentication Code (MAC). This is used in
2904
+ situations where one party (the sender) must prove to another (the
2905
+ receiver) that it is authenticated by a shared secret with a third
2906
+ party trusted by both.
2907
+
2908
+ The MAC should be computed by the trusted third party and
2909
+ transferred to the sender. The MAC should be opaque to the sender
2910
+ (i.e., it should be secure and non-reversible). The MAC should
2911
+ use as its inputs enough information to accomplish the following
2912
+ goals:
2913
+
2914
+ (1) The MAC must prove to the receiver that it really originated
2915
+ with the trusted third party. E.g., the MAC could use a shared
2916
+ secret between the receiver and the trusted third party as its
2917
+ secret key.
2918
+
2919
+ (2) The MAC should be usable only by a certain sender. E.g., the
2920
+ MAC could authenticate an identifier for the sending organization.
2921
+
2922
+ (3) The MAC should prove that the sender is authorized to send on
2923
+ behalf of the From organization. E.g., the MAC could authenticate
2924
+ an identifier for the From organization.
2925
+
2926
+ (4) The MAC should limit the risk of the MAC being compromised and
2927
+ used to impersonate the sender by another party communicating with
2928
+ the receiver. E.g., the MAC could authenticate an expiration date
2929
+ or sequence number.
2930
+
2931
+ type
2932
+ An implementation-dependent identifier for the exact data
2933
+ being authenticated and the method in which it is formatted
2934
+ for authentication. Currently the only supported value is
2935
+ "FromSenderCredentials".
2936
+
2937
+ algorithm
2938
+ An implementation-dependent identifier for the exact MAC
2939
+ algorithm used on the data. Currently the only supported
2940
+ value is "HMAC-SHA1-96".
2941
+
2942
+ creationDate
2943
+ The time at which this MAC was issued. The receiver must not
2944
+ accept the MAC before this time.
2945
+
2946
+ expirationDate
2947
+ The time at which this MAC expires. The receiver must not
2948
+ accept the MAC after this time.
2949
+ -->
2950
+ <!ELEMENT CredentialMac (#PCDATA)>
2951
+ <!ATTLIST CredentialMac
2952
+ type %string; #REQUIRED
2953
+ algorithm %string; #REQUIRED
2954
+ creationDate %datetime.tz; #REQUIRED
2955
+ expirationDate %datetime.tz; #REQUIRED
2956
+ >
2957
+
2958
+ <!--
2959
+ A combination of an Identity and authentication element. If the
2960
+ authentication element is present, it strongly authenticates who/what
2961
+ someone is. The authentication element should not be sent within Message
2962
+ documents transported via an end user's browser. One-way communication
2963
+ must be authenticated in the transport layer.
2964
+
2965
+ domain
2966
+ In what domain is this Credential represented?
2967
+ type
2968
+ Does this Credential identify a marketplace or one of its member
2969
+ companies? A Credential without this attribute describes a member
2970
+ company or unaffiliated buying organization.
2971
+ -->
2972
+ <!ENTITY % cxml.authentication "SharedSecret |
2973
+ DigitalSignature |
2974
+ CredentialMac"
2975
+ >
2976
+ <!ELEMENT Credential (Identity, (%cxml.authentication;)?)>
2977
+ <!ATTLIST Credential
2978
+ domain %string; #REQUIRED
2979
+ type (marketplace) #IMPLIED
2980
+ >
2981
+
2982
+ <!--
2983
+ Status of a Response or Message. If present, the element content
2984
+ describes specifics of a problem.
2985
+
2986
+ code
2987
+ HTTP or cXML-specific status code.
2988
+
2989
+ text
2990
+ Textual version of the status code (not specific issue).
2991
+
2992
+ xml:lang
2993
+ The language in which the text attribute and element content are
2994
+ written. This attribute will be required in a future version of
2995
+ cXML. (Leaving it out is deprecated.)
2996
+ -->
2997
+ <!ELEMENT Status (#PCDATA)>
2998
+ <!ATTLIST Status
2999
+ code %uint; #REQUIRED
3000
+ text %string; #REQUIRED
3001
+ xml:lang %xmlLangCode; #IMPLIED
3002
+ >
3003
+
3004
+ <!--
3005
+ Message
3006
+
3007
+ When Status not present, '<Status code="200" text="OK" />' is implied.
3008
+ -->
3009
+ <!ELEMENT Message (Status? %cxml.messages;)>
3010
+ <!ATTLIST Message
3011
+ deploymentMode (production | test) "production"
3012
+ inReplyTo %string; #IMPLIED
3013
+ Id ID #IMPLIED
3014
+ >
3015
+
3016
+ <!-- request -->
3017
+ <!ELEMENT Request (%cxml.requests;)>
3018
+ <!ATTLIST Request
3019
+ deploymentMode (production | test) "production"
3020
+ Id ID #IMPLIED
3021
+ >
3022
+
3023
+ <!-- response -->
3024
+ <!ELEMENT Response (Status %cxml.responses;)>
3025
+ <!ATTLIST Response
3026
+ Id ID #IMPLIED
3027
+ >
3028
+
3029
+ <!--
3030
+ This element includes signed cXML-specific details about the
3031
+ document being signed. When a cXML document is signed, this
3032
+ element must appear inside the first ds:Object element in the
3033
+ ds:Signature element.
3034
+
3035
+ signatureVersion
3036
+ This specifies the cXML signature version to which this
3037
+ document conforms. It is an error if this attribute value
3038
+ does not exactly match the value of the signatureVersion
3039
+ attribute from the top-level cXML element. It is an error if
3040
+ the document does not conform to the specified cXML signature
3041
+ version.
3042
+
3043
+ payloadID
3044
+ Specifies the payloadID of the document. It is an error if
3045
+ the value of this attribute does not exactly match the value
3046
+ of the payloadID attribute from the top-level cXML element.
3047
+
3048
+ Id
3049
+ This identifies this cXMLSignedInfo element for purposes of
3050
+ the signature. This attribute must always be present and
3051
+ should always have the value "cXMLSignedInfo"
3052
+
3053
+ -->
3054
+ <!ELEMENT cXMLSignedInfo EMPTY>
3055
+ <!ATTLIST cXMLSignedInfo
3056
+ signatureVersion %cxml.signatureVersions; #REQUIRED
3057
+ payloadID %string; #REQUIRED
3058
+ Id ID #REQUIRED
3059
+ >
3060
+
3061
+ <!--
3062
+ For cXML license agreement information, please see
3063
+ http://www.cxml.org/home/license.asp
3064
+
3065
+ $Id: //ariba/cxml/modules/Contract.mod#6 $
3066
+ -->
3067
+
3068
+ <!--
3069
+ Use of the Contract element is deprecated
3070
+
3071
+ A mechanism for sending static contract pricing information.
3072
+ -->
3073
+ <!ELEMENT Contract (SupplierID+, Comments?, ItemSegment+)>
3074
+ <!ATTLIST Contract
3075
+ effectiveDate %datetime.tz; #REQUIRED
3076
+ expirationDate %datetime.tz; #REQUIRED
3077
+ >
3078
+
3079
+ <!--
3080
+ Use of the ItemSegment element is deprecated.
3081
+
3082
+ Defines an item segment for the index. An item segment is an
3083
+ overlay for index items, allowing suppliers to override certain
3084
+ item attributes on a per-contract basis.
3085
+
3086
+ Items may be segmented by some agreed-upon user-specific key that
3087
+ is used to determine who is eligible for these particular overlaid
3088
+ attributes (such as reduced or different prices). Omitting the
3089
+ segmentKey indicates that the supplier wishes to set the given
3090
+ contract price system wide (for all users).
3091
+
3092
+ segmentKey - optional agreed-upon string used to segment
3093
+ custom prices
3094
+ -->
3095
+ <!ELEMENT ItemSegment (ContractItem+)>
3096
+ <!ATTLIST ItemSegment
3097
+ segmentKey %string; #IMPLIED
3098
+ >
3099
+
3100
+ <!--
3101
+ Use of the ContractItem element is deprecated
3102
+
3103
+ A particular (custom) item overlay for a index item. The item is
3104
+ referenced by the supplierPartID.
3105
+
3106
+ ItemID - ID for the part to be overlaid.
3107
+ UnitPrice - Contract price for item
3108
+ Extrinsic - Named overlay. The Extrinsic should be named with the
3109
+ item field name it is to overlay. The Extrinsic must contain a
3110
+ <value> element which supplies the replacement value for the item
3111
+ field.
3112
+ For example:
3113
+ <ContractItem>
3114
+ <ItemID>
3115
+ <SupplierPartID>123456</SupplierPartID>
3116
+ </ItemID>
3117
+ <Extrinsic name="URL">http://www.newaddress.com</Extrinsic>
3118
+ </ContractItem>
3119
+ -->
3120
+ <!ELEMENT ContractItem (ItemID, UnitPrice?, Extrinsic*)>
3121
+ <!--
3122
+ For cXML license agreement information, please see
3123
+ http://www.cxml.org/home/license.asp
3124
+
3125
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Index.mod#1 $
3126
+ -->
3127
+
3128
+ <!--
3129
+ IndexItemAdd is the element used to insert an item in an index.
3130
+
3131
+ ItemID - uniquely identifies the item
3132
+ ItemDetail - general information about the item
3133
+ IndexItemDetail - Index specific item detail
3134
+
3135
+ Note that for historical reasons there is a LeadTime element in
3136
+ both ItemDetail and IndexItemDetail. For interoperability, it is
3137
+ recommended to specify the same value in both LeadTime elements.
3138
+ If different values are specified in the different LeadTime
3139
+ elements for the same IndexItemAdd, the meaning of this is
3140
+ undefined.
3141
+ -->
3142
+ <!ELEMENT IndexItemAdd (ItemID, ItemDetail, IndexItemDetail)>
3143
+ <!--
3144
+ IndexItemDelete is the element used to remove an item from the
3145
+ index.
3146
+ ItemID - uniquely identifies the item
3147
+
3148
+ -->
3149
+ <!ELEMENT IndexItemDelete (ItemID) >
3150
+
3151
+ <!--
3152
+ IndexItemPunchout is the element used to dynamically connect an
3153
+ index item to the supplier's resource for that item.
3154
+
3155
+ ItemID - uniquely identifies the item
3156
+ PunchoutDetail - Describes the item being accessed
3157
+ -->
3158
+ <!ELEMENT IndexItemPunchout (ItemID, PunchoutDetail)>
3159
+
3160
+ <!--
3161
+ IndexItem is the general ELEMENT for the list of items in an
3162
+ index.
3163
+
3164
+ IndexItemAdd - Item(s) to be added to the index
3165
+ IndexItemDelete - Item(s) to be removed from the index
3166
+ IndexItemPunchout - PunchOut Item(s) to be added to the index
3167
+
3168
+ -->
3169
+ <!ELEMENT IndexItem (IndexItemAdd+ | IndexItemDelete+ | IndexItemPunchout+)>
3170
+
3171
+ <!--
3172
+ PunchoutDetail is the description of an item which is referenced
3173
+ in the index.
3174
+
3175
+ -->
3176
+ <!ELEMENT PunchoutDetail (Description+, URL, Classification+,
3177
+ ManufacturerName?, ManufacturerPartID?,
3178
+ ExpirationDate?, EffectiveDate?,
3179
+ SearchGroupData*, TerritoryAvailable*,
3180
+ Extrinsic*)>
3181
+
3182
+ <!--
3183
+ Index is the element used to update the list of goods and/or
3184
+ services which are being handled by the system.
3185
+
3186
+ SupplierID - One or more identities by which this supplier is
3187
+ known. NOTE: These are to be considered synonyms
3188
+ for the same Supplier.
3189
+ SearchGroup - Description(s) of parametric search(es) for this
3190
+ index. Use of the SearchGroup element is
3191
+ deprecated.
3192
+ IndexItem - The list of items with which to modify the index
3193
+
3194
+ loadmode - The mode in which the Index is loaded, either Full
3195
+ or Incremental. A full index load will
3196
+ completely replace a previously loaded index. The
3197
+ recommended application default is incremental.
3198
+ -->
3199
+ <!ELEMENT Index (SupplierID+, Comments?, SearchGroup*, IndexItem+)>
3200
+ <!ATTLIST Index
3201
+ loadmode (Full | Incremental) #IMPLIED
3202
+ >
3203
+
3204
+ <!--
3205
+ Use of the SearchGroup element is deprecated. Parametric search
3206
+ shapes should be defined using TypeDefinition and its child
3207
+ elements.
3208
+
3209
+ SearchGroup is a grouping of attributes which constitute a search
3210
+ which can be performed against an index.
3211
+
3212
+ Name - Name of the search
3213
+ SearchAttribute - List of searchable index fields.
3214
+ -->
3215
+ <!ELEMENT SearchGroup (Name, SearchAttribute+)>
3216
+
3217
+ <!--
3218
+ Use of the SearchAttribute element is deprecated. Parametric
3219
+ search shapes should be defined using TypeDefinition and its
3220
+ child elements.
3221
+
3222
+ An attribute that can searched parametrically.
3223
+
3224
+ name - name of the attribute.
3225
+ type - the type of the attribute
3226
+ -->
3227
+ <!ELEMENT SearchAttribute EMPTY>
3228
+ <!ATTLIST SearchAttribute
3229
+ name %string; #REQUIRED
3230
+ type %string; #IMPLIED
3231
+ >
3232
+
3233
+ <!--
3234
+ ExpirationDate is the date and time after which the element is no longer
3235
+ valid. Must be specified in ISO 8601 format.
3236
+
3237
+ -->
3238
+ <!ELEMENT ExpirationDate (#PCDATA)> <!-- datetime.tz -->
3239
+ <!--
3240
+ EffectiveDate date and time at which the element becomes valid.
3241
+ Must be specified in ISO 8601 format.
3242
+ -->
3243
+ <!ELEMENT EffectiveDate (#PCDATA)> <!-- datetime.tz -->
3244
+
3245
+ <!--
3246
+ IndexItemDetail contains various index specific elements which
3247
+ help to define an index item.
3248
+ LeadTime - time in days to receive the item
3249
+ ExpirationDate - Expiration date and time for the item in this index
3250
+ EffectiveDate - Effective date and time for the item in this index
3251
+ SearchGroupData - Parametric search data
3252
+ TerritoryAvailable - Country codes
3253
+ -->
3254
+ <!ELEMENT IndexItemDetail (LeadTime, ExpirationDate?, EffectiveDate?,
3255
+ SearchGroupData*, TerritoryAvailable*)>
3256
+
3257
+ <!--
3258
+ Specification of a territory (using ISO country and/or region codes)
3259
+ in which the particular index item is available.
3260
+ -->
3261
+ <!ELEMENT TerritoryAvailable (#PCDATA)>
3262
+
3263
+ <!--
3264
+ SearchGroupData specifies the data which should be used to identify
3265
+ this item in a search.
3266
+ -->
3267
+ <!ELEMENT SearchGroupData (Name, SearchDataElement*)>
3268
+
3269
+ <!--
3270
+ SearchDataElement is a field and value which are used to provide the
3271
+ parametric data to a search.
3272
+ -->
3273
+ <!ELEMENT SearchDataElement EMPTY>
3274
+ <!ATTLIST SearchDataElement
3275
+ name %string; #REQUIRED
3276
+ value %string; #REQUIRED
3277
+ >
3278
+ <!--
3279
+ For cXML license agreement information, please see
3280
+ http://www.cxml.org/home/license.asp
3281
+
3282
+ $Id: //ariba/cxml/modules/Pending.mod#6 $
3283
+ -->
3284
+
3285
+ <!--
3286
+ For better definitions of these Elements/Entities, refer to the cXML
3287
+ Specification documents.
3288
+ -->
3289
+
3290
+ <!--
3291
+ A request used for polling for waiting messages. A waiting message, if
3292
+ any, will be included in the returned stream. The lastReceivedTimestamp
3293
+ attribute, if present, provides the timestamp of the last received
3294
+ message. When the Receiver sees this, it can remove messages with earlier
3295
+ timestamps from the pending queue.
3296
+
3297
+ The maxMessages attribute is used to indicate the maximum number of
3298
+ pending messages that can be included in the response.
3299
+
3300
+
3301
+ -->
3302
+ <!ELEMENT GetPendingRequest (MessageType+)>
3303
+ <!ATTLIST GetPendingRequest
3304
+ maxMessages %uint; #IMPLIED
3305
+ lastReceivedTimestamp %datetime.tz; #IMPLIED
3306
+ >
3307
+
3308
+ <!--
3309
+ Indicates the type of message(s) being polled for. The valid values are
3310
+ the corresponding element names e.g. SubscriptionChangeMessage.
3311
+ -->
3312
+ <!ELEMENT MessageType (#PCDATA)> <!-- nmtoken -->
3313
+
3314
+
3315
+ <!--
3316
+ The data elements being carried back in the response. These are fully
3317
+ formed cXML messages being carried through the Request/Response channel.
3318
+ -->
3319
+ <!ELEMENT GetPendingResponse (cXML+)>
3320
+ <!--
3321
+ For cXML license agreement information, please see
3322
+ http://www.cxml.org/home/license.asp
3323
+
3324
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Subscription.mod#1 $
3325
+ -->
3326
+
3327
+ <!--
3328
+ Indicates that something changed in a buyer's content subscription.
3329
+ Since this is a Message, it can come at any time - no explicit Request
3330
+ needs to be sent first.
3331
+ -->
3332
+ <!ELEMENT SubscriptionChangeMessage (Subscription+)>
3333
+ <!ATTLIST SubscriptionChangeMessage
3334
+ type (new | update | delete) #REQUIRED
3335
+ >
3336
+
3337
+ <!--
3338
+ A content subscription.
3339
+ -->
3340
+ <!ELEMENT Subscription (InternalID, Name, Changetime, SupplierID+, Format?,
3341
+ Description?)>
3342
+
3343
+
3344
+ <!ELEMENT Changetime (#PCDATA)> <!-- datetime.tz -->
3345
+ <!ELEMENT Format (#PCDATA)> <!-- string -->
3346
+ <!ATTLIST Format
3347
+ version %string; #REQUIRED
3348
+ >
3349
+
3350
+ <!--
3351
+ Requests a complete list of catalog subscriptions for a buyer.
3352
+ -->
3353
+ <!ELEMENT SubscriptionListRequest EMPTY>
3354
+
3355
+ <!--
3356
+ The list of Subscriptions for the given buyer.
3357
+ -->
3358
+ <!ELEMENT SubscriptionListResponse (Subscription+)>
3359
+
3360
+ <!--
3361
+ Requests the contents of a catalog that the buyer is subscribed to.
3362
+ -->
3363
+ <!ELEMENT SubscriptionContentRequest (InternalID, SupplierID+)>
3364
+
3365
+ <!--
3366
+ The data associated with a particular subscription.
3367
+ -->
3368
+ <!ELEMENT SubscriptionContentResponse (Subscription, SubscriptionContent+)>
3369
+
3370
+ <!--
3371
+ The actual content associated with a particular subscription.
3372
+
3373
+ Use of the Contract element is deprecated.
3374
+ -->
3375
+ <!ELEMENT SubscriptionContent (CIFContent | Index | Contract)>
3376
+ <!ATTLIST SubscriptionContent
3377
+ filename %string; #IMPLIED
3378
+ >
3379
+
3380
+ <!--
3381
+ Contents of CIF file in base64 encoding.
3382
+ -->
3383
+ <!ELEMENT CIFContent (#PCDATA)> <!-- bin.base64 -->
3384
+
3385
+ <!--
3386
+ Indicates that something has changed in the supplier data for
3387
+ a supplier the buyer has a relationship with. Since this is a message, no
3388
+ Request needs to be sent to receive this Message.
3389
+ -->
3390
+ <!ELEMENT SupplierChangeMessage (Supplier+)>
3391
+ <!ATTLIST SupplierChangeMessage
3392
+ type (new | update | delete) #REQUIRED
3393
+ >
3394
+
3395
+ <!--
3396
+ Requests for a complete list of suppliers the buyer currently has
3397
+ relationships with.
3398
+ -->
3399
+ <!ELEMENT SupplierListRequest EMPTY>
3400
+
3401
+ <!--
3402
+ The list of suppliers requested by SupplierListRequest.
3403
+ -->
3404
+ <!ELEMENT SupplierListResponse (Supplier+)>
3405
+
3406
+ <!--
3407
+ Requests for a data associated with a particular supplier identified by
3408
+ SupplierID.
3409
+ -->
3410
+ <!ELEMENT SupplierDataRequest (SupplierID+)>
3411
+
3412
+ <!--
3413
+ The data associated with the desired supplier.
3414
+ -->
3415
+ <!ELEMENT SupplierDataResponse (Supplier)>
3416
+ <!--
3417
+ For cXML license agreement information, please see
3418
+ http://www.cxml.org/home/license.asp
3419
+
3420
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/Provider.mod#1 $
3421
+ -->
3422
+
3423
+ <!-- ====
3424
+ Provider* transaction is used to visually integrate an application with
3425
+ a UI provided by a service provider.
3426
+ ==== -->
3427
+
3428
+ <!--
3429
+ ProviderSetupRequest
3430
+
3431
+ The originating application would provide the BrowserFormPost location
3432
+ only if it wished the provider site to display a "Done" button or
3433
+ would like information (at least Status) returned at the end of the
3434
+ interactive session. Inclusion should lead to a ProviderDoneMessage
3435
+ from the provider at the end of a session.
3436
+
3437
+ The originating application would provide the Followup location if it
3438
+ wished the provider to provide information about later status changes
3439
+ in the service (after the end of a particular Provider session). This
3440
+ applies only when the initial status (transmitted via a
3441
+ ProviderDoneMessage) was an interim value.
3442
+ -->
3443
+
3444
+ <!ELEMENT ProviderSetupRequest (OriginatorCookie,
3445
+ (BrowserFormPost, Followup?)?,
3446
+ SelectedService, Extrinsic*)>
3447
+
3448
+ <!--
3449
+ ProviderSetupResponse
3450
+ -->
3451
+
3452
+ <!ELEMENT ProviderSetupResponse (StartPage)>
3453
+
3454
+ <!--
3455
+ ProviderDoneMessage
3456
+ -->
3457
+
3458
+ <!ELEMENT ProviderDoneMessage (OriginatorCookie, ReturnData*)>
3459
+ <!--
3460
+ For cXML license agreement information, please see
3461
+ http://www.cxml.org/home/license.asp
3462
+
3463
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/DataAvailable.mod#1 $
3464
+ -->
3465
+
3466
+
3467
+ <!--
3468
+ DataAvailable message.
3469
+ -->
3470
+
3471
+ <!ELEMENT DataAvailableMessage (InternalID)>
3472
+ <!--
3473
+ For cXML license agreement information, please see
3474
+ http://www.cxml.org/home/license.asp
3475
+
3476
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/DataRequest.mod#1 $
3477
+ -->
3478
+
3479
+
3480
+ <!--
3481
+ Definition of a DataRequest.
3482
+ -->
3483
+ <!ELEMENT DataRequest (InternalID)>
3484
+
3485
+ <!--
3486
+ DataResponse. Contains the attachments if any for this response.
3487
+ Only a successful response to a download attempt would include this element
3488
+ -->
3489
+
3490
+ <!ELEMENT DataResponse (Attachment+)>
3491
+
3492
+ <!--
3493
+ For cXML license agreement information, please see
3494
+ http://www.cxml.org/home/license.asp
3495
+
3496
+ $Id: //ariba/cxml/release/schema/1.2.14.5+/Modules/CatalogUpload.mod#1 $
3497
+ -->
3498
+
3499
+ <!--
3500
+ Contain all the information related to the catalog upload, the same
3501
+ functionality as the catalog upload provided by supplier.ariba.com
3502
+ -->
3503
+ <!ELEMENT CatalogUploadRequest (CatalogName, Description, Attachment,
3504
+ Commodities?, AutoPublish?, Notification)>
3505
+ <!ATTLIST CatalogUploadRequest
3506
+ operation (new | update) #REQUIRED
3507
+ >
3508
+
3509
+ <!--
3510
+ CatalogName is the name of the uploaded/published catalog. The
3511
+ name is unique per supplier, and it can be defined in the
3512
+ different languages
3513
+ -->
3514
+ <!ELEMENT CatalogName ( #PCDATA )> <!-- string -->
3515
+ <!ATTLIST CatalogName
3516
+ xml:lang %xmlLangCode; #REQUIRED
3517
+ >
3518
+
3519
+ <!--
3520
+ The list of the commodity codes.
3521
+ -->
3522
+ <!ELEMENT Commodities (CommodityCode+)>
3523
+
3524
+ <!--
3525
+ The two-digit code
3526
+ -->
3527
+ <!ELEMENT CommodityCode ( #PCDATA )> <!-- string -->
3528
+
3529
+ <!--
3530
+ If the attribute "enabled" set to be "true", the updated catalog
3531
+ will be published to the same buyers according to its previous
3532
+ publish
3533
+ -->
3534
+ <!ELEMENT AutoPublish EMPTY>
3535
+ <!ATTLIST AutoPublish
3536
+ enabled %string; #REQUIRED
3537
+ >
3538
+
3539
+ <!--
3540
+ The information used by Ariba CSN to send the notification (the
3541
+ status of the catalog upload) to the suppliers.
3542
+ -->
3543
+ <!ELEMENT Notification (Email?, URLPost?)>
3544
+
3545
+ <!--
3546
+ The URL to receive the StatusUpdateRequest, which describes the
3547
+ status of the catalog upload, such as the "success" (means the
3548
+ catalog is validated, or the catalog is published),
3549
+ the "failed" (the catalog has errors, ......)
3550
+ -->
3551
+ <!ELEMENT URLPost EMPTY>
3552
+ <!ATTLIST URLPost
3553
+ enabled %string; #REQUIRED
3554
+ >
3555
+ <!--
3556
+ For cXML license agreement information, please see
3557
+ http://www.cxml.org/home/license.asp
3558
+
3559
+ $Id: //ariba/cxml/Modules/Profile.mod#6 $
3560
+ -->
3561
+
3562
+ <!--
3563
+ AuthRequest
3564
+
3565
+ An AuthRequest is used when one party (the "receiver") receives
3566
+ credentials from another party (the "principal") and the receiver
3567
+ needs a trusted third party to validate the credentials. The
3568
+ receiver should enclose the credentials in an AuthRequest and send
3569
+ them to the trusted third party for validation.
3570
+
3571
+ If the principal attempts to authenticate by revealing the shared
3572
+ secret between itself and the trusted third party (not
3573
+ recommended), the receiver should forward the credentials as they
3574
+ were received, including the shared secret.
3575
+
3576
+ If the principal attempts to authenticate through a client
3577
+ certificate (recommended), the receiver should forward the
3578
+ credentials as well as an X509Data element containing an
3579
+ X509IssuerSerial element describing the certificate used by the
3580
+ principal (the receiver normally obtains this information from its
3581
+ webserver or SSL/TLS implementation).
3582
+
3583
+ If the supplied credential is invalid, the trusted third party
3584
+ should respond with an empty cXML response of status 403
3585
+ (Forbidden). If the supplied credential is valid, the trusted
3586
+ third party should respond with an AuthResponse that contains the
3587
+ valid credentials.
3588
+ -->
3589
+ <!ELEMENT AuthRequest (Credential+, X509Data?)>
3590
+
3591
+ <!--
3592
+ X509Data
3593
+
3594
+ An X509Data element is constructed to describe an X.509 client
3595
+ certificate being used for authentication. This element (and its
3596
+ children) are derived from the XML Digital Signature standard ().
3597
+ -->
3598
+ <!ELEMENT X509Data ((X509IssuerSerial |
3599
+ X509SKI |
3600
+ X509SubjectName |
3601
+ X509Certificate)+ |
3602
+ X509CRL)>
3603
+
3604
+ <!--
3605
+ X509IssuerSerial
3606
+
3607
+ This element is a container for the serial number and issuer name
3608
+ of the X.509 certificate.
3609
+ -->
3610
+ <!ELEMENT X509IssuerSerial (X509IssuerName, X509SerialNumber) >
3611
+
3612
+ <!--
3613
+ X509IssuerName
3614
+
3615
+ This element contains the distinguished name of the issuer of the
3616
+ X.509 certificate. The distinguished name should be a string
3617
+ representation of an LDAP Distinguished Name, as described in RFC
3618
+ 2253. For example,
3619
+
3620
+ C=US, O="John Doe Data Security, Inc.", OU=Secure Server
3621
+ Certification Authority
3622
+
3623
+ -->
3624
+ <!ELEMENT X509IssuerName (#PCDATA)> <!-- string -->
3625
+
3626
+ <!--
3627
+ X509 SubjectName
3628
+
3629
+ This element contains the distinguished name of the subject of the
3630
+ X.509 certificate. This should be a string representation of an
3631
+ LDAP distinguished name, as described in RFC 2253.
3632
+ -->
3633
+ <!ELEMENT X509SubjectName (#PCDATA)> <!-- string -->
3634
+
3635
+ <!--
3636
+ X509SerialNumber
3637
+
3638
+ This element contains the serial number of the X.509 certificate.
3639
+ -->
3640
+ <!ELEMENT X509SerialNumber (#PCDATA)> <!-- string -->
3641
+
3642
+ <!--
3643
+ X509SKI
3644
+
3645
+ This element contains the Subject Key Identifier of the X.509
3646
+ certificate.
3647
+ -->
3648
+ <!ELEMENT X509SKI (#PCDATA)> <!-- string -->
3649
+
3650
+ <!--
3651
+ X509Certificate
3652
+
3653
+ This element contains a Base 64-encoded X.509v3 certificate.
3654
+ -->
3655
+ <!ELEMENT X509Certificate (#PCDATA)> <!-- string -->
3656
+
3657
+ <!--
3658
+ X509CRL
3659
+
3660
+ This element contains a Base 64-encoded X.509v3 Certificate
3661
+ Revocation List.
3662
+ -->
3663
+ <!ELEMENT X509CRL (#PCDATA)> <!-- string -->
3664
+
3665
+ <!--
3666
+ AuthResponse
3667
+
3668
+ This response returns a list of valid credentials of the person
3669
+ entity in the AuthRequest. An AuthResponse is returned only for a
3670
+ successful authentication; for failed authentications, an empty
3671
+ response with status 403 (Forbidden) will be returned.
3672
+
3673
+ expirationDate
3674
+ Specifies the time beyond which the information contained in
3675
+ the AuthResponse must be discarded. In other words, the
3676
+ inclusion of the expirationDate attribute specifies that the
3677
+ receiver of the AuthResponse may cache the information therein
3678
+ until the expirationDate.
3679
+
3680
+ The absence of an expirationDate should be interpreted to
3681
+ forbid caching.
3682
+ -->
3683
+ <!ELEMENT AuthResponse (Credential)+>
3684
+ <!ATTLIST AuthResponse
3685
+ expirationDate %datetime.tz; #IMPLIED
3686
+ >
3687
+ <!--
3688
+ For cXML license agreement information, please see
3689
+ http://www.cxml.org/home/license.asp
3690
+
3691
+ $Id: //ariba/cxml/Modules/Profile.mod#6 $
3692
+ -->
3693
+
3694
+ <!--
3695
+ For more information about W3C XML signatures, refer to the
3696
+ following URL. Portions of this DTD are derived from information
3697
+ contained therein.
3698
+ http://www.w3.org/TR/xmldsig-core/
3699
+ -->
3700
+
3701
+ <!-- DTD for XML Signatures
3702
+ http://www.w3.org/2000/09/xmldsig#
3703
+ Joseph Reagle $last changed 20001215$
3704
+
3705
+ http://www.w3.org/2000/09/xmldsig#
3706
+ $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
3707
+
3708
+ Copyright 2001 The Internet Society and W3C (Massachusetts Institute
3709
+ of Technology, Institut National de Recherche en Informatique et en
3710
+ Automatique, Keio University). All Rights Reserved.
3711
+ http://www.w3.org/Consortium/Legal/
3712
+
3713
+ This document is governed by the W3C Software License [1] as described
3714
+ in the FAQ [2].
3715
+
3716
+ [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
3717
+ [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
3718
+ -->
3719
+
3720
+ <!--
3721
+
3722
+ The following entity declarations enable external/flexible content in
3723
+ the Signature content model.
3724
+
3725
+ #PCDATA emulates schema string; when combined with element types it
3726
+ emulates schema's mixed content type.
3727
+
3728
+ %foo.ANY permits the user to include their own element types from
3729
+ other namespaces, for example:
3730
+ <!ENTITY % KeyValue.ANY '| ecds:ECDSAKeyValue'>
3731
+ ...
3732
+ <!ELEMENT ecds:ECDSAKeyValue (#PCDATA) >
3733
+
3734
+ -->
3735
+
3736
+ <!ENTITY % Object.ANY '|xades:QualifyingProperties|cXMLSignedInfo'>
3737
+ <!ENTITY % Method.ANY ''>
3738
+ <!ENTITY % Transform.ANY ''>
3739
+ <!ENTITY % SignatureProperty.ANY ''>
3740
+ <!ENTITY % KeyInfo.ANY ''>
3741
+ <!ENTITY % KeyValue.ANY ''>
3742
+ <!ENTITY % PGPData.ANY ''>
3743
+ <!ENTITY % X509Data.ANY ''>
3744
+ <!ENTITY % SPKIData.ANY ''>
3745
+
3746
+
3747
+
3748
+ <!-- Start Core Signature declarations, these should NOT be altered -->
3749
+
3750
+ <!ELEMENT ds:Signature (ds:SignedInfo, ds:SignatureValue, ds:KeyInfo?, ds:Object*) >
3751
+ <!ATTLIST ds:Signature
3752
+ xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'
3753
+ Id ID #IMPLIED >
3754
+
3755
+ <!ELEMENT ds:SignatureValue (#PCDATA) >
3756
+ <!ATTLIST ds:SignatureValue
3757
+ Id ID #IMPLIED>
3758
+
3759
+ <!ELEMENT ds:SignedInfo (ds:CanonicalizationMethod,
3760
+ ds:SignatureMethod, ds:Reference+) >
3761
+ <!ATTLIST ds:SignedInfo
3762
+ Id ID #IMPLIED
3763
+ >
3764
+
3765
+ <!ELEMENT ds:CanonicalizationMethod (#PCDATA %Method.ANY;)* >
3766
+ <!ATTLIST ds:CanonicalizationMethod
3767
+ Algorithm CDATA #REQUIRED >
3768
+
3769
+ <!ELEMENT ds:SignatureMethod (#PCDATA|ds:HMACOutputLength %Method.ANY;)* >
3770
+ <!ATTLIST ds:SignatureMethod
3771
+ Algorithm CDATA #REQUIRED >
3772
+
3773
+ <!ELEMENT ds:Reference (ds:Transforms?, ds:DigestMethod, ds:DigestValue) >
3774
+ <!ATTLIST ds:Reference
3775
+ Id ID #IMPLIED
3776
+ URI CDATA #IMPLIED
3777
+ Type CDATA #IMPLIED>
3778
+
3779
+
3780
+ <!ELEMENT ds:Transforms (ds:Transform+)>
3781
+
3782
+ <!ELEMENT ds:Transform (#PCDATA|ds:XPath %Transform.ANY;)* >
3783
+ <!ATTLIST ds:Transform
3784
+ Algorithm CDATA #REQUIRED >
3785
+
3786
+ <!ELEMENT ds:XPath (#PCDATA) >
3787
+
3788
+ <!ELEMENT ds:DigestMethod (#PCDATA %Method.ANY;)* >
3789
+ <!ATTLIST ds:DigestMethod
3790
+ Algorithm CDATA #REQUIRED >
3791
+
3792
+ <!ELEMENT ds:DigestValue (#PCDATA) >
3793
+
3794
+ <!ELEMENT ds:KeyInfo (#PCDATA|ds:KeyName|ds:KeyValue|ds:RetrievalMethod|
3795
+ ds:X509Data|ds:PGPData|ds:SPKIData|ds:MgmtData %KeyInfo.ANY;)* >
3796
+ <!ATTLIST ds:KeyInfo
3797
+ Id ID #IMPLIED >
3798
+
3799
+ <!-- Key Information -->
3800
+
3801
+ <!ELEMENT ds:KeyName (#PCDATA) >
3802
+ <!ELEMENT ds:KeyValue (#PCDATA|ds:DSAKeyValue|ds:RSAKeyValue %KeyValue.ANY;)* >
3803
+ <!ELEMENT ds:MgmtData (#PCDATA) >
3804
+
3805
+ <!ELEMENT ds:RetrievalMethod (ds:Transforms?) >
3806
+ <!ATTLIST ds:RetrievalMethod
3807
+ URI CDATA #REQUIRED
3808
+ Type CDATA #IMPLIED >
3809
+
3810
+ <!-- X.509 Data -->
3811
+
3812
+ <!ELEMENT ds:X509Data ((ds:X509IssuerSerial | ds:X509SKI | ds:X509SubjectName |
3813
+ ds:X509Certificate | ds:X509CRL )+ %X509Data.ANY;)>
3814
+ <!ELEMENT ds:X509IssuerSerial (ds:X509IssuerName, ds:X509SerialNumber) >
3815
+ <!ELEMENT ds:X509IssuerName (#PCDATA) >
3816
+ <!ELEMENT ds:X509SubjectName (#PCDATA) >
3817
+ <!ELEMENT ds:X509SerialNumber (#PCDATA) >
3818
+ <!ELEMENT ds:X509SKI (#PCDATA) >
3819
+ <!ELEMENT ds:X509Certificate (#PCDATA) >
3820
+ <!ELEMENT ds:X509CRL (#PCDATA) >
3821
+
3822
+ <!-- PGPData -->
3823
+
3824
+ <!ELEMENT ds:PGPData ((ds:PGPKeyID, ds:PGPKeyPacket?) | (ds:PGPKeyPacket) %PGPData.ANY;) >
3825
+ <!ELEMENT ds:PGPKeyPacket (#PCDATA) >
3826
+ <!ELEMENT ds:PGPKeyID (#PCDATA) >
3827
+
3828
+ <!-- SPKI Data -->
3829
+
3830
+ <!ELEMENT ds:SPKIData (ds:SPKISexp %SPKIData.ANY;) >
3831
+ <!ELEMENT ds:SPKISexp (#PCDATA) >
3832
+
3833
+ <!-- Extensible Content -->
3834
+
3835
+ <!ELEMENT ds:Object (#PCDATA|ds:Signature|ds:SignatureProperties|ds:Manifest %Object.ANY;)* >
3836
+ <!ATTLIST ds:Object
3837
+ Id ID #IMPLIED
3838
+ MimeType CDATA #IMPLIED
3839
+ Encoding CDATA #IMPLIED >
3840
+
3841
+ <!ELEMENT ds:Manifest (ds:Reference+) >
3842
+ <!ATTLIST ds:Manifest
3843
+ Id ID #IMPLIED >
3844
+
3845
+ <!ELEMENT ds:SignatureProperties (ds:SignatureProperty+) >
3846
+ <!ATTLIST ds:SignatureProperties
3847
+ Id ID #IMPLIED >
3848
+
3849
+ <!ELEMENT ds:SignatureProperty (#PCDATA %SignatureProperty.ANY;)* >
3850
+ <!ATTLIST ds:SignatureProperty
3851
+ Target CDATA #REQUIRED
3852
+ Id ID #IMPLIED >
3853
+
3854
+ <!-- Algorithm Parameters -->
3855
+
3856
+ <!ELEMENT ds:HMACOutputLength (#PCDATA) >
3857
+
3858
+ <!ELEMENT ds:DSAKeyValue ((ds:P, ds:Q)?, ds:G?, ds:Y, ds:J?, (ds:Seed, ds:PgenCounter)?) >
3859
+ <!ELEMENT ds:P (#PCDATA) >
3860
+ <!ELEMENT ds:Q (#PCDATA) >
3861
+ <!ELEMENT ds:G (#PCDATA) >
3862
+ <!ELEMENT ds:Y (#PCDATA) >
3863
+ <!ELEMENT ds:J (#PCDATA) >
3864
+ <!ELEMENT ds:Seed (#PCDATA) >
3865
+ <!ELEMENT ds:PgenCounter (#PCDATA) >
3866
+
3867
+ <!ELEMENT ds:RSAKeyValue (ds:Modulus, ds:Exponent) >
3868
+ <!ELEMENT ds:Modulus (#PCDATA) >
3869
+ <!ELEMENT ds:Exponent (#PCDATA) >
3870
+ <!--
3871
+ For cXML license agreement information, please see
3872
+ http://www.cxml.org/home/license.asp
3873
+
3874
+ $Id: //ariba/cxml/Modules/Profile.mod#6 $
3875
+ -->
3876
+
3877
+ <!--
3878
+ For more information about XAdES, refer to the following URL.
3879
+ Portions of this DTD are derived from information contained therein.
3880
+ http://uri.etsi.org/01903/v1.1.1#
3881
+ -->
3882
+
3883
+ <!ENTITY % Any.ANY ''>
3884
+ <!ENTITY % XMLTimeStamp.ANY ''>
3885
+
3886
+ <!-- Start Any -->
3887
+
3888
+ <!ELEMENT xades:Any (#PCDATA %Any.ANY;)*>
3889
+
3890
+ <!-- End Any -->
3891
+
3892
+ <!-- Start ObjectIdentifier -->
3893
+
3894
+ <!ELEMENT xades:ObjectIdentifier (xades:Identifier, xades:Description?, xades:DocumentationReferences?)>
3895
+ <!ELEMENT xades:Identifier (#PCDATA)>
3896
+ <!ATTLIST xades:Identifier
3897
+ Qualifier (OIDAsURI | OIDAsURN) #IMPLIED
3898
+ >
3899
+ <!ELEMENT xades:Description (#PCDATA)>
3900
+ <!ELEMENT xades:DocumentationReferences (xades:DocumentationReference)+>
3901
+ <!ELEMENT xades:DocumentationReference (#PCDATA)>
3902
+
3903
+ <!-- End ObjectIdentifier -->
3904
+
3905
+ <!-- Start EncapsulatedPKIData -->
3906
+
3907
+ <!ELEMENT xades:EncapsulatedPKIData (#PCDATA)>
3908
+ <!ATTLIST xades:EncapsulatedPKIData
3909
+ Id ID #IMPLIED
3910
+ >
3911
+
3912
+ <!-- End EncapsulatedPKIData -->
3913
+
3914
+ <!-- Start EncapsulatedTimeStamp -->
3915
+
3916
+ <!ELEMENT xades:TimeStamp (xades:HashDataInfo+, (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
3917
+
3918
+ <!ELEMENT xades:HashDataInfo (ds:Transforms?)>
3919
+ <!ATTLIST xades:HashDataInfo
3920
+ uri CDATA #REQUIRED
3921
+ >
3922
+
3923
+ <!ELEMENT xades:EncapsulatedTimeStamp (#PCDATA)>
3924
+ <!ATTLIST xades:EncapsulatedTimeStamp
3925
+ Id ID #IMPLIED
3926
+ >
3927
+ <!ELEMENT xades:XMLTimeStamp (#PCDATA %XMLTimeStamp.ANY;)*>
3928
+
3929
+ <!-- End EncapsulatedTimeStamp -->
3930
+
3931
+ <!-- Start container types -->
3932
+
3933
+ <!-- Start QualifyingProperties -->
3934
+
3935
+ <!ELEMENT xades:QualifyingProperties (xades:SignedProperties, xades:UnsignedProperties?)>
3936
+ <!ATTLIST xades:QualifyingProperties
3937
+ Target CDATA #REQUIRED
3938
+ Id ID #IMPLIED
3939
+ xmlns:xades CDATA #FIXED 'http://uri.etsi.org/01903/v1.1.1#'
3940
+ >
3941
+
3942
+ <!ELEMENT xades:SignedProperties (xades:SignedSignatureProperties, xades:SignedDataObjectProperties?)>
3943
+ <!ATTLIST xades:SignedProperties
3944
+ Id ID #IMPLIED
3945
+ >
3946
+ <!ELEMENT xades:UnsignedProperties (xades:UnsignedSignatureProperties?, xades:UnsignedDataObjectProperties?)>
3947
+ <!ATTLIST xades:UnsignedProperties
3948
+ Id ID #IMPLIED
3949
+ >
3950
+
3951
+ <!-- End QualifyingProperties -->
3952
+
3953
+ <!-- Start SignedSignatureProperties, SignedDataObjectProperties,
3954
+ UnsignedSignatureProperties, UnsignedDataObjectProperties -->
3955
+
3956
+ <!ELEMENT xades:SignedSignatureProperties (xades:SigningTime, xades:SigningCertificate, xades:SignaturePolicyIdentifier, xades:SignatureProductionPlace?, xades:SignerRole?)>
3957
+ <!ELEMENT xades:SignedDataObjectProperties (xades:DataObjectFormat*, xades:CommitmentTypeIndication*, xades:AllDataObjectsTimeStamp*, xades:IndividualDataObjectsTimeStamp*)>
3958
+
3959
+ <!ELEMENT xades:UnsignedSignatureProperties (xades:CounterSignature*, xades:SignatureTimeStamp*, xades:CompleteCertificateRefs?, xades:CompleteRevocationRefs?, (xades:SigAndRefsTimeStamp* | xades:RefsOnlyTimeStamp*), xades:CertificateValues?, xades:RevocationValues?, xades:ArchiveTimeStamp*)>
3960
+ <!ELEMENT xades:UnsignedDataObjectProperties (xades:UnsignedDataObjectProperty*)>
3961
+
3962
+ <!ELEMENT xades:UnsignedDataObjectProperty (#PCDATA %Any.ANY; )*>
3963
+
3964
+ <!-- End SignedSignatureProperties, SignedDataObjectProperties,
3965
+ UnsignedSignatureProperties, UnsignedDataObjectProperties -->
3966
+
3967
+ <!-- Start QualifyingPropertiesReference -->
3968
+
3969
+ <!ELEMENT xades:QualifyingPropertiesReference (ds:Transforms?)>
3970
+ <!ATTLIST xades:QualifyingPropertiesReference
3971
+ URI CDATA #REQUIRED
3972
+ Id ID #IMPLIED
3973
+ >
3974
+
3975
+ <!-- End QualifyingPropertiesReference -->
3976
+
3977
+ <!-- End container types -->
3978
+
3979
+ <!-- Start SigningTime -->
3980
+
3981
+ <!ELEMENT xades:SigningTime (#PCDATA)>
3982
+
3983
+ <!-- End SigningTime -->
3984
+
3985
+ <!-- Start SigningCertificate -->
3986
+
3987
+ <!ELEMENT xades:SigningCertificate (xades:Cert+)>
3988
+ <!ELEMENT xades:Cert (xades:CertDigest, xades:IssuerSerial)>
3989
+ <!ELEMENT xades:CertDigest (ds:DigestMethod, ds:DigestValue)>
3990
+ <!ELEMENT xades:IssuerSerial (ds:X509IssuerName, ds:X509SerialNumber)>
3991
+
3992
+ <!-- End SigningCertificate -->
3993
+
3994
+ <!-- Start SignaturePolicyIdentifier -->
3995
+
3996
+ <!ELEMENT xades:SignaturePolicyIdentifier (xades:SignaturePolicyId | xades:SignaturePolicyImplied)>
3997
+
3998
+ <!ELEMENT xades:SignaturePolicyId (xades:SigPolicyId, ds:Transforms?, xades:SigPolicyHash, xades:SigPolicyQualifiers?)>
3999
+ <!ELEMENT xades:SignaturePolicyImplied ANY>
4000
+
4001
+ <!ELEMENT xades:SigPolicyId (xades:Identifier, xades:Description?, xades:DocumentationReferences?)>
4002
+ <!ELEMENT xades:SigPolicyHash (ds:DigestMethod, ds:DigestValue)>
4003
+
4004
+ <!ELEMENT xades:SigPolicyQualifiers (xades:SigPolicyQualifier+)>
4005
+ <!ELEMENT xades:SigPolicyQualifier (#PCDATA %Any.ANY; )*>
4006
+
4007
+ <!-- End SignaturePolicyIdentifier -->
4008
+
4009
+ <!-- Start SPURI and SPUserNotice -->
4010
+
4011
+ <!ELEMENT xades:SPURI (#PCDATA)>
4012
+ <!ELEMENT xades:SPUserNotice (xades:NoticeRef?, xades:ExplicitText?)>
4013
+
4014
+ <!ELEMENT xades:NoticeRef (xades:Organization, xades:NoticeNumbers)>
4015
+ <!ELEMENT xades:ExplicitText (#PCDATA)>
4016
+
4017
+ <!ELEMENT xades:Organization (#PCDATA)>
4018
+ <!ELEMENT xades:NoticeNumbers (#PCDATA)*>
4019
+
4020
+ <!-- End SPURI and SPUserNotice -->
4021
+
4022
+ <!-- Start CounterSignature -->
4023
+
4024
+ <!ELEMENT xades:CounterSignature (ds:Signature)>
4025
+
4026
+ <!-- End CounterSignature -->
4027
+
4028
+ <!-- Start DataObjectFormat -->
4029
+
4030
+ <!ELEMENT xades:DataObjectFormat (xades:Description?, xades:ObjectIdentifier?, xades:MimeType?, xades:Encoding?)>
4031
+ <!ATTLIST xades:DataObjectFormat
4032
+ ObjectReference CDATA #REQUIRED
4033
+ >
4034
+
4035
+ <!ELEMENT xades:MimeType (#PCDATA)>
4036
+ <!ELEMENT xades:Encoding (#PCDATA)>
4037
+
4038
+ <!-- End DataObjectFormat -->
4039
+
4040
+ <!-- Start CommitmentTypeIndication -->
4041
+
4042
+ <!ELEMENT xades:CommitmentTypeIndication (xades:CommitmentTypeId, (xades:ObjectReference* | xades:AllSignedDataObjects), xades:CommitmentTypeQualifiers?)>
4043
+
4044
+ <!ELEMENT xades:CommitmentTypeId (xades:Identifier, xades:Description?, xades:DocumentationReferences?)>
4045
+ <!ELEMENT xades:ObjectReference (#PCDATA)>
4046
+ <!ELEMENT xades:AllSignedDataObjects ANY>
4047
+ <!ELEMENT xades:CommitmentTypeQualifiers (xades:CommitmentTypeQualifier*)>
4048
+
4049
+ <!ELEMENT xades:CommitmentTypeQualifier (#PCDATA%Any.ANY; )*>
4050
+
4051
+ <!-- End CommitmentTypeIndication -->
4052
+
4053
+ <!-- Start SignatureProductionPlace -->
4054
+
4055
+ <!ELEMENT xades:SignatureProductionPlace (xades:City?, xades:StateOrProvince?, xades:PostalCode?, xades:CountryName?)>
4056
+
4057
+ <!ELEMENT xades:City (#PCDATA)>
4058
+ <!ELEMENT xades:StateOrProvince (#PCDATA)>
4059
+ <!ELEMENT xades:PostalCode (#PCDATA)>
4060
+ <!ELEMENT xades:CountryName (#PCDATA)>
4061
+
4062
+ <!-- End SignatureProductionPlace -->
4063
+
4064
+ <!-- Start SignerRole -->
4065
+
4066
+ <!-- Start SignerRole -->
4067
+
4068
+ <!ELEMENT xades:SignerRole (xades:ClaimedRoles?, xades:CertifiedRoles?)>
4069
+
4070
+ <!ELEMENT xades:ClaimedRoles (xades:ClaimedRole+)>
4071
+ <!ELEMENT xades:CertifiedRoles (xades:CertifiedRole+)>
4072
+
4073
+ <!ELEMENT xades:ClaimedRole (#PCDATA %Any.ANY; )*>
4074
+ <!ELEMENT xades:CertifiedRole (#PCDATA)>
4075
+ <!ATTLIST xades:CertifiedRole
4076
+ Id ID #IMPLIED
4077
+ >
4078
+ <!-- End SignerRole -->
4079
+
4080
+ <!-- Start AllDataObjectsTimeStamp, IndividualDataObjectsTimeStamp, SignatureTimeStamp -->
4081
+
4082
+ <!ELEMENT xades:AllDataObjectsTimeStamp (xades:HashDataInfo+, (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
4083
+
4084
+ <!ELEMENT xades:IndividualDataObjectsTimeStamp (xades:HashDataInfo+, (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
4085
+
4086
+ <!ELEMENT xades:SignatureTimeStamp (xades:HashDataInfo+, (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
4087
+
4088
+ <!-- End AllDataObjectsTimeStamp, IndividualDataObjectsTimeStamp, SignatureTimeStamp -->
4089
+
4090
+ <!-- Start CompleteCertificateRefs -->
4091
+
4092
+ <!ELEMENT xades:CompleteCertificateRefs (xades:CertRefs)>
4093
+ <!ATTLIST xades:CompleteCertificateRefs
4094
+ Id ID #IMPLIED
4095
+ >
4096
+
4097
+ <!ELEMENT xades:CertRefs (xades:Cert+)>
4098
+
4099
+ <!-- End CompleteCertificateRefs -->
4100
+
4101
+ <!-- Start CompleteRevocationRefs -->
4102
+
4103
+ <!ELEMENT xades:CompleteRevocationRefs (xades:CRLRefs?, xades:OCSPRefs?, xades:OtherRefs?)>
4104
+ <!ATTLIST xades:CompleteRevocationRefs
4105
+ Id ID #IMPLIED
4106
+ >
4107
+
4108
+ <!ELEMENT xades:CRLRefs (xades:CRLRef+)>
4109
+ <!ELEMENT xades:OCSPRefs (xades:OCSPRef+)>
4110
+ <!ELEMENT xades:OtherRefs (xades:OtherRef+)>
4111
+
4112
+ <!ELEMENT xades:CRLRef (xades:DigestAlgAndValue,xades:CRLIdentifier?)>
4113
+ <!ELEMENT xades:OCSPRef (xades:OCSPIdentifier, xades:DigestAlgAndValue?)>
4114
+ <!ELEMENT xades:OtherRef (#PCDATA %Any.ANY; )*>
4115
+
4116
+ <!ELEMENT xades:DigestAlgAndValue (ds:DigestMethod, ds:DigestValue)>
4117
+ <!ELEMENT xades:CRLIdentifier (xades:Issuer, xades:IssueTime, xades:Number?)>
4118
+ <!ATTLIST xades:CRLIdentifier
4119
+ URI CDATA #IMPLIED
4120
+ >
4121
+ <!ELEMENT xades:OCSPIdentifier (xades:ResponderID, xades:ProducedAt)>
4122
+ <!ATTLIST xades:OCSPIdentifier
4123
+ URI CDATA #IMPLIED
4124
+ >
4125
+
4126
+ <!ELEMENT xades:Issuer (#PCDATA)>
4127
+ <!ELEMENT xades:IssueTime (#PCDATA)>
4128
+ <!ELEMENT xades:Number (#PCDATA)>
4129
+ <!ELEMENT xades:ResponderID (#PCDATA)>
4130
+ <!ELEMENT xades:ProducedAt (#PCDATA)>
4131
+
4132
+ <!-- End CompleteRevocationRefs -->
4133
+
4134
+ <!-- Start SigAndRefsTimeStamp, RefsOnlyTimeStamp -->
4135
+
4136
+ <!ELEMENT xades:SigAndRefsTimeStamp (xades:HashDataInfo+, (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
4137
+
4138
+ <!ELEMENT xades:RefsOnlyTimeStamp (xades:HashDataInfo+, (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
4139
+
4140
+ <!-- End SigAndRefsTimeStamp, RefsOnlyTimeStamp -->
4141
+
4142
+ <!-- Start CertificateValues -->
4143
+
4144
+ <!ELEMENT xades:CertificateValues (xades:EncapsulatedX509Certificate | xades:OtherCertificate)*>
4145
+ <!ATTLIST xades:CertificateValues
4146
+ Id ID #IMPLIED
4147
+ >
4148
+
4149
+ <!ELEMENT xades:EncapsulatedX509Certificate (#PCDATA)>
4150
+ <!ATTLIST xades:EncapsulatedX509Certificate
4151
+ Id ID #IMPLIED
4152
+ >
4153
+ <!ELEMENT xades:OtherCertificate (#PCDATA %Any.ANY; )*>
4154
+
4155
+ <!-- End CertificateValues -->
4156
+
4157
+ <!-- Start RevocationValues -->
4158
+
4159
+ <!ELEMENT xades:RevocationValues (xades:CRLValues?, xades:OCSPValues?, xades:OtherValues?)>
4160
+ <!ATTLIST xades:RevocationValues
4161
+ Id ID #IMPLIED
4162
+ >
4163
+
4164
+ <!ELEMENT xades:CRLValues (xades:EncapsulatedCRLValue+)>
4165
+ <!ELEMENT xades:OCSPValues (xades:EncapsulatedOCSPValue+)>
4166
+ <!ELEMENT xades:OtherValues (xades:OtherValue+)>
4167
+
4168
+ <!ELEMENT xades:EncapsulatedCRLValue (#PCDATA)>
4169
+ <!ATTLIST xades:EncapsulatedCRLValue
4170
+ Id ID #IMPLIED
4171
+ >
4172
+ <!ELEMENT xades:EncapsulatedOCSPValue (#PCDATA)>
4173
+ <!ATTLIST xades:EncapsulatedOCSPValue
4174
+ Id ID #IMPLIED
4175
+ >
4176
+ <!ELEMENT xades:OtherValue (#PCDATA%Any.ANY; )*>
4177
+
4178
+ <!-- End RevocationValues -->
4179
+
4180
+ <!-- Start ArchiveTimeStamp -->
4181
+
4182
+ <!ELEMENT xades:ArchiveTimeStamp (xades:HashDataInfo+, (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
4183
+
4184
+ <!-- End ArchiveTimeStamp -->