cxml-ruby 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5aed2303e25923bfa9f60fc5f0156f277df0f08a4f5d2c1f86598f762d273f6
4
- data.tar.gz: 3a613e2eb5e2a6873e861624942ea04242f25f61ef883c5ab05925e16f4a7659
3
+ metadata.gz: fc74760a69c8e09c9b0ed1424b2144ca67081706c0529c5bc3416a015914155e
4
+ data.tar.gz: 76469a8859133f67497651381acc3383fbc834e870c6928241518f8c272a0dee
5
5
  SHA512:
6
- metadata.gz: a6a49b19ccd68bf63238deae57a4b07df188458bdb5684064d2f0bb5d8c4be7e98bb281dbab6a0660a4e41e462a80e620887df43e27691d8ea87d5e410bc4c54
7
- data.tar.gz: bd436f24c35a1fe90ebfc9ca83d5544b3341c604a73faf3381783ecf32b9d2755bcd2fdb0115c30f3d0fe1fc9442cd55da44f4e4a7dec040551319a1eedf6d4c
6
+ metadata.gz: b9d816593ca065c4fe36cb8aeceb54d7f2d86453016a6a251c19d28cae413b2b54dfabf806aae3f0ce1585908d4bafb9d3c630a1caaf6a0a37999120795b7cec
7
+ data.tar.gz: f4bf1aa75c266bc6927f12f51093853f816bb910d2bd7924f76ad2222964aad95b39035a1b1c5fb3b524e04bac78c56f6fcb28c62ee4ed37cc3909ee289e07c4
data/CHANGELOG.md CHANGED
@@ -14,6 +14,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
14
 
15
15
  ---
16
16
 
17
+ ## [0.6.0] - 2020-05-01
18
+ ### Fixed
19
+ - Conform to cXML DTD spec for ordered output of child nodes.
20
+ ### Added
21
+ - Support parsing and validating output against DTDs in specs.
22
+
17
23
  ## [0.5.0] - 2020-04-30
18
24
  ### Added
19
25
  - Support parsing and specifying different DTDs.
data/lib/cxml/address.rb CHANGED
@@ -8,9 +8,12 @@ module CXML
8
8
  iso_country_code
9
9
  ]
10
10
  accessible_nodes %i[
11
- email
12
11
  name
13
12
  postal_address
13
+ email
14
+ phone
15
+ fax
16
+ url
14
17
  ]
15
18
  end
16
19
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CXML
4
+ class Comments < DocumentNode
5
+ accessible_attributes %i[
6
+ xml_lang
7
+ ]
8
+ end
9
+ end
data/lib/cxml/contact.rb CHANGED
@@ -8,9 +8,12 @@ module CXML
8
8
  address_id
9
9
  ]
10
10
  accessible_nodes %i[
11
- email
12
11
  name
13
12
  postal_address
13
+ email
14
+ phone
15
+ fax
16
+ url
14
17
  ]
15
18
  end
16
19
  end
@@ -41,8 +41,8 @@ module CXML
41
41
  type
42
42
  ]
43
43
  accessible_nodes %i[
44
- shared_secret
45
44
  identity
45
+ shared_secret
46
46
  credential_mac
47
47
  ]
48
48
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CXML
4
+ class DepositAmount < DocumentNode
5
+ accessible_nodes %i[
6
+ money
7
+ ]
8
+ end
9
+ end
data/lib/cxml/document.rb CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  module CXML
4
4
  class Document < DocumentNode
5
+ attr_writer :dtd
5
6
  accessible_attributes %i[
6
- dtd
7
7
  payload_id
8
8
  timestamp
9
9
  version
@@ -64,18 +64,17 @@ module CXML
64
64
  'cXML'
65
65
  end
66
66
 
67
- private
68
-
69
67
  def dtd_url
70
68
  "http://xml.cxml.org/schemas/cXML/#{version}/#{dtd}.dtd"
71
69
  end
72
70
 
71
+ private
72
+
73
73
  def ox_doc
74
74
  doc = Ox::Document.new
75
75
  instruct = Ox::Instruct.new(:xml)
76
76
  instruct[:version] = '1.0'
77
77
  instruct[:encoding] = 'UTF-8'
78
- instruct[:standalone] = 'yes'
79
78
  doc << instruct
80
79
  doc << Ox::DocType.new("cXML SYSTEM \"#{dtd_url}\"")
81
80
  doc
@@ -14,28 +14,28 @@ module CXML
14
14
  reference_date
15
15
  ]
16
16
  accessible_nodes %i[
17
- comments
18
- distribution
19
- extrinsics
17
+ unit_of_measure
18
+ unit_price
19
+ invoice_detail_item_reference
20
+ subtotal_amount
21
+ tax
22
+ invoice_detail_line_special_handling
23
+ invoice_detail_line_shipping
20
24
  gross_amount
21
25
  invoice_detail_discount
26
+ net_amount
27
+ distribution
28
+ comments
29
+ extrinsics
22
30
  invoice_detail_item_industry
23
- invoice_detail_item_reference
24
- invoice_detail_line_shipping
25
- invoice_detail_line_special_handling
26
31
  invoice_item_modifications
27
- net_amount
28
32
  packaging
29
33
  price_basis_quantity
30
34
  ship_notice_id_info
31
35
  ship_notice_line_item_reference
32
- subtotal_amount
33
- tax
34
36
  total_allowances
35
37
  total_amount_without_tax
36
38
  total_charges
37
- unit_of_measure
38
- unit_price
39
39
  ]
40
40
 
41
41
  def initialize_extrinsic(value)
@@ -6,12 +6,14 @@ module CXML
6
6
  line_number
7
7
  ]
8
8
  accessible_nodes %i[
9
- description
10
9
  item_id
10
+ description
11
11
  classification
12
12
  manufacturer_part_id
13
13
  manufacturer_name
14
14
  country
15
+ serial_number
16
+ supplier_batch_id
15
17
  ]
16
18
  end
17
19
  end
@@ -11,16 +11,16 @@ module CXML
11
11
  purpose
12
12
  ]
13
13
  accessible_nodes %i[
14
- comments
15
- document_reference
16
- extrinsics
17
14
  invoice_detail_header_indicator
18
15
  invoice_detail_line_indicator
19
- invoice_detail_shipping
20
- invoice_id_info
21
16
  invoice_partners
17
+ document_reference
18
+ invoice_id_info
19
+ invoice_detail_shipping
22
20
  payment_term
23
21
  period
22
+ comments
23
+ extrinsics
24
24
  ]
25
25
 
26
26
  def initialize_invoice_partner(value)
@@ -3,13 +3,15 @@
3
3
  module CXML
4
4
  class InvoiceDetailSummary < DocumentNode
5
5
  accessible_nodes %i[
6
+ subtotal_amount
7
+ tax
8
+ special_handling_amount
9
+ shipping_amount
6
10
  gross_amount
7
11
  invoice_detail_discount
8
12
  net_amount
9
- shipping_amount
10
- special_handling_amount
11
- subtotal_amount
12
- tax
13
+ deposit_amount
14
+ due_amount
13
15
  total_allowances
14
16
  total_amount_without_tax
15
17
  total_charges
@@ -3,10 +3,14 @@
3
3
  module CXML
4
4
  class ItemDetail < DocumentNode
5
5
  accessible_nodes %i[
6
+ unit_price
6
7
  description
7
8
  unit_of_measure
8
- unit_price
9
9
  classification
10
+ manufacturer_part_id
11
+ manufacturer_name
12
+ url
13
+ lead_time
10
14
  extrinsics
11
15
  ]
12
16
 
@@ -23,26 +23,27 @@ module CXML
23
23
  type
24
24
  ]
25
25
  accessible_nodes %i[
26
+ total
27
+ ship_to
26
28
  bill_to
27
- comments
29
+ shipping
30
+ tax
31
+ payment
32
+ payment_term
28
33
  contact
29
- control_keys
30
- delivery_period
34
+ comments
35
+ followup
31
36
  document_reference
37
+ supplier_order_info
32
38
  extrinsics
39
+ control_keys
40
+ delivery_period
33
41
  followup
34
42
  id_reference
35
43
  legal_identity
36
44
  order_request_header_industry
37
45
  organizational_unit
38
- payment
39
- payment_term
40
- ship_to
41
- shipping
42
- supplier_order_info
43
- tax
44
46
  terms_of_delivery
45
- total
46
47
  ]
47
48
 
48
49
  def type
@@ -8,10 +8,10 @@ module CXML
8
8
  ]
9
9
  accessible_nodes %i[
10
10
  deliver_to
11
- state
12
11
  street
13
12
  municipality
14
13
  city
14
+ state
15
15
  postal_code
16
16
  country
17
17
  ]
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.6.0'
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
@@ -130,6 +130,12 @@ describe CXML::Document do
130
130
  output_xml.should_not be_nil
131
131
  end
132
132
 
133
+ it 'validates against the DTD' do
134
+ next unless test_for_xmllint
135
+
136
+ lint_doc_with_dtd(CXML::Document.new.from_xml(output_xml)).should be true
137
+ end
138
+
133
139
  it 'outputs the response with a valid status code' do
134
140
  output_data[:response].should_not be_empty
135
141
  output_data[:response][:status][:code].should eq('200')
@@ -151,6 +157,12 @@ describe CXML::Document do
151
157
  output_data[:response].should_not be_empty
152
158
  output_data[:response][:status][:code].should eq('400')
153
159
  end
160
+
161
+ it 'validates against the DTD' do
162
+ next unless test_for_xmllint
163
+
164
+ lint_doc_with_dtd(CXML::Document.new.from_xml(output_xml)).should be true
165
+ end
154
166
  end
155
167
 
156
168
  context 'when a punch out order message document is rendered' do
@@ -161,6 +173,12 @@ describe CXML::Document do
161
173
  output_data[:message].should_not be_empty
162
174
  output_data[:message][:punch_out_order_message].should_not be_empty
163
175
  end
176
+
177
+ it 'validates against the DTD' do
178
+ next unless test_for_xmllint
179
+
180
+ lint_doc_with_dtd(CXML::Document.new.from_xml(output_xml)).should be true
181
+ end
164
182
  end
165
183
  end
166
184
  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 -->