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.
@@ -0,0 +1,4590 @@
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/schema/Modules/Base.mod#8 $
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
+ <!--
566
+ The rate information used to define the rate of a purchase. For
567
+ example, this could be the total room rate for 4 nights of stay
568
+ at a hotel.
569
+
570
+ Total
571
+ The total amount for the rate. The total amount must equal
572
+ to quantity x UnitRate.
573
+
574
+ UnitRate
575
+ The single unit rate.
576
+
577
+ Description
578
+ Textual description for the rate. For example, hotel nightly rate.
579
+
580
+ Quantity
581
+ The quantity. For example, a 4 nights stay at a hotel will
582
+ have quantity set to 4 with UnitofMesure in UnitRate set to Day.
583
+ -->
584
+ <!ELEMENT Rate (Total, UnitRate, Description?)>
585
+ <!ATTLIST Rate
586
+ quantity %r8; #REQUIRED
587
+ >
588
+
589
+ <!--
590
+ The total for something.
591
+ -->
592
+ <!ELEMENT Total (Money)>
593
+
594
+ <!--
595
+ For cXML license agreement information, please see
596
+ http://www.cxml.org/home/license.asp
597
+
598
+ $Id: //ariba/cxml/modules/Version.mod#4 $
599
+ -->
600
+
601
+ <!--
602
+ Another top-level entity used in Transport.mod. Defined here to allow
603
+ easy updates to the release version of cXML without opening
604
+ Transport.mod. This should also provide an easy file to search for
605
+ the current release version string.
606
+ -->
607
+
608
+ <!-- cxml.version
609
+ Current default string for the cXML@version attribute. Corresponds to
610
+ the final directory of the SYSTEM identifier used in all up-to-date
611
+ cXML documents.
612
+ For easy parsing of this file, do not remove whitespace surrounding the
613
+ actual version string.
614
+ -->
615
+ <!ENTITY cxml.version "1.2.020" >
616
+ <!--
617
+ For cXML license agreement information, please see
618
+ http://www.cxml.org/home/license.asp
619
+
620
+ $Id: //ariba/cxml/schema/Modules/Supplier.mod#1 $
621
+ -->
622
+
623
+ <!--
624
+ Supplier of goods and services. Includes a list of SupplierIDs which
625
+ identify the Supplier.
626
+
627
+ corporateURL
628
+ URL to web site about the supplier
629
+
630
+ storeFrontURL
631
+ URL to web site where a user can shop or browse
632
+ -->
633
+ <!ELEMENT Supplier (Name, Comments?, SupplierID+, SupplierLocation*)>
634
+ <!ATTLIST Supplier
635
+ corporateURL %URL; #IMPLIED
636
+ storeFrontURL %URL; #IMPLIED
637
+ >
638
+
639
+ <!--
640
+ One of the locations for a supplier. Supplier location is
641
+ generally a physical location.
642
+ -->
643
+ <!ELEMENT SupplierLocation (Address, OrderMethods)>
644
+
645
+ <!--
646
+ OrderMethods is the list of methods by which one can order
647
+ from a supplier. The contact element is the technical contact
648
+ who should be able to assist with order processing issues.
649
+ The list is to be ordered by supplier preference, the first
650
+ element having the highest degree of preference.
651
+ -->
652
+ <!ELEMENT OrderMethods (OrderMethod+, Contact?)>
653
+
654
+ <!--
655
+ OrderMethod is a method for ordering. It is comprised of a
656
+ target address for the order and the protocol expected by
657
+ the address.
658
+ -->
659
+ <!ELEMENT OrderMethod (OrderTarget, OrderProtocol?)>
660
+
661
+ <!--
662
+ OrderTarget represents an address to which orders can be
663
+ sent.
664
+ -->
665
+ <!ELEMENT OrderTarget (Phone | Email | Fax | URL | OtherOrderTarget)>
666
+
667
+ <!--
668
+ OrderProtocol is the communication method to be used when
669
+ communicating an order to a supplier. An example would be "cXML".
670
+ -->
671
+ <!ELEMENT OrderProtocol (#PCDATA)> <!-- string -->
672
+
673
+ <!--
674
+ OtherOrderTarget represents an address which is not enumerated by
675
+ default in the OrderTarget Element. This may contain address targets
676
+ beyond the ability of this document to describe.
677
+
678
+ name
679
+ Optional name for target.
680
+ -->
681
+ <!ELEMENT OtherOrderTarget ANY>
682
+ <!ATTLIST OtherOrderTarget
683
+ name %string; #IMPLIED
684
+ >
685
+
686
+ <!--
687
+ Definition of a supplier id. A supplier id is a (domain, value)
688
+ pair so that suppliers have the flexibility to define their id's
689
+ according to an arbitrary convention (e.g., (DUNS, 12345),
690
+ (TaxID, 88888888)).
691
+
692
+ domain
693
+ the domain of the id
694
+ -->
695
+
696
+ <!ELEMENT SupplierID (#PCDATA)> <!-- string -->
697
+ <!ATTLIST SupplierID
698
+ domain %string; #REQUIRED
699
+ >
700
+ <!--
701
+ Defines a List of Suppliers that might be associated with a quote Item. Used in
702
+ ItemOut.
703
+ -->
704
+ <!ELEMENT SupplierList (Supplier+)>
705
+ <!--
706
+ For cXML license agreement information, please see
707
+ http://www.cxml.org/home/license.asp
708
+
709
+ $Id: //ariba/cxml/modules/Item.mod#6 $
710
+ -->
711
+
712
+ <!--
713
+ ID with which the item's manufacturer identifies the item.
714
+ -->
715
+ <!ELEMENT ManufacturerPartID (#PCDATA)> <!-- string -->
716
+
717
+ <!--
718
+ Name of the item's manufacturer.
719
+
720
+ xml:lang
721
+ The language in which the ManufacturerName is written. This
722
+ attribute will be required in a future version of cXML. (Leaving it
723
+ out is deprecated.)
724
+ -->
725
+ <!ELEMENT ManufacturerName (#PCDATA)> <!-- string -->
726
+ <!ATTLIST ManufacturerName
727
+ xml:lang %xmlLangCode; #IMPLIED
728
+ >
729
+
730
+ <!--
731
+ Classification is used to group items into similar categories.
732
+
733
+ domain
734
+ "name" of classification, ie., SPSC
735
+ -->
736
+ <!ELEMENT Classification (#PCDATA)> <!-- string -->
737
+ <!ATTLIST Classification
738
+ domain %string; #REQUIRED
739
+ >
740
+
741
+ <!--
742
+ LeadTime specifies, in days, the amount of time required to
743
+ receive the item.
744
+ -->
745
+ <!ELEMENT LeadTime (#PCDATA)> <!-- uint -->
746
+
747
+ <!--
748
+ How the supplier identifies an item they sell.
749
+
750
+ If SupplierPartID does not provide a unique key to identify the item,
751
+ then the supplier should generate a key which identifies the part
752
+ uniquely when combined with the SupplierID and SupplierPartID. The
753
+ key is called SupplierPartAuxiliaryID.
754
+
755
+
756
+ An example is where a Supplier would use the same PartID for an
757
+ item but have a different price for units of "EA" versus "BOX".
758
+ In this case, the ItemIDs should be:
759
+ <ItemID>
760
+ <SupplierPartID>pn12345</SupplierPartID>
761
+ <SupplierPartAuxiliaryID>EA</SupplierPartAuxiliaryID>
762
+ </ItemID>
763
+ <ItemID>
764
+ <SupplierPartID>pn12345</SupplierPartID>
765
+ <SupplierPartAuxiliaryID>
766
+ <foo>well formed XML here</foo>
767
+ </SupplierPartAuxiliaryID>
768
+ </ItemID>
769
+ In this case, the "foo" element must be defined in an internal subset
770
+ sent with the cXML document. Otherwise, parsers will not be able to
771
+ validate that document.
772
+
773
+ In a preferred approach, the sending application may escape the contained
774
+ XML using CDATA sections. This would appear as:
775
+ ...
776
+ <SupplierPartAuxiliaryID>
777
+ <![CDATA[<foo>well formed XML here</foo>]]>
778
+ </SupplierPartAuxiliaryID>
779
+ ...
780
+
781
+ Finally, the angle brackets could be escaped using XML character
782
+ entities. This might be a bit harder for humans to read. For example:
783
+ ...
784
+ <SupplierPartAuxiliaryID>
785
+ &lt;foo&gt;well formed XML here&lt;/foo&gt;
786
+ </SupplierPartAuxiliaryID>
787
+ ...
788
+
789
+
790
+ -->
791
+ <!ELEMENT SupplierPartID (#PCDATA)> <!-- string -->
792
+
793
+ <!ELEMENT SupplierPartAuxiliaryID ANY>
794
+
795
+ <!--
796
+ A unique identification of an item. SupplierID is not required since
797
+ ItemIDs never travel alone.
798
+
799
+ ItemIDs used to define a Supplier/Commodity level Blanket Order Item should
800
+ use Empty SupplierPartID tag. These type of items do not have specific part numbers
801
+ at the time of placing the Blanket Order. There will be subsequent release orders
802
+ or invoices that will define the SupplierID.
803
+ -->
804
+ <!ELEMENT ItemID (SupplierPartID, SupplierPartAuxiliaryID?)>
805
+
806
+ <!--
807
+ ItemDetail contains detailed information about an item. All the data that
808
+ a user would want to see about an item instead of the bare essentials
809
+ that are represented in the ItemID.
810
+
811
+ LeadTime
812
+ time in days to receive the item
813
+ -->
814
+ <!ELEMENT ItemDetail (UnitPrice, Description+, UnitOfMeasure,
815
+ Classification+, ManufacturerPartID?,
816
+ ManufacturerName?, URL?, LeadTime?, Extrinsic*)>
817
+
818
+
819
+ <!--
820
+ Item details specific for items that describe blanket purchase order items.
821
+ This element should only be used for items in a purchase order of
822
+ type "blanket"
823
+ -->
824
+ <!ELEMENT BlanketItemDetail (Description+, MaxAmount?, MinAmount?,
825
+ MaxQuantity?, MinQuantity?,
826
+ UnitPrice?, UnitOfMeasure?,
827
+ Classification*, Extrinsic*)>
828
+ <!--
829
+ For cXML license agreement information, please see
830
+ http://www.cxml.org/home/license.asp
831
+
832
+ $Id$
833
+ -->
834
+
835
+ <!--
836
+ This element captures travel information. It could be one of four
837
+ types: air, car rental, hotel or rail.
838
+
839
+ AirDetail
840
+ Air travel detail.
841
+
842
+ CarRentalDetail
843
+ Car rental detail.
844
+
845
+ HotelDetail
846
+ Hotel detail.
847
+
848
+ RailDetail
849
+ Rail detail.
850
+
851
+ PolicyViolation
852
+ List of policy violations (if any) associated with this
853
+ travel line item.
854
+
855
+ Comments
856
+ Top level comments for this travel line item (if any). This
857
+ is not the policy violation comment but a top level comment
858
+ given by the user for this travel line item while in Travel
859
+ Booking Provider's web site.
860
+
861
+ TermsAndConditions
862
+ List of Terms and conditions (if any) associated with this
863
+ travel line item.
864
+
865
+ confirmationNumber
866
+ A unique confirmation number that is useful to both the
867
+ traveler and the vendor who is providing the service for this
868
+ travel line item. For example, hotel reservation number or
869
+ e-ticket number from the airline.
870
+
871
+ pnrLocator
872
+ Passenger Name Record (PNR) Locator that is useful to the
873
+ Travel Booking Provider.
874
+
875
+ quoteExpirationTime
876
+ Date and time that this quote will expire. This value is
877
+ normally supplied in the PunchoutOrderMessage. If no value is
878
+ supplied, it is assumed that there is no expiration time or
879
+ date for this quote.
880
+ -->
881
+ <!ELEMENT TravelDetail ((AirDetail | CarRentalDetail | HotelDetail | RailDetail),
882
+ PolicyViolation*,
883
+ Comments?,
884
+ TermsAndConditions?)>
885
+ <!ATTLIST TravelDetail
886
+ confirmationNumber %string; #REQUIRED
887
+ pnrLocator %string; #IMPLIED
888
+ quoteExpirationTime %datetime.tz; #IMPLIED
889
+ >
890
+
891
+ <!-- Air -->
892
+
893
+ <!--
894
+ Air detail information for the air trip.
895
+
896
+ TripType
897
+ Round Trip, One Way, or Multi Leg
898
+
899
+ AirLeg
900
+ Different air leg that makes up this air detail.
901
+ For example a round trip from SFO -> TPE with no stops
902
+ will have two air legs. One air leg from SFO -> TPE
903
+ and another from TPE -> SFO.
904
+
905
+ AvailablePrice
906
+ Other available airfare prices that the user did not pick.
907
+
908
+ Penalty
909
+ Penalty amount (if any). This is normally due to changes or
910
+ cancelation of the ticket.
911
+ -->
912
+ <!ELEMENT AirDetail (TripType,
913
+ AirLeg+,
914
+ AvailablePrice*,
915
+ Penalty?)>
916
+
917
+ <!--
918
+ Define a single leg in the air travel.
919
+
920
+ Vendor
921
+ Airline vendor name and information.
922
+
923
+ AirLegOrigin
924
+ Originating airport for this air leg.
925
+
926
+ AirLegDestination
927
+ Destination airport for this air leg.
928
+
929
+ BookingClassCode
930
+ Airline booking class code. This is the de-facto
931
+ airline standard. For example,
932
+
933
+ F, FN, P, R, A - first class
934
+ C, CN, D, J, I, Z - business class.
935
+ Y, YN, B, BN, M, H, V, VN, O, Q, QN, S,
936
+ K, KN, L, U, T, W - coach class.
937
+
938
+ Rate
939
+ Rate for this particular air leg. If specify, the total
940
+ of all the rate for the different air legs must add up
941
+ to the total the line item level.
942
+
943
+ Meal
944
+ Meal information for this air leg (if any)
945
+
946
+ travelSegment
947
+ Textual information to identify this travel segment.
948
+ This information is specific to the Travel Booking Provider.
949
+
950
+ departureTime
951
+ Departure date and time for this air leg
952
+
953
+ arrivalTime
954
+ Arrival date and time for this air leg
955
+
956
+ flightNumber
957
+ Flight number for this air leg
958
+
959
+ seatNumber
960
+ Seat number for this air leg
961
+
962
+ seatType
963
+ Seat type
964
+ aisle - Aisle
965
+ window - Window
966
+ middle - Middle
967
+
968
+ upgrade
969
+ Is this ticket an upgrade?
970
+
971
+ stops
972
+ The number of stop for this air leg.
973
+ 0 if it is a direct flight. If no information is supplied
974
+ it is defaulted to 0.
975
+
976
+ equipment
977
+ The plane equipment information for this air leg
978
+ -->
979
+ <!ELEMENT AirLeg (Vendor,
980
+ AirLegOrigin,
981
+ AirLegDestination,
982
+ BookingClassCode?,
983
+ Rate?,
984
+ Meal*)>
985
+ <!ATTLIST AirLeg
986
+ travelSegment %string; #REQUIRED
987
+ departureTime %datetime.tz; #REQUIRED
988
+ arrivalTime %datetime.tz; #REQUIRED
989
+ flightNumber %string; #REQUIRED
990
+ seatNumber %string; #IMPLIED
991
+ seatType (window | aisle | middle) #IMPLIED
992
+ upgrade (yes) #IMPLIED
993
+ stops %r8; #IMPLIED
994
+ equipment %string; #IMPLIED
995
+ >
996
+
997
+ <!--
998
+ Originating airport for this Air Leg.
999
+
1000
+ Airport
1001
+ Originating airport
1002
+ -->
1003
+ <!ELEMENT AirLegOrigin (Airport)>
1004
+
1005
+ <!--
1006
+ Destination airport for this Air Leg.
1007
+
1008
+ Airport
1009
+ Destination airport
1010
+ -->
1011
+ <!ELEMENT AirLegDestination (Airport)>
1012
+
1013
+ <!--
1014
+ Airport information that includes the iso airport code
1015
+
1016
+ Address
1017
+ Physical adress of the airport.
1018
+
1019
+ airportCode
1020
+ The 3 letter IATA airport code.
1021
+ -->
1022
+ <!ELEMENT Airport (Address?)>
1023
+ <!ATTLIST Airport airportCode %string; #REQUIRED>
1024
+
1025
+ <!---
1026
+ Meal information used by air, hotel and rail.
1027
+
1028
+ BookingClassCode
1029
+ Code for the meal. For example, airlines use
1030
+ B - Breakfast
1031
+ C - Complimentary liquor
1032
+ D - Dinner
1033
+ F - Food for purchase
1034
+ G - Food and beverage for purchase
1035
+ H - Hot meal
1036
+ K - Continental breakfast
1037
+ L - Lunch
1038
+ M - Meal
1039
+ N - No meal service
1040
+ O - Cold meal
1041
+ P - Liquor for purchase
1042
+ R - Refreshments
1043
+ S - Snack or brunch
1044
+ V - Refreshments for purchase
1045
+
1046
+ Description
1047
+ Textual description of the meal, including any special needs
1048
+ such as vegetarian or dairy-free.
1049
+ -->
1050
+ <!ELEMENT Meal (BookingClassCode?, Description?)>
1051
+
1052
+ <!-- Car Rental -->
1053
+
1054
+ <!--
1055
+ Car rental information.
1056
+
1057
+ Vendor
1058
+ Car rental vendor information.
1059
+
1060
+ CarRentalPickup
1061
+ Pickup location for the rental car.
1062
+
1063
+ CarRentalDropoff
1064
+ Drop off location for the rental car.
1065
+
1066
+ BookingClassCode
1067
+ 4 letter code for car.
1068
+
1069
+ 1st Letter - M (Mini), E (Economy), C (Compact), S (Standard),
1070
+ I (Intermediate), F (Full size), P (Premium), L (Luxury)
1071
+ V (MiniVan), X (Special)
1072
+ 2nd Letter - B (2 door), C (2/4 door), D (4 door), T (Convertible),
1073
+ F (Four wheel drive), V (Van), W (Wagon), S (Sport)
1074
+ X (Special)
1075
+ 3rd Letter - A (Automatic), M (Manual)
1076
+ 4th Letter - R (A/c), N (No A/C)
1077
+
1078
+ CarRentalFee
1079
+ Mutliple car rental fee can be specified to capture the
1080
+ break down of different fees. The total of these fees must
1081
+ add up to the total at the line item level.
1082
+
1083
+ LimitedMileage
1084
+ Mileage limit information
1085
+
1086
+ AvailablePrice
1087
+ Other available prices for car rental that the user did not pick.
1088
+
1089
+ travelSegment
1090
+ Textual information to identify this travel segment.
1091
+ This information is specific to the Travel Booking Provider.
1092
+
1093
+ pickupTime
1094
+ The intended pickup date and time
1095
+
1096
+ dropoffTime
1097
+ The intended dropoff date and time
1098
+ -->
1099
+ <!ELEMENT CarRentalDetail (Vendor,
1100
+ CarRentalPickup,
1101
+ CarRentalDropoff,
1102
+ BookingClassCode?,
1103
+ CarRentalFee+,
1104
+ LimitedMileage?,
1105
+ AvailablePrice*)>
1106
+ <!ATTLIST CarRentalDetail
1107
+ travelSegment %string; #REQUIRED
1108
+ pickupTime %datetime.tz; #REQUIRED
1109
+ dropoffTime %datetime.tz; #REQUIRED
1110
+ >
1111
+
1112
+ <!--
1113
+ Physical location where the rental car should be picked up. This
1114
+ is either an Airport or off airport car rental location.
1115
+
1116
+ Airport
1117
+ An airport location.
1118
+
1119
+ Address
1120
+ Physical address of the car rental location
1121
+ -->
1122
+ <!ELEMENT CarRentalPickup (Airport | Address)>
1123
+
1124
+ <!--
1125
+ Physical location where the rental car should be dropped off.
1126
+ This is either an Airport or off-airport car rental location.
1127
+
1128
+ Airport
1129
+ An airport location.
1130
+
1131
+ Address
1132
+ Physical address of the car rental location
1133
+ -->
1134
+ <!ELEMENT CarRentalDropoff (Airport | Address)>
1135
+
1136
+ <!--
1137
+ This specifies the quantity and the unit of measure of the mileage
1138
+ limit.
1139
+
1140
+ UnitOfMeasure
1141
+ Unit of measure either miles or kilometers.
1142
+
1143
+ quantity
1144
+ The mileage limit amount.
1145
+ -->
1146
+ <!ELEMENT LimitedMileage (UnitOfMeasure)>
1147
+ <!ATTLIST LimitedMileage
1148
+ quantity %r8; #REQUIRED
1149
+ >
1150
+
1151
+ <!--
1152
+ Car rental fee information. CarRentalFee captures the actual
1153
+ charges and fee that applies to this rental. Conditional charges
1154
+ such as extra mileages that are over the mileage limit should not
1155
+ be specified here but rather in the TermsAndConditions text.
1156
+
1157
+ Total
1158
+ Total amount for this car rental fee. All the total for the rates
1159
+ must add up to this amount.
1160
+
1161
+ Rate
1162
+ The individual broken-down fee information.
1163
+
1164
+ type
1165
+ Type of rate
1166
+ baseRate - Base rental rate
1167
+ additionalDriver - Additional driver fee
1168
+ airportAccessFee - Airport Access fee
1169
+ dropOffCharge - Drop off charge
1170
+ vehicleLicensingFee - Vehicle lincensing fee
1171
+ touristTax - Tourist tax
1172
+ prepaidGasoline - Prepaid gasoline charge
1173
+ navigationSystem - Navigation system
1174
+ childSeat - Child seat charge
1175
+ luggageRack - Luggage rack charge
1176
+ collisionDamageInsurance - Collision damage insurance
1177
+ liabilityInsurance - Liability insurance
1178
+ mobilePhone - Mobile phone base charge
1179
+ other - Other charges.
1180
+ -->
1181
+ <!ELEMENT CarRentalFee (Total, Rate*)>
1182
+ <!ATTLIST CarRentalFee
1183
+ type (baseRate | additionalDriver | airportAccessFee | dropOffCharge |
1184
+ vehicleLicensingFee | touristTax | prepaidGasoline |
1185
+ navigationSystem | childSeat | luggageRack | collisionDamageInsurance |
1186
+ liabilityInsurance | mobilePhone | other) "baseRate"
1187
+ >
1188
+
1189
+ <!-- Hotel -->
1190
+
1191
+ <!--
1192
+ Hotel detail information.
1193
+
1194
+ Vendor
1195
+ Hotel vendor information.
1196
+
1197
+ Address
1198
+ Physical address of the hotel. This is might be different
1199
+ from the address specified in the Vendor field as the vendor
1200
+ address might be the head quarter address.
1201
+
1202
+ RoomType
1203
+ The type of room reserved.
1204
+
1205
+ BookingClassCode
1206
+ Hotel booking class code.
1207
+
1208
+ Meal
1209
+ Any complementary meals that are included with the room. For
1210
+ example, complementary continental breakfast.
1211
+
1212
+ Rate
1213
+ Hotel rate information. Multiple rates can be specified. For
1214
+ example, the night rate, valet parking rate, and other rates.
1215
+
1216
+ AvailablePrice
1217
+ Other available prices that user did not pick. Available
1218
+ prices can be from the same vendor or different vendor.
1219
+
1220
+ travelSegment
1221
+ Textual information to identify this travel segment. This
1222
+ information is specific to the Travel Booking Provider.
1223
+
1224
+ arrivalTime
1225
+ Date and time of arrival at the hotel. This is used as an
1226
+ advisory to the hotel vendor for the arrival time.
1227
+
1228
+ departureTime
1229
+ Date and time of departure from the hotel. This is used as an
1230
+ advisory to the hotel vendor for the departure time.
1231
+
1232
+ checkinTime
1233
+ The official checkin time. For example, most hotel checkin
1234
+ time is 3:00 PM.
1235
+
1236
+ checkoutTime
1237
+ The official checkout time. For example, most hotel checkout
1238
+ time is 12:00 PM (noon).
1239
+
1240
+ earlyCheckinAllowed
1241
+ Does the hotel allow early checkin?
1242
+
1243
+ lateCheckoutAllowed
1244
+ Does the hotel allow late checkout?
1245
+ -->
1246
+ <!ELEMENT HotelDetail (Vendor,
1247
+ Address,
1248
+ RoomType,
1249
+ BookingClassCode?,
1250
+ Meal*,
1251
+ Rate*,
1252
+ AvailablePrice*)>
1253
+ <!ATTLIST HotelDetail
1254
+ travelSegment %string; #REQUIRED
1255
+ arrivalTime %datetime.tz; #REQUIRED
1256
+ departureTime %datetime.tz; #REQUIRED
1257
+ checkinTime %time.tz; #REQUIRED
1258
+ checkoutTime %time.tz; #REQUIRED
1259
+ earlyCheckinAllowed (yes) #IMPLIED
1260
+ lateCheckoutAllowed (yes) #IMPLIED
1261
+ >
1262
+
1263
+ <!--
1264
+ Information about a hotel room.
1265
+
1266
+ Description
1267
+ Textual description of the hotel room.
1268
+
1269
+ Amenities
1270
+ List of amenities for this hotel room.
1271
+
1272
+ smoking
1273
+ Is the room a smoking or non-smoking room
1274
+
1275
+ numberOfBed
1276
+ The number of beds in this room
1277
+
1278
+ bedType
1279
+ The bed type in this room.
1280
+ -->
1281
+ <!ELEMENT RoomType (Description?, Amenities*)>
1282
+ <!ATTLIST RoomType
1283
+ smoking (yes | no) #REQUIRED
1284
+ numberOfBed %r8; #IMPLIED
1285
+ bedType (king | queen | full | double | single | other) #IMPLIED
1286
+ >
1287
+
1288
+ <!--
1289
+ Textual description of the amenities for the hotel room.
1290
+
1291
+ Description
1292
+ Text description of this amenities. For example,
1293
+ DSL connection, two telephone lines, and other information
1294
+ about a hotel room.
1295
+ -->
1296
+ <!ELEMENT Amenities (Description)>
1297
+
1298
+ <!-- Rail -->
1299
+
1300
+ <!--
1301
+ Rail detail information. A rail detail can have multiple legs.
1302
+
1303
+ TripType
1304
+ Trip type for this rail.
1305
+
1306
+ Rail leg
1307
+ The different rail legs that make up this rail detail.
1308
+
1309
+ AvailablePrice
1310
+ Other available prices that the user did not pick for for this
1311
+ rail trip.
1312
+
1313
+ Penalty
1314
+ Penalty (if any) associated with this rail trip.
1315
+ -->
1316
+ <!ELEMENT RailDetail (TripType,
1317
+ RailLeg+,
1318
+ AvailablePrice*,
1319
+ Penalty?)>
1320
+
1321
+ <!--
1322
+ Rail leg is used to express information regarding a single leg for
1323
+ a rail travel.
1324
+
1325
+ Vendor
1326
+ Rail vendor information.
1327
+
1328
+ RailLegOrigin
1329
+ Rail originating location.
1330
+
1331
+ RailLegDestination
1332
+ Rail Destination location.
1333
+
1334
+ BookingClassCode
1335
+ Rail booking class code.
1336
+
1337
+ Rate
1338
+ Rate information (if any) for this rail leg. If specified,
1339
+ all the rates in all rail legs must add up to the total at the
1340
+ travel line item level.
1341
+
1342
+ Meal
1343
+ Meal served for this leg (if any).
1344
+
1345
+ travelSegment
1346
+ Textual information to identify this travel segment. This
1347
+ information is specific to the Travel Booking Provider.
1348
+
1349
+ departureTime
1350
+ Date and time of departure at the originating location.
1351
+
1352
+ arrivalTime
1353
+ Date and time of arrival at the destination location.
1354
+
1355
+ trainNumber
1356
+ Train number for this rail leg.
1357
+
1358
+ seatNumber
1359
+ Seat number.
1360
+
1361
+ carType
1362
+ Type of the rail car.
1363
+ -->
1364
+ <!ELEMENT RailLeg (Vendor,
1365
+ RailLegOrigin,
1366
+ RailLegDestination,
1367
+ BookingClassCode?,
1368
+ Rate?,
1369
+ Meal*)>
1370
+ <!ATTLIST RailLeg
1371
+ travelSegment %string; #REQUIRED
1372
+ departureTime %datetime.tz; #REQUIRED
1373
+ arrivalTime %datetime.tz; #REQUIRED
1374
+ trainNumber %string; #REQUIRED
1375
+ seatNumber %string; #IMPLIED
1376
+ carType (sleeper | seat) #IMPLIED
1377
+ >
1378
+
1379
+ <!--
1380
+ The origin of a particular rail leg. This can be an airport or a
1381
+ physical address of a rail station.
1382
+
1383
+ Airport
1384
+ An airport location
1385
+
1386
+ Address
1387
+ A physical address of a rail station
1388
+ -->
1389
+ <!ELEMENT RailLegOrigin (Airport | Address)>
1390
+
1391
+ <!--
1392
+ The destination of a particular rail leg. This can be an airport
1393
+ or a physical address of a rail station.
1394
+
1395
+ Airport
1396
+ An airport location
1397
+
1398
+ Address
1399
+ A physical address of a rail station
1400
+ -->
1401
+ <!ELEMENT RailLegDestination (Airport | Address)>
1402
+
1403
+ <!-- Travel/Expense common definitions -->
1404
+
1405
+ <!--
1406
+ The type of the trip. This is used by Air and Rail to indicate
1407
+ round trip, one way or multi-leg trip.
1408
+
1409
+ type
1410
+ Type of the trip
1411
+ round - a round trip
1412
+ oneWay - a one way trip
1413
+ multiLeg - a multi leg or open jaw trip
1414
+ -->
1415
+ <!ELEMENT TripType EMPTY>
1416
+ <!ATTLIST TripType
1417
+ type (round | oneWay | multiLeg) #REQUIRED
1418
+ >
1419
+
1420
+ <!--
1421
+ Information about a vendor that is providing this service.
1422
+
1423
+ Address
1424
+ The physical address of the vendor. This address normally is
1425
+ the business or head quarter address of the vendor.
1426
+
1427
+ SupplierID
1428
+ Supplier id for this vendor. This is just a (domain, value)
1429
+ pair so that Travel Booking Providers have the flexibility to
1430
+ define their id's according to an arbitrary convention (e.g.,
1431
+ (DUNS, 12345), (TaxID, 88888888)).
1432
+
1433
+ Note that multiple supplier id can be specified. This is so
1434
+ that Travel Booking Provider can have a single implementation
1435
+ that works with different Buyer implementations that use
1436
+ different supplier id domain.
1437
+
1438
+ preferred
1439
+ Is this vendor a preferred vendor?
1440
+ -->
1441
+ <!ELEMENT Vendor (Address, SupplierID*)>
1442
+ <!ATTLIST Vendor
1443
+ preferred (yes | no) #REQUIRED
1444
+ >
1445
+
1446
+ <!--
1447
+ Textual terms and conditions associated with an air fare, car
1448
+ rental, hotel, or rail. For example, a car rental terms and
1449
+ conditions normally include boundary limit, additional mileage
1450
+ charges, gasoline charge and other restriction information.
1451
+
1452
+ Multiple terms and conditions can be attached to a single travel
1453
+ line item.
1454
+
1455
+ Description
1456
+ Textual terms and conditions.
1457
+ -->
1458
+ <!ELEMENT TermsAndConditions (Description+)>
1459
+
1460
+ <!--
1461
+ Policy violation (if any) that results from the user picking this
1462
+ particular travel. Policy violations are associated with an
1463
+ individual line item of travel and not associated at the header
1464
+ level. This allows for clear identification of the violation with
1465
+ the individual line item.
1466
+
1467
+ Description
1468
+ Textual description of this violation.
1469
+
1470
+ PolicyViolationJustification
1471
+ Justification for this violation given by user normally picked
1472
+ from a standard list of justifications at the Travel Booking
1473
+ Provider web site.
1474
+
1475
+ Comments
1476
+ Additional comments to further clarify the justification given
1477
+ by user.
1478
+
1479
+ level
1480
+ Violation level.
1481
+ warning - a non serious violation.
1482
+ violation - a serious violation of company policy.
1483
+ -->
1484
+ <!ELEMENT PolicyViolation (Description,
1485
+ PolicyViolationJustification,
1486
+ Comments?)>
1487
+ <!ATTLIST PolicyViolation
1488
+ level (warning | violation) #REQUIRED
1489
+ >
1490
+
1491
+ <!--
1492
+ Justification given by the user why they violate the company
1493
+ travel policy. This justification value is normally picked from a
1494
+ pick list at the Travel Booking Provider web site.
1495
+
1496
+ Description
1497
+ The justification of the violation picked from a standard list
1498
+ at the Travel Booking Provider web site.
1499
+ -->
1500
+ <!ELEMENT PolicyViolationJustification (Description)>
1501
+
1502
+ <!--
1503
+ Penalty (if any) for this travel segment
1504
+
1505
+ Money
1506
+ The penalty amount
1507
+
1508
+ Description
1509
+ Textual description of the cause of the penalty. For example,
1510
+ change fee associated with air ticket.
1511
+ -->
1512
+ <!ELEMENT Penalty (Money, Description)>
1513
+
1514
+ <!--
1515
+ Other avaible price. AvailablePrice is used to express what other
1516
+ prices are available that the traveler did not pick.
1517
+ AvailablePrice is can be used to capture the lowest price, the
1518
+ highest price, the lowest compliant price, and the hight compliant
1519
+ price.
1520
+
1521
+ Money
1522
+ The amount of the other available price.
1523
+
1524
+ Description
1525
+ Textual description of the available price. It explain
1526
+ how this price was derived at. For example, a non direct flight
1527
+ exists with the flight number can be put here.
1528
+
1529
+ Type
1530
+ Type of available price. Currently we capture four
1531
+ different type.
1532
+ lowest - The lowest price possible regardless of the
1533
+ traveling policies
1534
+ lowestCompliant - The lowest price that still complies with
1535
+ the travel policies
1536
+ highestCompliant - The highest price that still complies with
1537
+ the travel policies
1538
+ highest - The highest price possible regardless of the travel
1539
+ policies
1540
+ other - Other, specify in the description
1541
+ -->
1542
+ <!ELEMENT AvailablePrice (Money, Description?)>
1543
+ <!ATTLIST AvailablePrice
1544
+ type (lowest | lowestCompliant | highestCompliant | highest | other) #REQUIRED
1545
+ >
1546
+
1547
+ <!--
1548
+ Booking class code used by airfare, car rental, hotel, and rail to
1549
+ indicate the class.
1550
+
1551
+ Description
1552
+ Textual description of the code
1553
+
1554
+ code
1555
+ code
1556
+ -->
1557
+ <!ELEMENT BookingClassCode (Description?)>
1558
+ <!ATTLIST BookingClassCode
1559
+ domain %string; #REQUIRED
1560
+ code %string; #REQUIRED
1561
+ >
1562
+
1563
+ <!--
1564
+ Define a physical location and its address. This can be used to
1565
+ describe places such as airport, bus station, ferry dock, railway
1566
+ station and so on.
1567
+
1568
+ Address
1569
+ Indicates the address of the place
1570
+
1571
+ code
1572
+ Indicates the code the may represent the place. For example,
1573
+ airport can have an airport code.
1574
+
1575
+ domain
1576
+ Qualifier or domain for the code. For example, airport code
1577
+ is IATA standard, the domain value would be "IATA"; however
1578
+ bus station code may be local specific.
1579
+ -->
1580
+ <!ELEMENT Place (Address?)>
1581
+ <!ATTLIST Place
1582
+ code %string; #IMPLIED
1583
+ domain %string; #IMPLIED
1584
+ >
1585
+
1586
+ <!--
1587
+ Defines places such as city, airport or railway where trip or leg originated.
1588
+ -->
1589
+ <!ELEMENT LegOrigin (Place)>
1590
+
1591
+ <!--
1592
+ Defines places such as city, airport or railway code where trip or leg ended.
1593
+ -->
1594
+ <!ELEMENT LegDestination (Place)>
1595
+ <!--
1596
+ For cXML license agreement information, please see
1597
+ http://www.cxml.org/home/license.asp
1598
+
1599
+ $Id: //ariba/cxml/schema/Modules/Transaction.mod#23 $
1600
+ -->
1601
+
1602
+ <!--
1603
+ For better definitions of these Elements/Entities, refer to the cXML
1604
+ Transaction Specification documents.
1605
+ -->
1606
+ <!--
1607
+ Detailed per-unit asset information for a line item.
1608
+
1609
+ Extrinsic
1610
+ Additional per-unit asset information
1611
+
1612
+ serialNumber
1613
+ Manufacturer's serial number for the unit
1614
+
1615
+ tagNumber
1616
+ Asset tag number for the unit
1617
+
1618
+ location
1619
+ location of the unit
1620
+ -->
1621
+ <!ELEMENT AssetInfo (Extrinsic*)>
1622
+ <!ATTLIST AssetInfo
1623
+ tagNumber %string; #IMPLIED
1624
+ serialNumber %string; #IMPLIED
1625
+ location %string; #IMPLIED
1626
+ >
1627
+
1628
+ <!-- Basic transactional elements used throughout -->
1629
+
1630
+ <!--
1631
+ Defines gross amount in posted currency.
1632
+ -->
1633
+ <!ELEMENT TotalAmountInPostedCurrency (Money)>
1634
+
1635
+ <!--
1636
+ Defines gross amount in billing currency. If specified, customer
1637
+ needs to pay this amount.
1638
+ -->
1639
+ <!ELEMENT TotalAmountInBillingCurrency (Money)>
1640
+
1641
+ <!--
1642
+ The bill to for an item.
1643
+ -->
1644
+ <!ELEMENT BillTo (Address)>
1645
+
1646
+ <!--
1647
+ The ship to for a item.
1648
+ -->
1649
+ <!ELEMENT ShipTo (Address)>
1650
+
1651
+ <!--
1652
+ Definition of a cXML Shipping item. Represents a shipping cost in the
1653
+ shopping basket (PunchOutOrderMessage) or an order to the supplier
1654
+ (OrderRequest). There could be one of these for the entire order, or one
1655
+ per lineitem.
1656
+
1657
+ trackingDomain
1658
+ represents the logistics supplier, I.E., "FedEx", "UPS", etc.
1659
+
1660
+ trackingId
1661
+ an optional element value that represents the logistics supplier
1662
+ tracking number
1663
+
1664
+ tracking
1665
+ Deprecated - Do Not Use
1666
+ -->
1667
+ <!ELEMENT Shipping (Money, Description)>
1668
+ <!ATTLIST Shipping
1669
+ trackingDomain %string; #IMPLIED
1670
+ trackingId %string; #IMPLIED
1671
+ tracking %string; #IMPLIED
1672
+ >
1673
+
1674
+ <!--
1675
+ Defines discount applied.
1676
+
1677
+ DiscountAmount
1678
+ The discount expressed as a flat amount with currency.
1679
+
1680
+ DiscountPercent
1681
+ The discount rate expressed as a percentage.
1682
+ -->
1683
+ <!ELEMENT Discount (DiscountPercent | DiscountAmount)>
1684
+
1685
+ <!--
1686
+ Defines the discount rate
1687
+
1688
+ percent
1689
+ The discount rate expressed as a percentage. A negative discount percent
1690
+ represents a penalty.
1691
+ -->
1692
+ <!ELEMENT DiscountPercent EMPTY>
1693
+ <!ATTLIST DiscountPercent
1694
+ percent %r8; #REQUIRED
1695
+ >
1696
+
1697
+ <!--
1698
+ Defines a payment term in an invoice or order. This deprecates the
1699
+ InvoiceDetailPaymentTerm previously defined. Payment term can be the
1700
+ net term (without discount) or discount term (with discount).
1701
+
1702
+ payInNumberOfDays
1703
+ The number of days after invoice effective date for the invoice to be paid.
1704
+
1705
+ Discount
1706
+ The percentage or amount of the discount term. This element should be omitted
1707
+ if the payment term is a net term.
1708
+ -->
1709
+ <!ELEMENT PaymentTerm (Discount?)>
1710
+ <!ATTLIST PaymentTerm
1711
+ payInNumberOfDays %uint; #REQUIRED
1712
+ >
1713
+
1714
+ <!--
1715
+ The list of valid payment types.
1716
+ -->
1717
+ <!ENTITY % cxml.payment "PCard">
1718
+ <!ELEMENT Payment (%cxml.payment;)>
1719
+
1720
+ <!--
1721
+ Defines an accounting segment. Segment is an older, deprecated way to
1722
+ transport this information.
1723
+
1724
+ type
1725
+ The accounting type of this segment.
1726
+
1727
+ id
1728
+ The unique key of this Segment against the type.
1729
+
1730
+ description
1731
+ Textual description of the Segment. For human readability.
1732
+ -->
1733
+ <!ELEMENT Segment EMPTY>
1734
+ <!ATTLIST Segment
1735
+ type %string; #REQUIRED
1736
+ id %string; #REQUIRED
1737
+ description %string; #REQUIRED
1738
+ >
1739
+
1740
+ <!--
1741
+ Defines an accounting segment. AccountingSegment is the newer, better
1742
+ way to transport this information. Name corresponds to the type
1743
+ attribute of Segment; Description corresponds to description. Both add
1744
+ required locale attributes to the strings.
1745
+
1746
+ id
1747
+ The unique key of this Segment against the type.
1748
+ -->
1749
+ <!ELEMENT AccountingSegment ( Name, Description )>
1750
+ <!ATTLIST AccountingSegment
1751
+ id %string; #REQUIRED
1752
+ >
1753
+
1754
+ <!--
1755
+ An accounting object. Use of the Segment element here is deprecated.
1756
+
1757
+ name
1758
+ The name of the object containing the specified accounting segments.
1759
+ -->
1760
+ <!ENTITY % cxml.accounting "( Segment+ | AccountingSegment+ )">
1761
+ <!ELEMENT Accounting (%cxml.accounting;)>
1762
+ <!ATTLIST Accounting
1763
+ name %string; #REQUIRED
1764
+ >
1765
+
1766
+ <!--
1767
+ A charge against an Accounting element.
1768
+ -->
1769
+ <!ELEMENT Charge (Money)>
1770
+
1771
+ <!--
1772
+ The combination of a Charge against an Accounting Element. A distribution
1773
+ represents the breakdown of one overall amount into sub-amounts.
1774
+ -->
1775
+ <!ELEMENT Distribution (Accounting, Charge)>
1776
+
1777
+ <!ELEMENT TaxAmount (Money)>
1778
+
1779
+ <!ELEMENT TaxableAmount (Money)>
1780
+
1781
+ <!--
1782
+ One language-specific string for the location of tax,
1783
+ e.g. London, Canada, California, etc.
1784
+
1785
+ xml:lang
1786
+ The language or locale in which the location of tax is written.
1787
+ -->
1788
+ <!ELEMENT TaxLocation (#PCDATA)> <!-- string -->
1789
+ <!ATTLIST TaxLocation
1790
+ xml:lang %xmlLangCode; #REQUIRED
1791
+ >
1792
+
1793
+ <!--
1794
+
1795
+ TriangularTransactionLawReference indicates the relevant law as
1796
+ titled for the local jurisdiction in the scenario of a triangular
1797
+ transaction. ex: Triangulation, article 28c,E paragraph 3 of the
1798
+ 6th EU VAT Directive
1799
+
1800
+ xml:lang
1801
+ the language in which the law reference is written.
1802
+ -->
1803
+ <!ELEMENT TriangularTransactionLawReference (#PCDATA)>
1804
+ <!ATTLIST TriangularTransactionLawReference
1805
+ xml:lang %xmlLangCode; #REQUIRED
1806
+ >
1807
+
1808
+ <!--
1809
+ Defines details of one type of tax.
1810
+
1811
+ TaxableAmount
1812
+ The taxable amount.
1813
+
1814
+ TaxAmount
1815
+ The tax amount.
1816
+
1817
+ TaxLocation
1818
+ The tax location.
1819
+
1820
+ Description
1821
+ The textual description of the current type of tax.
1822
+
1823
+ TriangularTransactionLawReference
1824
+ The law reference for transactions where isTriangularTransaction is True
1825
+
1826
+ purpose
1827
+ The purpose of the tax, e.g., tax (tax), custom duty, shippingTax,
1828
+ specialHandlingTax, etc.
1829
+
1830
+ category
1831
+ The tax category, Sales tax (sales), Use tax (usage), VAT (vat),
1832
+ GST (gst) are defined categories. Other values are permitted.
1833
+
1834
+ percentageRate
1835
+ The tax rate in number of percentage.
1836
+
1837
+ isVatRecoverable
1838
+ True if the VAT is recoverable. Default is false.
1839
+
1840
+ taxPointDate
1841
+ refers to the date on which VAT becomes due.
1842
+
1843
+ paymentDate
1844
+ indicate the date when payment must be made.
1845
+
1846
+ isTriangularTransaction
1847
+ True if the transaction is triangular. Default is false.
1848
+ -->
1849
+ <!ELEMENT TaxDetail (TaxableAmount?, TaxAmount, TaxLocation?, Description?,
1850
+ TriangularTransactionLawReference?)>
1851
+ <!ATTLIST TaxDetail
1852
+ purpose %string; #IMPLIED
1853
+ category %string; #REQUIRED
1854
+ percentageRate %r8; #IMPLIED
1855
+ isVatRecoverable (yes) #IMPLIED
1856
+ taxPointDate %datetime.tz; #IMPLIED
1857
+ paymentDate %datetime.tz; #IMPLIED
1858
+ isTriangularTransaction (yes) #IMPLIED
1859
+ >
1860
+
1861
+ <!--
1862
+ Definition of a cXML Tax item. This represents what a Tax element should
1863
+ be in the classic notion of a line on a PO or Invoice. It can also
1864
+ represent a per-lineitem tax element depending on where it appears
1865
+ (inside of a item ELEMENT or inside of a something like a supplierOrder
1866
+ ELEMENT).
1867
+
1868
+ Represents a tax item in the shopping basket. There could be one of these
1869
+ for the entire order, or one per lineitem.
1870
+
1871
+ The total amount of taxes for the line item or order should be reflected
1872
+ in the Money element. The breakdown of taxes, for example, tax on shipping
1873
+ or tax on goods should be represented in separate TaxDetail elements.
1874
+ -->
1875
+ <!ELEMENT Tax (Money, Description, TaxDetail*)>
1876
+
1877
+ <!-- Item Elements -->
1878
+ <!--
1879
+ The representation of a line item as it needs to be for sending to a
1880
+ supplier.
1881
+
1882
+ quantity
1883
+ How many items are desired. Supplier and Commodity level items in an order of type
1884
+ "blanket" will use a default value of "1". The quantity in this case will not be
1885
+ used to compute the sub total. The MaxAmount in the BlanketItemDetail will be
1886
+ used to indicate any line level amounts.
1887
+ lineNumber
1888
+ Position (counting from 1) of this item in an order. Used to
1889
+ maintain a reference between items in create and update OrderRequest
1890
+ documents.
1891
+ requisitionID
1892
+ The buyers system requisition id for this line item. It might be the
1893
+ same as orderID, and it might not be included at all. Must not be
1894
+ included if requisitionID is specified in the OrderRequestHeader.
1895
+ requestedDeliveryDate
1896
+ The date this item was requested for delivery.
1897
+ agreementItemNumber
1898
+ The corresponding Item Number of the Item in the Master Agreement if this is
1899
+ a 'release' order item.
1900
+ -->
1901
+ <!ELEMENT ItemOut (ItemID, Path?, (ItemDetail|BlanketItemDetail)?, (SupplierID | SupplierList)?, ShipTo?, Shipping?,
1902
+ Tax?, SpendDetail?, Distribution*, Contact*, Comments?)>
1903
+ <!ATTLIST ItemOut
1904
+ quantity %r8; #REQUIRED
1905
+ lineNumber %uint; #IMPLIED
1906
+ requisitionID %string; #IMPLIED
1907
+ agreementItemNumber %string; #IMPLIED
1908
+ requestedDeliveryDate %date; #IMPLIED
1909
+ isAdHoc (yes) #IMPLIED
1910
+ >
1911
+
1912
+ <!--
1913
+ The representation of a line item as it needs to be for sending to a
1914
+ buyer.
1915
+
1916
+ quantity
1917
+ How many items are desired.
1918
+ lineNumber
1919
+ Position (counting from 1) of this item in an order. Used to
1920
+ maintain a reference between items in create and update OrderRequest
1921
+ documents.
1922
+ -->
1923
+ <!ELEMENT ItemIn (ItemID, Path?, ItemDetail, SupplierID?, ShipTo?, Shipping?, Tax?, SpendDetail?)>
1924
+ <!ATTLIST ItemIn
1925
+ quantity %r8; #REQUIRED
1926
+ lineNumber %uint; #IMPLIED
1927
+ >
1928
+
1929
+ <!--
1930
+ StatusUpdate for Confirmation (type=RequestToPay) request.
1931
+
1932
+ transactionTimestamp
1933
+ time when the XMLPay transaction was submitted
1934
+
1935
+ transactionID
1936
+ an identifier assisgned to the transaction by the payment processing gateway
1937
+
1938
+ authorizationID
1939
+ the authorization code for the transaction provided by the bank
1940
+
1941
+ isFailed
1942
+ should have a status code greater than zero. Zero implies a successful transaction.
1943
+ -->
1944
+ <!ELEMENT PaymentStatus (PCard, Total, Shipping?, Tax?, Extrinsic*)>
1945
+ <!ATTLIST PaymentStatus
1946
+ orderID %string; #REQUIRED
1947
+ transactionTimestamp %datetime.tz; #REQUIRED
1948
+ type (Authorization| Settlement| Sale| Credit) #REQUIRED
1949
+ isFailed (yes) #IMPLIED
1950
+ transactionID %string; #IMPLIED
1951
+ authorizationID %string; #IMPLIED
1952
+ >
1953
+
1954
+ <!--
1955
+ Partial amount paid against an InvoiceDetail request. Used in InvoiceStatus.
1956
+ If this element exists in an InvoiceStatus element, it should mean that the buyer
1957
+ does not pay the full amount as the InvoiceDetail request specified.
1958
+ -->
1959
+ <!ELEMENT PartialAmount (Money)>
1960
+
1961
+ <!--
1962
+ StatusUpdate for InvoiceDetail request.
1963
+
1964
+ InvoiceIDInfo
1965
+ ID of an invoice known to the supplier system. This attribute is used to reference an invoice in StatusUpdateRequest when DocumentReference is omitted.
1966
+
1967
+ PartialAmount
1968
+ The partial amount paid against the InvoiceDetail document. This attribute is
1969
+ only relevant when the status type is "paid".
1970
+
1971
+ Comments
1972
+ Comments associated with the status update.
1973
+
1974
+ type
1975
+ Type of the invoice status.
1976
+ processing - The invoice is received and being processed.
1977
+ canceled - The invoice has been canceled.
1978
+ reconciled - The invoice is reconciled.
1979
+ rejected - The invoice is rejected.
1980
+ paying - The invoice is being paid.
1981
+ paid - The InvoiceDetail request is paid.
1982
+ -->
1983
+
1984
+ <!ELEMENT InvoiceStatus (InvoiceIDInfo?, PartialAmount?, Comments*)>
1985
+ <!ATTLIST InvoiceStatus
1986
+ type (processing | canceled | reconciled | rejected | paying | paid) #REQUIRED
1987
+ >
1988
+
1989
+ <!-- OrderRequest* Elements -->
1990
+ <!--
1991
+ Definition of an order. This is the data that is sent to the supplier
1992
+ to have them place an order in their order management system. The new
1993
+ world order equivalent of a PO.
1994
+ -->
1995
+ <!ELEMENT OrderRequest (OrderRequestHeader, ItemOut+)>
1996
+
1997
+ <!--
1998
+ Header of an order. This is the data that is sent to the supplier
1999
+ to have them place an order in their order management system. Money
2000
+ represents the total amount of this order.
2001
+
2002
+ orderID
2003
+ The buyer system orderID for this request. This is an internal
2004
+ Buyer unique number.
2005
+
2006
+ orderVersion
2007
+ The buyer system order version number for this request. Relevant when
2008
+ the OrderRequest represents a change order request. The version number
2009
+ for the original document should be 1 and should be incremented by 1 for
2010
+ each subsequent version (2,3,4...).
2011
+
2012
+ isInternalVersion
2013
+ A value of yes indicates that this OrderRequest is a version whose changes from
2014
+ the previous version are deemed internal to the buyer system. Relevant when the
2015
+ version being sent to the supplier is not the first version.
2016
+
2017
+ orderDate
2018
+ The date and time the order request was created.
2019
+
2020
+ type
2021
+ The type of the order request. Defaults to "new".
2022
+
2023
+ requisitionID
2024
+ The buyers system requisition id for this entire order. It might be
2025
+ the same as orderID, and it might not be included at all. Must not
2026
+ be included if requisitionID is specified in any ItemOut elements.
2027
+
2028
+ shipComplete
2029
+ Optional preference for "hold until complete" processing. Defaults
2030
+ to shipping when available if not specified. Future versions of the
2031
+ protocol may extend the datatype of this attribute to include
2032
+ additional possible values (such as "unlessGreatlyBackOrdered"?).
2033
+ orderType
2034
+ "release", indicates that this is a Release Order from an existing
2035
+ Master Agreement/ Contract. Default is regular. Type "blanket" indicates
2036
+ that this order is a Blanket Order.
2037
+ releaseRequired
2038
+ "yes" if the blanket order allows released. Currently used only if
2039
+ orderType is "blanket".
2040
+ effectiveDate
2041
+ Date the order is available for ordering. If orderType is "blanket",
2042
+ effectiveDate is required. Otherwise it is optional. Currently only
2043
+ used with blanket orders.
2044
+ expirationDate
2045
+ Date the order is no longer available. If not defined, end date is open
2046
+ ended. Currently only used with blanket orders.
2047
+ agreementID
2048
+ Identifies associated agreement corresponding to the Release Order.
2049
+ At an implementation level it has to be validated that if the orderType
2050
+ is 'release' then the appropriate agreementID is also provided.
2051
+ agreementPayloadID
2052
+ Optional PayloadID for the corresponding Master Agreement.
2053
+
2054
+ parentAgreementID
2055
+ Used only in the context of a Order of type "blanket". This identifies the
2056
+ parent blanket order if the current order is part of an hierarchy.
2057
+
2058
+ parentAgreementPayloadID
2059
+ Optional PayloadID for the corresponding Master Agreement.
2060
+
2061
+ Total
2062
+ If the Order is of type "blanket", the Total element is not used to compute
2063
+ the sum of the item level subtotals. The total is used to indicate the maximum
2064
+ commitment with the supplier. The total will not add upto the individual item
2065
+ level sub total or MaxAmounts. The item level MaxAmounts should not exceed the
2066
+ header level total. If the item level MaxAmount is not specified it is assumed
2067
+ that the Item level maximum amount is the same as the Total.
2068
+
2069
+ The contained DocumentReference element would appear in a document only
2070
+ when the type is "update" or "delete". In that case, the
2071
+ DocumentReference would reference the most recent OrderRequest document
2072
+ for the order. For example when an order is created, updated and then
2073
+ deleted, the final document should contain a DocumentReference
2074
+ referring to the OrderRequest with type="update". That document would,
2075
+ in turn, refer to the original (type="new") OrderRequest document.
2076
+ -->
2077
+ <!ELEMENT OrderRequestHeader (Total, ShipTo?, BillTo, Shipping?, Tax?,
2078
+ Payment?, PaymentTerm*, Contact*, Comments?, Followup?,
2079
+ DocumentReference?, SupplierOrderInfo?, Extrinsic*)>
2080
+ <!ATTLIST OrderRequestHeader
2081
+ orderID %string; #REQUIRED
2082
+ orderDate %datetime.tz; #REQUIRED
2083
+ orderType (release| regular | blanket) "regular"
2084
+ releaseRequired (yes) #IMPLIED
2085
+ type (new | update | delete) "new"
2086
+ orderVersion %number; #IMPLIED
2087
+ isInternalVersion (yes) #IMPLIED
2088
+ parentAgreementID %string; #IMPLIED
2089
+ parentAgreementPayloadID %string; #IMPLIED
2090
+ effectiveDate %datetime.tz; #IMPLIED
2091
+ expirationDate %datetime.tz; #IMPLIED
2092
+ agreementID %string; #IMPLIED
2093
+ agreementPayloadID %string; #IMPLIED
2094
+ requisitionID %string; #IMPLIED
2095
+ shipComplete (yes) #IMPLIED
2096
+ >
2097
+ <!--
2098
+ Definition of a Master Agreement. This is the electronic document representing the
2099
+ Master Agreement that was created and agreed upon in the Buying organizations.
2100
+ -->
2101
+ <!ELEMENT MasterAgreementRequest (MasterAgreementRequestHeader, AgreementItemOut*)>
2102
+
2103
+ <!--
2104
+ Header of an Agreement. This is the header level information in the Agreement.
2105
+ agreementID
2106
+ The buyer system agreementID for this request. the Master Agreement Number in Buyer.
2107
+ agreementDate
2108
+ The date and time the agreement request was created.
2109
+ This is different from the effective and expiry date of the agreement.
2110
+ agreementType
2111
+ Identifies if this is a Value based agreement or quantity based Agreement.
2112
+ requestType
2113
+ The type of the agreement request. Defaults to "new".
2114
+ effectiveDate
2115
+ Date the Master Agreement is available for ordering/releases.
2116
+ expirationDate
2117
+ Date the Master Agreement is no longer available.
2118
+ parentAgreementPayloadID
2119
+ PayloadID for the corresponding parent document that this agreement is derived from.
2120
+ operation:
2121
+ "delete" operation will be used to cancel an existing Master Agreement, the
2122
+ assumption here is that the delete request will be an exact replica of the
2123
+ original request.
2124
+ "new" operation identifies a new MasterAgreement transaction.
2125
+ "update" operation identified an update to an existing transaction.
2126
+ the DocumentReference attribute should be used to indicate the Orignal
2127
+ Document information.
2128
+ Note:
2129
+ Use "Contact" element to supply any additional Address or Location information.
2130
+ -->
2131
+
2132
+ <!ELEMENT MasterAgreementRequestHeader (MaxAmount?, MinAmount?,
2133
+ MaxReleaseAmount?, MinReleaseAmount?,
2134
+ Contact*,Comments?, DocumentReference?, Extrinsic*)>
2135
+ <!ATTLIST MasterAgreementRequestHeader
2136
+ agreementID %string; #REQUIRED
2137
+ agreementDate %datetime.tz; #REQUIRED
2138
+ type (value | quantity) "value"
2139
+ effectiveDate %datetime.tz; #REQUIRED
2140
+ expirationDate %datetime.tz; #REQUIRED
2141
+ parentAgreementPayloadID %string; #IMPLIED
2142
+ operation (new | update | delete) "new"
2143
+ >
2144
+
2145
+ <!--
2146
+ The representation of a agreement line item as it needs to be for sending to a
2147
+ supplier.
2148
+ maxQuantity
2149
+ maximum quantity for this particular lineItem
2150
+ minQuantity
2151
+ minimum quantity for this particular lineItem
2152
+ maxReleaseQuantity
2153
+ maximum quantity per release for this particular lineItem
2154
+ minReleaseQuantity
2155
+ minimum quantity per release for this particular lineItem
2156
+
2157
+ Note :
2158
+ The #lineNumber attribute in the <ItemOut> will be used to specify the corresponding
2159
+ lineNumber on the Master Agreement in the Procurement Application.
2160
+ At an implementation, level checks should be made to validate this.
2161
+ Note :
2162
+ The quantity attribute in the ItemOut tag should be set to one and ignored at
2163
+ the Mater Agreement implementation processing stage.
2164
+ Note :
2165
+ The MaxReleaseAmount/Quantity and MinReleaseAmount/Quantity at an item level i
2166
+ indicate the ItemLevel amounts and quantities per release.
2167
+ -->
2168
+ <!ELEMENT AgreementItemOut (MaxAmount?, MinAmount?, MaxReleaseAmount?, MinReleaseAmount?, ItemOut)>
2169
+ <!ATTLIST AgreementItemOut
2170
+ maxQuantity %r8; #IMPLIED
2171
+ minQuantity %r8; #IMPLIED
2172
+ maxReleaseQuantity %r8; #IMPLIED
2173
+ minReleaseQuantity %r8; #IMPLIED
2174
+ >
2175
+
2176
+ <!--
2177
+ The maximum amount for something.
2178
+ -->
2179
+ <!ELEMENT MaxAmount (Money)>
2180
+
2181
+ <!--
2182
+ The minimum amount for something.
2183
+ -->
2184
+ <!ELEMENT MinAmount (Money)>
2185
+
2186
+ <!--
2187
+ The contractual maximum amount per Release of this Master Agreement.
2188
+ -->
2189
+ <!ELEMENT MaxReleaseAmount (Money)>
2190
+
2191
+ <!--
2192
+ The contractual minimum amount per Release of this Master Agreement
2193
+ -->
2194
+ <!ELEMENT MinReleaseAmount (Money)>
2195
+
2196
+
2197
+ <!--
2198
+ The maximum quantity for something.
2199
+ -->
2200
+ <!ELEMENT MaxQuantity (#PCDATA)> <!-- number -->
2201
+
2202
+ <!--
2203
+ The minimum quantity for something.
2204
+ -->
2205
+ <!ELEMENT MinQuantity (#PCDATA)> <!-- number -->
2206
+
2207
+
2208
+ <!-- Followup
2209
+
2210
+ Location to which future StatusUpdateRequest documents should be
2211
+ posted. In general, this is the input location for any later
2212
+ documents which reference the current OrderRequest document.
2213
+ -->
2214
+ <!ELEMENT Followup (URL)>
2215
+
2216
+ <!-- PunchOut* Elements -->
2217
+ <!--
2218
+ Definition of a PunchOut Setup Request. This is the data that is sent
2219
+ to the external system that the procurement application is going to
2220
+ extract catalog data from.
2221
+
2222
+ The BrowserFormPost element contains the URL we would like the browser
2223
+ re-directed to when the PunchOut shopping experience is finished (where
2224
+ the PunchOutOrder message should be returned).
2225
+ -->
2226
+ <!ELEMENT PunchOutSetupRequest (BuyerCookie, Extrinsic*, BrowserFormPost?,
2227
+ Contact*, SupplierSetup?, ShipTo?,
2228
+ SelectedItem?, ItemOut*)>
2229
+ <!ATTLIST PunchOutSetupRequest
2230
+ operation (create | inspect | edit | source) #REQUIRED
2231
+ >
2232
+
2233
+ <!ELEMENT BuyerCookie ANY> <!-- any valid XML data -->
2234
+
2235
+ <!ELEMENT SelectedItem (ItemID)>
2236
+ <!ELEMENT SupplierSetup (URL)>
2237
+
2238
+ <!ELEMENT PunchOutSetupResponse (StartPage)>
2239
+
2240
+ <!--
2241
+ Definition of a PunchOut Order Message. This is the data that is sent
2242
+ back to the procurement application from the external system that the
2243
+ PunchOut Request was targeted at.
2244
+ -->
2245
+ <!ELEMENT PunchOutOrderMessage (BuyerCookie, PunchOutOrderMessageHeader,
2246
+ ItemIn*)>
2247
+
2248
+ <!--
2249
+ Header of a PunchOut Order Request. This is the data that is sent from
2250
+ the supplier to transfer the supplier acquired shopping basket back to
2251
+ the buyer system.
2252
+
2253
+ operationAllowed
2254
+ Highest operation allowed on the PunchOut shopping basket.
2255
+ "create" allows only later OrderRequest operations on these items.
2256
+ "inspect" adds a PunchOutSetupRequest with operation="inspect".
2257
+ And, "edit" allows operation="edit" in that later Setup request.
2258
+
2259
+ quoteStatus
2260
+ "pending" - Identifies that the transaction is still pending
2261
+ "final" - Identifies that the transaction is complete
2262
+ -->
2263
+ <!ELEMENT PunchOutOrderMessageHeader (SourcingStatus?, Total, ShipTo?, Shipping?, Tax?, SupplierOrderInfo?)>
2264
+ <!ATTLIST PunchOutOrderMessageHeader
2265
+ operationAllowed (create | inspect | edit) #REQUIRED
2266
+ quoteStatus (pending|final) "final"
2267
+ >
2268
+
2269
+ <!-- ====
2270
+ Other small Request elements.
2271
+ ==== -->
2272
+
2273
+ <!--
2274
+ Request to update the status of an earlier transaction.
2275
+
2276
+ DocumentReference
2277
+ A reference by payloadID to a cXML document to be updated. This
2278
+ element can be omitted only when InvoiceStatus is specified and
2279
+ the InvoiceStatus contains InvoiceIDInfo.
2280
+
2281
+ -->
2282
+ <!ENTITY % cxml.statuses "(PaymentStatus |
2283
+ SourcingStatus | InvoiceStatus)">
2284
+ <!ELEMENT StatusUpdateRequest (DocumentReference?, Status, (%cxml.statuses;)?)>
2285
+
2286
+ <!--
2287
+ A reference to an attachment containing cXML document.
2288
+
2289
+ Attachment
2290
+ A reference to the attachment containing a cXML document. The
2291
+ attachment must be either a single, complete cXML document or another
2292
+ MIME envelope containing a single, complete cXML document with
2293
+ attachments.
2294
+ -->
2295
+ <!ELEMENT cXMLAttachment (Attachment)>
2296
+
2297
+ <!--
2298
+ Request to forward a cXML document to another party. This Request
2299
+ occurs in multiple DTD files and is used depending on where (in which
2300
+ DTD) the forwarded message resides.
2301
+
2302
+ cXMLAttachment
2303
+ A reference to the attachment containing the cXML document being
2304
+ forwarded. Refer to cXMLAttachment for more details.
2305
+
2306
+ cXML
2307
+ Deprecated - Do Not Use.
2308
+ -->
2309
+ <!ELEMENT CopyRequest (cXMLAttachment | cXML)>
2310
+
2311
+ <!--
2312
+ Status for a pre-existing sourcing transaction. The textual content indicates
2313
+ the display information. "action" attribute defines the context of this message
2314
+ based on the value.
2315
+
2316
+ approve : Approve the pending transaction
2317
+ deny : deny pending transaction
2318
+ cancel : cancel any preexisting transaction.
2319
+
2320
+ -->
2321
+ <!ELEMENT SourcingStatus (#PCDATA)>
2322
+ <!ATTLIST SourcingStatus
2323
+ action (approve | cancel | deny ) #IMPLIED
2324
+ xml:lang %xmlLangCode; #REQUIRED>
2325
+ <!--
2326
+ For cXML license agreement information, please see
2327
+ http://www.cxml.org/home/license.asp
2328
+
2329
+ $Id: //ariba/cxml/schema/Modules/Transaction.mod#5 $
2330
+ -->
2331
+
2332
+ <!--
2333
+ For better definitions of these Elements/Entities, refer to the cXML
2334
+ Transaction Specification documents.
2335
+ -->
2336
+
2337
+ <!-- Basic financial elements used throughout -->
2338
+
2339
+ <!--
2340
+ The following defines a list of money amounts.
2341
+
2342
+ DepositAmount
2343
+ The amount of deposit or prepayment.
2344
+
2345
+ SubtotalAmount
2346
+ The subtotal amount.
2347
+
2348
+ DiscountAmount
2349
+ Defines the discount amount
2350
+
2351
+ SpecialHandlingAmount
2352
+ The special handling amount.
2353
+
2354
+ ShippingAmount
2355
+ The shipping amount.
2356
+
2357
+ GrossAmount
2358
+ The gross amount.
2359
+
2360
+ NetAmount
2361
+ The net amount.
2362
+
2363
+ DueAmount
2364
+ The due amount.
2365
+
2366
+ FeeAmount
2367
+ Defines gross amount of the fee associated with a purchase
2368
+ in original currency.
2369
+ -->
2370
+ <!ELEMENT DepositAmount (Money)>
2371
+
2372
+ <!ELEMENT SubtotalAmount (Money)>
2373
+
2374
+ <!ELEMENT SpecialHandlingAmount (Money, Description?)>
2375
+
2376
+ <!ELEMENT ShippingAmount (Money)>
2377
+
2378
+ <!ELEMENT GrossAmount (Money)>
2379
+
2380
+ <!ELEMENT NetAmount (Money)>
2381
+
2382
+ <!ELEMENT DueAmount (Money)>
2383
+
2384
+ <!ELEMENT DiscountAmount (Money)>
2385
+
2386
+ <!ELEMENT FeeAmount (Money)>
2387
+
2388
+ <!--
2389
+ Defines a Purchasing Card element used for payment
2390
+ -->
2391
+ <!ELEMENT PCard (PostalAddress?)>
2392
+ <!ATTLIST PCard
2393
+ number %number; #REQUIRED
2394
+ expiration %date; #REQUIRED
2395
+ name %string; #IMPLIED
2396
+ >
2397
+
2398
+ <!--
2399
+ For cXML license agreement information, please see
2400
+ http://www.cxml.org/home/license.asp
2401
+
2402
+ $Id$
2403
+ -->
2404
+
2405
+ <!--
2406
+ This element captures spend detail information. SpendDetail can
2407
+ be used in the ItemIn and ItemOut and for the following types of
2408
+ messages:
2409
+
2410
+ PunchOutSetupRequest
2411
+ PunchOutOrderMessage
2412
+ OrderRequest
2413
+ ConfirmationRequest
2414
+
2415
+ But not for:
2416
+
2417
+ MasterAgreementRequest
2418
+
2419
+ TravelDetail
2420
+ Travel details for the current travel line item.
2421
+
2422
+ LaborDetail
2423
+ Labor details for the current temporary labor line item.
2424
+
2425
+ FeeDetail
2426
+ Fee details for the current fee line item.
2427
+
2428
+ Extrinsic
2429
+ Detail information for the any undefined spend category. The name
2430
+ attribute of the Extrinsic element should specify the type of the
2431
+ spend category (e.g., (PrintDetail, ProjectLaborDetail))
2432
+
2433
+ -->
2434
+ <!ELEMENT SpendDetail (TravelDetail | FeeDetail | LaborDetail | Extrinsic)>
2435
+
2436
+ <!--
2437
+ FeeDetail contains additional information about a line item for a fee,
2438
+ which may or may not be recurring.
2439
+
2440
+ UnitRate
2441
+ The amount(s) to be paid per unit (of time or other measure).
2442
+ In the case of multiple UnitRates (i.e., a "rate schedule"), it is
2443
+ customary and expected that each UnitRate will include a
2444
+ TermReference to distinguish them.
2445
+
2446
+ Period
2447
+ The Period of time over which the fee is charged, if applicable.
2448
+
2449
+ isRecurring
2450
+ Indicates that the fee is recurring (charged more than once).
2451
+ -->
2452
+ <!ELEMENT FeeDetail (UnitRate+, Period?) >
2453
+ <!ATTLIST FeeDetail
2454
+ isRecurring (yes) #IMPLIED
2455
+ >
2456
+ <!--
2457
+ For cXML license agreement information, please see
2458
+ http://www.cxml.org/home/license.asp
2459
+
2460
+ $Id: $
2461
+ -->
2462
+
2463
+ <!--
2464
+ LaborDetail contains information about an item for a temporary
2465
+ labor engagement.
2466
+
2467
+ UnitRate
2468
+ The amount(s) to be paid per unit (of time or other measure).
2469
+ In the case of multiple UnitRates (i.e., a "rate schedule"), it is
2470
+ customary and expected that each UnitRate will include a
2471
+ TermReference to distinguish them.
2472
+
2473
+ Period
2474
+ The Period of time over which the service occurs.
2475
+
2476
+ Contractor
2477
+ Identifies the contractor being engaged
2478
+
2479
+ JobDescription
2480
+ Description of the job or work to be performed.
2481
+
2482
+ Supervisor
2483
+ The person who is expected to supervise the contractor.
2484
+
2485
+ WorkLocation
2486
+ Place where the work is expected to be performed.
2487
+
2488
+ supplierReferenceCode
2489
+ The supplier's quote or proposal id, for cross-reference.
2490
+ -->
2491
+ <!ELEMENT LaborDetail (UnitRate+, Period, Contractor?, JobDescription?, Supervisor?, WorkLocation?, Extrinsic*)>
2492
+ <!ATTLIST LaborDetail
2493
+ supplierReferenceCode %string; #IMPLIED
2494
+ >
2495
+ <!-- Text description of a job (service)-->
2496
+ <!ELEMENT JobDescription (Description)>
2497
+ <!-- Contact information for the person supervising a job (service)-->
2498
+ <!ELEMENT Supervisor (Contact)>
2499
+ <!-- Address of the location where a service is to be performed-->
2500
+ <!ELEMENT WorkLocation (Address)>
2501
+ <!--
2502
+ Definition of a Contractor used in the context of temp labor.
2503
+ The contractor is uniquely identified by a contractor identifier.
2504
+ The piece of identification for a contractor is exchanged between
2505
+ the buyer and the supplier prior to sending out order/timecards.
2506
+ -->
2507
+ <!--
2508
+ Definition of a Contractor used in the context of temp labor.
2509
+ The contractor is uniquely identified by a contractor identifier.
2510
+ The piece of identification for a contractor is exchanged between
2511
+ the buyer and the supplier prior to sending out order/timecards.
2512
+ -->
2513
+ <!ELEMENT Contractor (ContractorIdentifier, Contact)>
2514
+
2515
+ <!--
2516
+ Definition of a ContractorIdentifier. uniquely identifies a contractor.
2517
+
2518
+ domain
2519
+ in what domain the identity is represented. This is for the
2520
+ end systems to know who assigned the id. buyerReferenceID
2521
+ implies that it is something generated by the buyer system
2522
+ and supplierReferenceID implies that it is something generated
2523
+ by the supplier system/entered by the supplier.
2524
+ -->
2525
+ <!ELEMENT ContractorIdentifier (#PCDATA)>
2526
+ <!ATTLIST ContractorIdentifier
2527
+ domain (supplierReferenceID|buyerReferenceID) #REQUIRED
2528
+ >
2529
+
2530
+ <!--
2531
+ For cXML license agreement information, please see
2532
+ http://www.cxml.org/home/license.asp
2533
+
2534
+ $Id: //ariba/cxml/schema/Modules/Reference.mod#6 $
2535
+ -->
2536
+
2537
+ <!--
2538
+ For better definitions of these Elements/Entities, refer to the cXML
2539
+ User's Guide and related documents.
2540
+ -->
2541
+
2542
+ <!--
2543
+ The OrderReference element provides a clear reference to a prior
2544
+ OrderRequest document. While the contained DocumentReference provides
2545
+ an unambiguous reference, the additional attributes of the
2546
+ OrderReference may allow the ConfirmationRequest and ShipNoticeRequest
2547
+ to be viewed independently.
2548
+
2549
+ orderID
2550
+ The buyer system orderID for this request. Basically, what the PO
2551
+ number is today. If present, must be copied directly from the
2552
+ referenced OrderRequest document's OrderRequestHeader.
2553
+ orderDate
2554
+ The date and time the order request was created. If present, must
2555
+ be copied directly from the referenced OrderRequest document's
2556
+ OrderRequestHeader.
2557
+ -->
2558
+ <!ELEMENT OrderReference (DocumentReference)>
2559
+ <!ATTLIST OrderReference
2560
+ orderID %string; #IMPLIED
2561
+ orderDate %datetime.tz; #IMPLIED
2562
+ >
2563
+
2564
+ <!--
2565
+ Defines the ID of an order known to the buyer system.
2566
+
2567
+ orderID
2568
+ The id of an order known to the buyer system. Basically,
2569
+ what the PO number is today.
2570
+
2571
+ orderDate
2572
+ The date and time the order was created.
2573
+ -->
2574
+ <!ELEMENT OrderIDInfo EMPTY>
2575
+ <!ATTLIST OrderIDInfo
2576
+ orderID %string; #REQUIRED
2577
+ orderDate %datetime.tz; #IMPLIED
2578
+ >
2579
+
2580
+ <!--
2581
+ Defines information related to an order.
2582
+
2583
+ OrderReference
2584
+ The reference to the order being paid.
2585
+
2586
+ OrderIDInfo
2587
+ The buyer system order id of the order.
2588
+ -->
2589
+ <!ELEMENT OrderInfo (OrderReference | OrderIDInfo)>
2590
+
2591
+
2592
+ <!--
2593
+ The InvoiceReference element provides a clear reference to a prior
2594
+ InvoiceDetailRequest document.
2595
+
2596
+ invoiceID
2597
+ The suplier system invoiceID for this request. Basically, what
2598
+ the Invoice number is today. If present, must be copied
2599
+ directly from the referenced InvoiceDetailRequest document's
2600
+ InvoiceDetailRequestHeader.
2601
+
2602
+ invoiceDate
2603
+ The invoice date.
2604
+ -->
2605
+ <!ELEMENT InvoiceReference (DocumentReference)>
2606
+ <!ATTLIST InvoiceReference
2607
+ invoiceID %string; #IMPLIED
2608
+ invoiceDate %datetime.tz; #IMPLIED
2609
+ >
2610
+
2611
+ <!--
2612
+ Defines the ID of an invoice known to the supplier system.
2613
+
2614
+ invoiceID
2615
+ The id of an invoice known to the supplier system.
2616
+
2617
+ invoiceDate
2618
+ The invoice date.
2619
+ -->
2620
+ <!ELEMENT InvoiceIDInfo EMPTY>
2621
+ <!ATTLIST InvoiceIDInfo
2622
+ invoiceID %string; #REQUIRED
2623
+ invoiceDate %datetime.tz; #IMPLIED
2624
+ >
2625
+
2626
+ <!--
2627
+ Defines the ID of a master agreement known to the buyer system.
2628
+ In InvoiceDetailRequest, this element identifies the master agreement
2629
+ of the release order to be invoiced.
2630
+
2631
+ agreementID
2632
+ The id of a master agreement known to the buyer system. Basically,
2633
+ what the master agreement number is today.
2634
+
2635
+ agreementDate
2636
+ The date and time the master agreement request was created.
2637
+ -->
2638
+ <!ELEMENT MasterAgreementIDInfo EMPTY>
2639
+ <!ATTLIST MasterAgreementIDInfo
2640
+ agreementID %string; #REQUIRED
2641
+ agreementDate %datetime.tz; #IMPLIED
2642
+ >
2643
+
2644
+ <!--
2645
+ Defines a reference to an earlier MasterAgreementRequest document.
2646
+ In InvoiceDetailRequest, this element identifies the master agreement
2647
+ of the release order to be invoiced.
2648
+
2649
+ DocumentReference
2650
+ The reference to an earlier MasterAgreementRequest document.
2651
+
2652
+ agreementID
2653
+ The id of a master agreement known to the buyer system. Basically,
2654
+ what the master agreement number is today.
2655
+
2656
+ agreementDate
2657
+ The date and time the master agreement request was created.
2658
+ -->
2659
+ <!ELEMENT MasterAgreementReference (DocumentReference)>
2660
+ <!ATTLIST MasterAgreementReference
2661
+ agreementID %string; #IMPLIED
2662
+ agreementDate %datetime.tz; #IMPLIED
2663
+ >
2664
+
2665
+ <!--
2666
+ Identifies the carrier who will transport a shipment.
2667
+
2668
+ domain
2669
+ Domain in which this value has meaning. Recognized domains
2670
+ include:
2671
+ companyName - The legal name for this company. In some cases, this
2672
+ could also be provided in a Contact element with role
2673
+ "carrierCorporate". That option should be reserved for cases
2674
+ in which additional detail about the carrier appears in this
2675
+ element.
2676
+ SCAC - Standard Carrier Alpha Code (see
2677
+ http://users.erols.com/nmfta/Codes.htm)
2678
+ IATA - International Air Transport Association (see
2679
+ http://www.iata.org)
2680
+ AAR - Association of American Railroads (see http://www.aar.org/)
2681
+ UIC - International Union of Railways (see
2682
+ http://www.uic.asso.fr/)
2683
+ EAN - European Article Numbering (see http://www.ean-ucc.org/)
2684
+ DUNS - D&B's Data Universal Numbering System (see
2685
+ http://www.dnb.com/dnbhome.htm)
2686
+ -->
2687
+ <!ELEMENT CarrierIdentifier (#PCDATA)> <!-- string -->
2688
+ <!ATTLIST CarrierIdentifier
2689
+ domain %string; #REQUIRED
2690
+ >
2691
+
2692
+ <!--
2693
+ Identifier that appears on a shipment and through which additional
2694
+ detail about the shipment may be retrieved. Defined by the carrier.
2695
+ Has meaning in the domain described by the CarrierIdentifier values.
2696
+ Therefore, CarrierIdentifier and ShipmentIdentifier should normally
2697
+ be used together.
2698
+
2699
+ Conceptually, this is a tracking number. Different carriers have
2700
+ different names for shipment identifiers. Some call it a way bill
2701
+ number, others call it a pro number, and still others call it a bill of
2702
+ lading. They all represent tracking numbers.
2703
+ -->
2704
+ <!ELEMENT ShipmentIdentifier (#PCDATA)> <!-- string -->
2705
+
2706
+
2707
+ <!--
2708
+ One language-specific string for the creator of an IdReference,
2709
+ e.g. IRS, BofA, UPS, Cisco, etc.
2710
+
2711
+ xml:lang
2712
+ The language or locale in which the name of the creator is written.
2713
+ -->
2714
+ <!ELEMENT Creator (#PCDATA)> <!-- string -->
2715
+ <!ATTLIST Creator
2716
+ xml:lang %xmlLangCode; #REQUIRED
2717
+ >
2718
+
2719
+ <!--
2720
+ Defines an ID reference. Within the application context (for example,
2721
+ a certain pair of buyer and supplier), the (identifier, domain) pair
2722
+ should be unique.
2723
+
2724
+ Creator
2725
+ The creator of this IdReference, e.g. BofA, UPS, Cisco, etc.
2726
+
2727
+ Description
2728
+ Textual description of the IdReference. For human readability.
2729
+
2730
+ identifier
2731
+ The unique identifier of the IdReference within the domain.
2732
+
2733
+ domain
2734
+ The domain of the IdReference. It should be one of the
2735
+ following:
2736
+ accountID, bankRoutingID, accountPayableID,
2737
+ accountReceivableID, bankAccountID, ibanID, abaRoutingNumber,
2738
+ bankNationalID, isoBicID, swiftID, bankBranchID, federalTaxID,
2739
+ stateTaxID, provincialTaxID, vatID, gstID, and taxExemptionID.
2740
+ supplierTaxID is deprecated and will be treated as federalTaxID.
2741
+ Other possible values could be 1099ID, courtRegisterID, etc.
2742
+ -->
2743
+ <!ELEMENT IdReference (Creator?, Description?)>
2744
+ <!ATTLIST IdReference
2745
+ identifier %string; #REQUIRED
2746
+ domain %string; #REQUIRED
2747
+ >
2748
+
2749
+ <!--
2750
+ Defines supplier sales order information related to an order.
2751
+
2752
+ This is also used in PunchOutOrderMessage to indicate that the
2753
+ supplier has created an order associated with the punchout order message.
2754
+ The buyer can later cancel the sales order by sending an OrderRequest
2755
+ of type "delete" that refers to the sales order by including the
2756
+ SupplierOrderInfo element in the OrderRequestHeader
2757
+
2758
+ orderID
2759
+ Supplier sales order id of this order.
2760
+ -->
2761
+ <!ELEMENT SupplierOrderInfo EMPTY>
2762
+ <!ATTLIST SupplierOrderInfo
2763
+ orderID %string; #REQUIRED
2764
+ >
2765
+
2766
+
2767
+ <!--
2768
+ The ShipNoticeReference element provides a clear reference to a prior
2769
+ ShipNoticeRequest document. While the contained DocumentReference provides
2770
+ an unambiguous reference, the additional attributes of the
2771
+ ShipNoticeReference may allow the ReceiptRequest to be viewed independently.
2772
+
2773
+ DocumentReference
2774
+ The reference to an earlier ShipNoticeRequest.
2775
+
2776
+ shipNoticeID
2777
+ Unique identifier of the referenced ShipNoticeRequest.
2778
+
2779
+ shipNoticeDate
2780
+ Date and time of the referenced ShipNoticeRequest.
2781
+ -->
2782
+ <!ELEMENT ShipNoticeReference (DocumentReference)>
2783
+ <!ATTLIST ShipNoticeReference
2784
+ shipNoticeID %string; #IMPLIED
2785
+ shipNoticeDate %datetime.tz; #IMPLIED
2786
+ >
2787
+
2788
+ <!--
2789
+ Defines ID of a Ship Notice known to the Buyer system.
2790
+
2791
+ shipNoticeID
2792
+ Unique identifier of the referenced ShipNoticeRequest.
2793
+
2794
+ shipNoticeDate
2795
+ Date and time of the referenced ShipNoticeRequest.
2796
+ -->
2797
+ <!ELEMENT ShipNoticeIDInfo EMPTY>
2798
+ <!ATTLIST ShipNoticeIDInfo
2799
+ shipNoticeID %string; #REQUIRED
2800
+ shipNoticeDate %datetime.tz; #IMPLIED
2801
+ >
2802
+ <!--
2803
+ For cXML license agreement information, please see
2804
+ http://www.cxml.org/home/license.asp
2805
+
2806
+ $Id: //ariba/cxml/schema/Modules/InvoiceDetail.mod#15 $
2807
+ -->
2808
+
2809
+ <!--
2810
+ For better definitions of these Elements/Entities, refer to the cXML
2811
+ User's Guide and related documents.
2812
+ -->
2813
+
2814
+ <!--
2815
+ Please note: In InvoiceDetailRequest, positive amounts are debit the
2816
+ buyer owes the supplier; negative amounts are credit given back to the
2817
+ buyer by the supplier. For example, the supplier can use a SubtotalAmount
2818
+ of -50 USD to indicate credit of 50 USD given back to the buyer.
2819
+
2820
+ Please also note that all amounts at invoice line level should add up
2821
+ to the total specified in InvoiceDetailSummary.
2822
+ -->
2823
+
2824
+ <!--
2825
+ Defines a party involved in invoicing, including
2826
+ Issuer Of Invoice (issuerOfInvoice), Sold to (soldTo), Bill to (billTo),
2827
+ Remit to (remitTo), etc. This element should NOT be used for specifying
2828
+ ship from and ship to. For that purpose, InvoiceDetailShipping should
2829
+ be used.
2830
+
2831
+ Contact
2832
+ Contact information of the invoice partner. Allowed contact
2833
+ roles include issuerOfInvoice, soldTo, billTo, remitTo.
2834
+
2835
+ IdReference
2836
+ Partner reference ID, including account #, ERP account payable ID,
2837
+ ERP account receivable ID, bank routing ID for remittance, supplier
2838
+ tax ID, VAT ID, 1099 ID, court register ID, tax exemption ID, etc.
2839
+ -->
2840
+ <!ELEMENT InvoicePartner (Contact, IdReference*)>
2841
+
2842
+ <!--
2843
+ Defines invoice header level indicators describing overall
2844
+ attributes of this invoice. By default, all indicators are false.
2845
+
2846
+ isHeaderInvoice
2847
+ True if this invoice uses InvoiceDetailHeaderOrder which contains
2848
+ header level invoice information without item details; false if this
2849
+ invoice uses InvoiceDetailOrder which contains item details.
2850
+
2851
+ isVatRecoverable
2852
+ True if this entire invoice is VAT-recoverable.
2853
+ -->
2854
+ <!ELEMENT InvoiceDetailHeaderIndicator EMPTY>
2855
+ <!ATTLIST InvoiceDetailHeaderIndicator
2856
+ isHeaderInvoice (yes) #IMPLIED
2857
+ isVatRecoverable (yes) #IMPLIED
2858
+ >
2859
+
2860
+ <!--
2861
+ Defines invoice line level indicators indicating certain
2862
+ information is provided at invoice line level (in InvoiceDetailItem
2863
+ or InvoiceDetailOrderSummary). By default, all indicators are false.
2864
+
2865
+ If an indicator indicates certain information (e.g. tax, shipping, etc.)
2866
+ will be provided at invoice line level, for invoice lines which do
2867
+ not provide such information, they will be assumed to have values of
2868
+ zero, or "not available", whichever is appropriate, for that information.
2869
+
2870
+ isTaxInLine
2871
+ True if tax info (Tax) is provided at invoice line level.
2872
+
2873
+ isSpecialHandlingInLine
2874
+ True if special handling info (InvoiceDetailLineSpecialHandling)
2875
+ is provided at invoice line level.
2876
+
2877
+ isShippingInLine
2878
+ True if shipping info (InvoiceDetailLineShipping) is provided
2879
+ at invoice line level.
2880
+
2881
+ isDiscountInLine
2882
+ True if discount info (InvoiceDetailDiscount) is provided
2883
+ at invoice line level.
2884
+
2885
+ isAccountingInLine
2886
+ True if accounting distribution info (Distribution) is provided at
2887
+ invoice line level. If isHeaderInvoice is true, this indicator must
2888
+ be false because Distribution is only available at item level.
2889
+ -->
2890
+ <!ELEMENT InvoiceDetailLineIndicator EMPTY>
2891
+ <!ATTLIST InvoiceDetailLineIndicator
2892
+ isTaxInLine (yes) #IMPLIED
2893
+ isSpecialHandlingInLine (yes) #IMPLIED
2894
+ isShippingInLine (yes) #IMPLIED
2895
+ isDiscountInLine (yes) #IMPLIED
2896
+ isAccountingInLine (yes) #IMPLIED
2897
+ >
2898
+
2899
+ <!--
2900
+ Defines information related to an order, including order
2901
+ reference and related master agreement reference, if any.
2902
+
2903
+ The various content options of InvoiceDetailOrderInfo are in order
2904
+ of preference, i.e., OrderReference is strongly recommended. If
2905
+ that is not possible, MasterAgreementReference, MasterAgreementIDInfo,
2906
+ OrderIDInfo, or SupplierOrderInfo should be used, in that order.
2907
+
2908
+ OrderReference
2909
+ The reference to the order being invoiced.
2910
+
2911
+ MasterAgreementReference
2912
+ The reference to the corresponding master agreement if
2913
+ the order being invoiced is a release.
2914
+
2915
+ MasterAgreementIDInfo
2916
+ The buyer system id of the corresponding master agreement if
2917
+ the order being invoiced is a release.
2918
+
2919
+ OrderIDInfo
2920
+ The buyer system order id of the order.
2921
+
2922
+ SupplierOrderInfo
2923
+ Supplier sales order info of this order.
2924
+ -->
2925
+ <!ELEMENT InvoiceDetailOrderInfo
2926
+ ( (OrderReference, (MasterAgreementReference | MasterAgreementIDInfo)?,
2927
+ SupplierOrderInfo?) |
2928
+ (MasterAgreementReference, OrderIDInfo?, SupplierOrderInfo?) |
2929
+ (MasterAgreementIDInfo, OrderIDInfo?, SupplierOrderInfo?) |
2930
+ (OrderIDInfo, SupplierOrderInfo?) |
2931
+ SupplierOrderInfo )>
2932
+
2933
+ <!--
2934
+ Defines the shipping information related to this invoice.
2935
+
2936
+ Contact
2937
+ The ship from and ship to addresses. Both ship from and ship to
2938
+ must be specified. Allowed contact roles are shipFrom, shipTo and
2939
+ carrierCorporate.
2940
+
2941
+ CarrierIdentifier
2942
+ This list may include multiple identifiers for the same carrier.
2943
+ Elements in this list may appear in any order. A particular
2944
+ identification domain (CarrierIdentifier@domain attribute
2945
+ value) must not appear more than once in an InvoiceDetailShipping
2946
+ element. The identification provided by all elements of the
2947
+ CarrierIdentifier list must correspond to the same company.
2948
+
2949
+ ShipmentIdentifier
2950
+ The tracking number of this shipment.
2951
+
2952
+ DocumentReference
2953
+ The reference to an earlier ShipNoticeRequest.
2954
+
2955
+ shippingDate
2956
+ The date and time this shipment leaves the supplier.
2957
+ -->
2958
+ <!ELEMENT InvoiceDetailShipping (Contact, Contact+,
2959
+ (CarrierIdentifier+, ShipmentIdentifier)?,
2960
+ DocumentReference?)>
2961
+ <!ATTLIST InvoiceDetailShipping
2962
+ shippingDate %datetime.tz; #IMPLIED
2963
+ >
2964
+
2965
+ <!--
2966
+ Defines a payment term.
2967
+
2968
+ payInNumberOfDays
2969
+ The number of days after invoice date to pay in full.
2970
+
2971
+ percentageRate
2972
+ Discount rate in the number of percentage for the payment
2973
+ term defined in the corresponding payInNumberOfDays.
2974
+ Positive means discount and negative means penalty.
2975
+ -->
2976
+ <!ELEMENT InvoiceDetailPaymentTerm EMPTY>
2977
+ <!ATTLIST InvoiceDetailPaymentTerm
2978
+ payInNumberOfDays %uint; #REQUIRED
2979
+ percentageRate %r8; #REQUIRED
2980
+ >
2981
+
2982
+ <!--
2983
+ Defines discount applied.
2984
+
2985
+ Money
2986
+ The total discount in dollar (or other currency) amount.
2987
+
2988
+ percentageRate
2989
+ The discount rate in percentage.
2990
+ -->
2991
+ <!ELEMENT InvoiceDetailDiscount (Money)>
2992
+ <!ATTLIST InvoiceDetailDiscount
2993
+ percentageRate %r8; #IMPLIED
2994
+ >
2995
+
2996
+ <!--
2997
+ Defines the summary information of an InvoiceDetailRequest.
2998
+
2999
+ SubtotalAmount
3000
+ Sum of amount of all quantities.
3001
+
3002
+ Tax
3003
+ Tax info.
3004
+
3005
+ SpecialHandlingAmount
3006
+ Special handling charge.
3007
+
3008
+ ShippingAmount
3009
+ Shipping charge.
3010
+
3011
+ InvoiceDetailDiscount
3012
+ The total discount applied in this InvoiceDetailRequest.
3013
+ Its contained percentageRate attribute will be ignored
3014
+ if isDiscountInLine is true.
3015
+
3016
+ GrossAmount
3017
+ Sum of subtotal, taxes, special handling
3018
+ charges, and shipping charges, before discounts.
3019
+
3020
+ NetAmount
3021
+ Gross amount minus discounts.
3022
+
3023
+ DepositAmount
3024
+ Total deposit/prepayment amount.
3025
+
3026
+ DueAmount
3027
+ Total amount due and payable. It equals NetAmount minus
3028
+ DepositAmount. If InvoiceDetailRequestHeader@purpose is
3029
+ "creditMemo" or "lineLevelCreditMemo", this amount must be
3030
+ negative. If InvoiceDetailRequestHeader@purpose is
3031
+ "debitMemo", this amount must be positive.
3032
+ -->
3033
+ <!ELEMENT InvoiceDetailSummary (SubtotalAmount, Tax, SpecialHandlingAmount?,
3034
+ ShippingAmount?, GrossAmount?,
3035
+ InvoiceDetailDiscount?, NetAmount,
3036
+ DepositAmount?, DueAmount?)>
3037
+
3038
+ <!--
3039
+ Defines one or more serial numbers for accountable items that are
3040
+ being invoiced.
3041
+ -->
3042
+ <!ELEMENT SerialNumber (#PCDATA)> <!-- string -->
3043
+
3044
+
3045
+ <!--
3046
+ Defines all references related to a line item in this invoice.
3047
+
3048
+ ItemID
3049
+ The supplier part number of current line item, copied from
3050
+ OrderRequest.
3051
+
3052
+ Description
3053
+ The line item description, copied from OrderRequest.
3054
+
3055
+ ManufacturerPartID
3056
+ The manufacturer part number.
3057
+
3058
+ ManufacturerName
3059
+ The name of the manufacturer.
3060
+
3061
+ Country
3062
+ The country of origin of the current line item.
3063
+
3064
+ SerialNumber
3065
+ Defines one or more serial numbers for accountable items that
3066
+ are being invoiced. If serial numbers are being reported, then
3067
+ the number of serial numbers should match the invoice
3068
+ quantity. The specification does not enforce this. Rather, it
3069
+ is the responsibility of buyer and supplier implementers to
3070
+ validate this count if appropriate. SerialNumber should be
3071
+ used instead of the InvoiceDetailItemReference@serialNumber
3072
+ attribute, which is now deprecated. It is not valid to use
3073
+ both the attribute and the SerialNumber element.
3074
+
3075
+ lineNumber
3076
+ The line number of current line item, copied from OrderRequest.
3077
+
3078
+ serialNumber
3079
+ The product serial number for the current line item. This
3080
+ attribute is deprecated; the SerialNumber element should be
3081
+ used instead.
3082
+
3083
+ -->
3084
+ <!ELEMENT InvoiceDetailItemReference (ItemID?, Description?,
3085
+ (ManufacturerPartID, ManufacturerName)?,
3086
+ Country?, SerialNumber*)>
3087
+ <!ATTLIST InvoiceDetailItemReference
3088
+ lineNumber %uint; #REQUIRED
3089
+ serialNumber %string; #IMPLIED
3090
+ >
3091
+
3092
+
3093
+ <!--
3094
+ Defines all references related to a service line item in this invoice.
3095
+
3096
+ Classification
3097
+ The classification information of the service.
3098
+
3099
+ ItemID
3100
+ The supplier part number of the service.
3101
+
3102
+ Description
3103
+ The description of the service.
3104
+
3105
+ lineNumber
3106
+ The line number of current line item on the master
3107
+ agreement. It is required if the item being invoiced is part
3108
+ of a detailed master agreement that specifies detailed pricing
3109
+ terms at the line item or commodity level. It is optional if
3110
+ the item being invoiced is part of a master supplier agreement
3111
+ or blanket purchase order which do not contain detailed line
3112
+ item pricing information.
3113
+
3114
+ -->
3115
+ <!ELEMENT InvoiceDetailServiceItemReference (Classification*, ItemID?, Description?)>
3116
+ <!ATTLIST InvoiceDetailServiceItemReference
3117
+ lineNumber %uint; #IMPLIED
3118
+ >
3119
+
3120
+
3121
+ <!--
3122
+ Defines special handling information of the current invoice line.
3123
+
3124
+ Description
3125
+ Textual description of the special handling.
3126
+
3127
+ Money
3128
+ The special handling amount.
3129
+ -->
3130
+ <!ELEMENT InvoiceDetailLineSpecialHandling (Description?,
3131
+ Money)>
3132
+
3133
+ <!--
3134
+ Defines shipping information of the current invoice line.
3135
+
3136
+ InvoiceDetailShipping
3137
+ The shipping details.
3138
+
3139
+ Money
3140
+ The shipping amount.
3141
+ -->
3142
+ <!ELEMENT InvoiceDetailLineShipping (InvoiceDetailShipping, Money)>
3143
+
3144
+ <!--
3145
+ Defines a line item in the InvoiceDetailRequest.
3146
+
3147
+ UnitOfMeasure
3148
+ The unit of measure.
3149
+
3150
+ UnitPrice
3151
+ The unit price.
3152
+
3153
+ InvoiceDetailItemReference
3154
+ The references related to this line item.
3155
+
3156
+ SubtotalAmount
3157
+ The invoice subtotal of the current item = unit price x
3158
+ invoiced quantity.
3159
+
3160
+ Tax
3161
+ The tax info for this line item. It will be ignored if isTaxInLine
3162
+ is false.
3163
+
3164
+ InvoiceDetailLineSpecialHandling
3165
+ The special handling info for this line item. It will be ignored
3166
+ if isSpecialHandlingInLine is false.
3167
+
3168
+ InvoiceDetailLineShipping
3169
+ The shipping info for this line item. It will be ignored if
3170
+ isShippingInLine is false.
3171
+
3172
+ GrossAmount
3173
+ The SubtotalAmount plus taxes, shipping, and special handling
3174
+ charges.
3175
+
3176
+ InvoiceDetailDiscount
3177
+ The discount info for this line item. It will be ignored if
3178
+ isDiscountInLine is false.
3179
+
3180
+ NetAmount
3181
+ The GrossAmount minus discount amount.
3182
+
3183
+ Distribution
3184
+ Accounting distribution information, including cost center, GL#, etc.
3185
+ It will be ignored if isAccountingInLine is false.
3186
+
3187
+ Comments
3188
+ Textual comments for this line item.
3189
+
3190
+ Extrinsic
3191
+ Additional information related to this line item. Should not
3192
+ duplicate anything in InvoiceDetailItem or InvoiceDetailOrder.
3193
+
3194
+ invoiceLineNumber
3195
+ Supplier defined ID for the current invoice line. It should be
3196
+ unique across all invoice lines of the same InvoiceDetailRequest.
3197
+
3198
+ quantity
3199
+ The quantity being actually invoiced for the current line
3200
+ item.
3201
+
3202
+ referenceDate
3203
+ The reference date for the blanket order or contract item. This may indicate
3204
+ the date for which the line item is being invoiced.
3205
+ A use case is for seasonal items that vary the prices per period.
3206
+
3207
+ inspectionDate
3208
+ The date when transfer of goods or delivery of services
3209
+ occurs. (Japanese law requires this.)
3210
+ -->
3211
+ <!ELEMENT InvoiceDetailItem (UnitOfMeasure, UnitPrice,
3212
+ InvoiceDetailItemReference, SubtotalAmount?,
3213
+ Tax?, InvoiceDetailLineSpecialHandling?,
3214
+ InvoiceDetailLineShipping?, GrossAmount?,
3215
+ InvoiceDetailDiscount?, NetAmount?,
3216
+ Distribution*, Comments?, Extrinsic*)>
3217
+ <!ATTLIST InvoiceDetailItem
3218
+ invoiceLineNumber %uint; #REQUIRED
3219
+ quantity %r8; #REQUIRED
3220
+ referenceDate %datetime.tz; #IMPLIED
3221
+ inspectionDate %datetime.tz; #IMPLIED
3222
+ >
3223
+
3224
+ <!--
3225
+ Defines a service line item in the InvoiceDetailRequest.
3226
+
3227
+ InvoiceDetailServiceItemReference
3228
+ The references related to this line item.
3229
+
3230
+ SubtotalAmount
3231
+ The invoice subtotal of the current service item. If unit price
3232
+ and invoiced quantity are specified, then subtotal should be
3233
+ equal to the product of them.
3234
+
3235
+ Period
3236
+ The period during which the service was rendered.
3237
+
3238
+ UnitRate
3239
+ The rate at which service item is charged.
3240
+ Use of the UnitRate element is recommended over the plain (UnitOfMeasure, UnitPrice) pair,
3241
+ as the UnitRate element includes the rate code. For some services like temp labor services
3242
+ UnitRate is required.
3243
+
3244
+ UnitOfMeasure (deprecated)
3245
+ The unit of measure. For ex: HUR (per hour), MON (per month), etc. Use of
3246
+ UnitRate is recommended over use of this element.
3247
+
3248
+ UnitPrice (deprecated)
3249
+ The unit price if any. Use of UnitRate is recommended over use
3250
+ of this element.
3251
+
3252
+ Tax
3253
+ The tax info for this line item. It will be ignored if isTaxInLine
3254
+ is false.
3255
+
3256
+ GrossAmount
3257
+ The SubtotalAmount plus taxes, shipping, and special handling
3258
+ charges.
3259
+
3260
+ InvoiceDetailDiscount
3261
+ The discount info for this line item. It will be ignored if
3262
+ isDiscountInLine is false.
3263
+
3264
+ NetAmount
3265
+ The GrossAmount minus discount amount.
3266
+
3267
+ Distribution
3268
+ Accounting distribution information, including cost center, GL#, etc.
3269
+ It will be ignored if isAccountingInLine is false.
3270
+
3271
+ Comments
3272
+ Textual comments for this line item.
3273
+
3274
+ (InvoiceLaborDetail | ...)
3275
+ Additonal details for a particular type of spend category will be specified here.
3276
+ For example, for timecard related(temp labor) services, extra info like the
3277
+ TimeCard document reference, Contractor etc. can be specified.
3278
+
3279
+ Extrinsic
3280
+ Additional information related to this line item. Should not duplicate
3281
+ anything in InvoiceDetailItem or InvoiceDetailOrder. Other line item related
3282
+ attributes such as "union/non-union" should be specified in
3283
+ extrinsic elements.
3284
+
3285
+ invoiceLineNumber
3286
+ Supplier defined ID for the current invoice line. It should be
3287
+ unique across all invoice lines of the same InvoiceDetailRequest.
3288
+
3289
+ quantity
3290
+ The quantity being actually invoiced for the current line item. For regular
3291
+ service items, quantity represents the number of units of service rendered.
3292
+ For example, 2 hrs of lawn mowing service, where UnitOfMeasure is "HUR" and
3293
+ quantity is "2". For some services items, such as a milestone,
3294
+ quantity is optional. It is required if UnitPrice is specified.
3295
+
3296
+ referenceDate
3297
+ The reference date for the service item. This may indicate the date at which
3298
+ the service line item is being invoiced.
3299
+
3300
+ inspectionDate
3301
+ Refer to inspectionDate in InvoiceDetailItem.
3302
+ -->
3303
+ <!ELEMENT InvoiceDetailServiceItem (
3304
+ InvoiceDetailServiceItemReference,
3305
+ SubtotalAmount,
3306
+ Period?,
3307
+ (UnitRate | (UnitOfMeasure, UnitPrice))?,
3308
+ Tax?,
3309
+ GrossAmount?,
3310
+ InvoiceDetailDiscount?, NetAmount?,
3311
+ Distribution*, Comments?,
3312
+ (InvoiceLaborDetail)?,
3313
+ Extrinsic*)>
3314
+ <!ATTLIST InvoiceDetailServiceItem
3315
+ invoiceLineNumber %uint; #REQUIRED
3316
+ quantity %r8; #IMPLIED
3317
+ referenceDate %datetime.tz; #IMPLIED
3318
+ inspectionDate %datetime.tz; #IMPLIED
3319
+ >
3320
+
3321
+
3322
+ <!--
3323
+ Defines header level summary info of an order or master agreement in an invoice
3324
+ line.
3325
+
3326
+ SubtotalAmount
3327
+ The invoice subtotal of this order or master agreement.
3328
+
3329
+ Period
3330
+ The period during which the service was rendered. It should only be used for
3331
+ header level summary info for services, and it does not apply to goods.
3332
+
3333
+ Tax
3334
+ The tax info for this order or master agreement. It will be ignored if
3335
+ isTaxInLine is false.
3336
+
3337
+ InvoiceDetailLineSpecialHandling
3338
+ The special handling info for this order or master agreement. It will be
3339
+ ignored if isSpecialHandlingInLine is false. It should only be used for
3340
+ header level summary info for goods, and it does not apply to services.
3341
+
3342
+ InvoiceDetailLineShipping
3343
+ The shipping info for this order. It will be ignored if isShippingInLine is
3344
+ false. It should only be used for header level summary info for goods, and
3345
+ it does not apply to services.
3346
+
3347
+ GrossAmount
3348
+ The SubtotalAmount plus taxes, shipping, and special handling
3349
+ charges.
3350
+
3351
+ InvoiceDetailDiscount
3352
+ The discount info for this order. It will be ignored if
3353
+ isDiscountInLine is false.
3354
+
3355
+ NetAmount
3356
+ The GrossAmount minus discount amount.
3357
+
3358
+ Comments
3359
+ Textual comments for this line item.
3360
+
3361
+ Extrinsic
3362
+ Additional information related to this line item. Should not
3363
+ duplicate anything in InvoiceDetailOrderSummary or
3364
+ InvoiceDetailHeaderOrder.
3365
+
3366
+ invoiceLineNumber
3367
+ Supplier defined ID for the current invoice line. It should be
3368
+ unique across all invoice lines of the same InvoiceDetailRequest.
3369
+
3370
+ inspectionDate
3371
+ Refer to inspectionDate in InvoiceDetailItem.
3372
+ -->
3373
+ <!ELEMENT InvoiceDetailOrderSummary (SubtotalAmount, Period?, Tax?,
3374
+ InvoiceDetailLineSpecialHandling?,
3375
+ InvoiceDetailLineShipping?,
3376
+ GrossAmount?, InvoiceDetailDiscount?,
3377
+ NetAmount?, Comments?, Extrinsic*)>
3378
+ <!ATTLIST InvoiceDetailOrderSummary
3379
+ invoiceLineNumber %uint; #REQUIRED
3380
+ inspectionDate %datetime.tz; #IMPLIED
3381
+ >
3382
+
3383
+
3384
+ <!--
3385
+ Defines the header invoice information of an order without item details,
3386
+ used ONLY when isHeaderInvoice is true.
3387
+
3388
+ In this case, an invoice line is an InvoiceDetailHeaderOrder
3389
+ and its invoice line number is InvoiceDetailHeaderOrder/
3390
+ InvoiceDetailOrderSummary@invoiceLineNumber.
3391
+
3392
+ InvoiceDetailOrderInfo
3393
+ The reference information of the order.
3394
+
3395
+ InvoiceDetailOrderSummary
3396
+ The header level invoice info of the order.
3397
+ -->
3398
+ <!ELEMENT InvoiceDetailHeaderOrder
3399
+ (InvoiceDetailOrderInfo, InvoiceDetailOrderSummary)>
3400
+
3401
+ <!--
3402
+ Defines the invoice information of an order or master agreement with item details,
3403
+ used ONLY when isHeaderInvoice is false.
3404
+
3405
+ In this case, an invoice line is an InvoiceDetailItem and its invoice
3406
+ line number is InvoiceDetailItem@invoiceLineNumber.
3407
+
3408
+ InvoiceDetailOrderInfo
3409
+ The reference information of the order or master agreement.
3410
+
3411
+ InvoiceDetailItem
3412
+ The information of an item in the order.
3413
+
3414
+ InvoiceDetailServiceItem
3415
+ The information of a service item in the master agreement.
3416
+ -->
3417
+ <!ELEMENT InvoiceDetailOrder (InvoiceDetailOrderInfo,
3418
+ (InvoiceDetailItem | InvoiceDetailServiceItem)+)>
3419
+
3420
+
3421
+ <!--
3422
+ Defines the header information of an InvoiceDetailRequest.
3423
+
3424
+ InvoiceDetailHeaderIndicator
3425
+ Header level indicators describing overall attributes of this
3426
+ invoice.
3427
+
3428
+ InvoiceDetailLineIndicator
3429
+ Header level indicators indicating certain information is
3430
+ provided at invoice line level (in InvoiceDetailItem or
3431
+ InvoiceDetailOrderSummary).
3432
+
3433
+ InvoicePartner
3434
+ All partners invoiced in invoicing, including Sold to,
3435
+ Bill to, Remit to, Issuer of Invoice, etc.
3436
+
3437
+ DocumentReference
3438
+ Reference to an earlier InvoiceDetailRequest. If the
3439
+ attribute InvoiceDetailRequestHeader@operation is "delete",
3440
+ the DocumentReference is required and it must reference the
3441
+ original InvoiceDetailRequest document (with value "new" for
3442
+ its attribute InvoiceDetailRequestHeader@operation) during the
3443
+ same invoicing process. If the attribute
3444
+ InvoiceDetailRequestHeader@purpose is "lineLevelCreditMemo",
3445
+ the DocumentReference is required and must identify the
3446
+ original invoice against which the credit is applied. In all
3447
+ other situations, the DocumentReference is optional and, if it
3448
+ is provided, it must reference the InvoiceDetailRequest which
3449
+ is related to the current InvoiceDetailRequest.
3450
+
3451
+ InvoiceIDInfo
3452
+ Reference to an earlier InvoiceDetailRequest. If both
3453
+ DocumentReference and InvoiceIDInfo are provided, they must
3454
+ refer to the same invoice.
3455
+
3456
+ InvoiceDetailShipping
3457
+ The shipping details of this invoice. It will be ignored if
3458
+ isShippingInLine is true.
3459
+
3460
+ InvoiceDetailPaymentTerm
3461
+ This is an older, deprecated way to define payment terms for this invoice.
3462
+ Use PaymentTerm instead.
3463
+
3464
+ PaymentTerm
3465
+ This defines the payment terms for this invoice.
3466
+
3467
+ Period
3468
+ The total period during which all the services (specified in this invoice)
3469
+ were rendered. This does not imply anything about the Period at the
3470
+ line level.
3471
+
3472
+ Comments
3473
+ Textual comments for this invoice.
3474
+
3475
+ Extrinsic
3476
+ Additional information related to this invoice. Should not
3477
+ duplicate anything in InvoiceDetailRequestHeader or
3478
+ InvoiceDetailRequest.
3479
+ For service related invoice, header level service extrinsics such
3480
+ as "serviceLocation" can be specified here as follows.
3481
+ <Extrinsic name="serviceLocation">
3482
+ <Contact role="serviceLocation">
3483
+ <Name>XYZ Inc</Name>
3484
+ <PostalAddress>
3485
+ <Street>123 Easy St</Street>
3486
+ <City>Sunnyvale</City>
3487
+ <State>California</State>
3488
+ <PostalCode>94089</PostalCode>
3489
+ <Country isoCountryCode="US">USA</Country>
3490
+ </PostalAddress>
3491
+ </Contact>
3492
+ </Extrinsic>
3493
+
3494
+ invoiceID
3495
+ A supplier-generated identifier for this Invoice. Identical to the
3496
+ Invoice Number which appears at the top of a physical Invoice.
3497
+
3498
+ isInformationOnly
3499
+ True if this document is for buyer's information only (i.e. no action
3500
+ needs to be taken by the buyer). False if the buyer needs to take
3501
+ action upon receiving this document (e.g. submit payment or accept
3502
+ credit). By default, it is false.
3503
+
3504
+ purpose
3505
+ The purpose of this invoice:
3506
+ standard - This invoice is a standard billing statement from the
3507
+ supplier to the buyer.
3508
+ creditMemo - This invoice is a credit memo for giving credit back
3509
+ to the buyer by the supplier. In this case, the attribute
3510
+ InvoiceDetailHeaderIndicator@isHeaderInvoice must be true.
3511
+ Also, the element InvoiceDetailSummary/DueAmount must be
3512
+ a negative amount.
3513
+ debitMemo - This invoice is a debit memo for billing a balance
3514
+ owed by the buyer to the supplier. In this case, the attribute
3515
+ InvoiceDetailHeaderIndicator@isHeaderInvoice must be true.
3516
+ Also, the element InvoiceDetailSummary/DueAmount must be
3517
+ a positive amount.
3518
+ lineLevelCreditMemo - This invoice is a line item level credit memo
3519
+ for giving credit back to the buyer by the supplier. In this
3520
+ case, the attribute InvoiceDetailHeaderIndicator@isHeaderInvoice
3521
+ is false. All the line item amounts and hence the
3522
+ InvoiceDetailSummary/DueAmount must be a negative amount.
3523
+
3524
+ By default, it is "standard".
3525
+
3526
+ operation
3527
+ How this document is acting on the invoice:
3528
+ new - This document creates a new invoice.
3529
+ delete - This document cancels an existing invoice. That existing
3530
+ invoice must be specified as DocumentReference.
3531
+ By default, it is "new".
3532
+
3533
+ invoiceDate
3534
+ Date and time this Invoice was created (should be earlier than the
3535
+ document's timestamp).
3536
+
3537
+ invoiceOrigin
3538
+ Indicates whether the invoice originated from the Buyer or Supplier.
3539
+ -->
3540
+ <!ELEMENT InvoiceDetailRequestHeader (InvoiceDetailHeaderIndicator,
3541
+ InvoiceDetailLineIndicator,
3542
+ InvoicePartner*,
3543
+ DocumentReference?,
3544
+ InvoiceIDInfo?,
3545
+ InvoiceDetailShipping?,
3546
+ (InvoiceDetailPaymentTerm*|PaymentTerm*),
3547
+ Period?,
3548
+ Comments?,
3549
+ Extrinsic*)>
3550
+ <!ATTLIST InvoiceDetailRequestHeader
3551
+ invoiceID %string; #REQUIRED
3552
+ isInformationOnly
3553
+ (yes) #IMPLIED
3554
+ purpose (standard | creditMemo | debitMemo | lineLevelCreditMemo)
3555
+ "standard"
3556
+ operation (new | delete) "new"
3557
+ invoiceDate %datetime.tz; #REQUIRED
3558
+ invoiceOrigin
3559
+ (supplier | buyer) #IMPLIED
3560
+ >
3561
+
3562
+ <!--
3563
+ InvoiceDetailRequest
3564
+
3565
+ Transmits a invoice request to a buyer. Provides order
3566
+ references, line item references, partners involved, accounting
3567
+ distribution, discount terms, shipping and special handling, applicable
3568
+ taxes, deposit and payment, contact and remittance information, etc.
3569
+
3570
+ Suppliers can use InvoiceDetailRequest to send invoice for any
3571
+ portion of all or selected line items from single or multiple
3572
+ orders. They can also use InvoiceDetailRequest to send cancel invoice
3573
+ (InvoiceDetailRequestHeader@operation is "delete"), credit memo,
3574
+ debit memo, or receipt (InvoiceDetailRequestHeader@isInformationOnly is
3575
+ "yes").
3576
+
3577
+ This document must be sent to the location specified in the buyer's
3578
+ ProfileResponse.
3579
+
3580
+ InvoiceDetailRequestHeader
3581
+ The header information of this invoice.
3582
+
3583
+ InvoiceDetailOrder
3584
+ The invoice information of an order with item details, used ONLY
3585
+ when isHeaderInvoice is false.
3586
+
3587
+ InvoiceDetailHeaderOrder
3588
+ The header invoice information of an order without item details,
3589
+ used ONLY when isHeaderInvoice is true.
3590
+
3591
+ InvoiceDetailSummary
3592
+ The summary information of this invoice.
3593
+ -->
3594
+ <!ELEMENT InvoiceDetailRequest
3595
+ (InvoiceDetailRequestHeader,
3596
+ (InvoiceDetailOrder+ | InvoiceDetailHeaderOrder+),
3597
+ InvoiceDetailSummary)>
3598
+
3599
+
3600
+
3601
+ <!--
3602
+ For cXML license agreement information, please see
3603
+ http://www.cxml.org/home/license.asp
3604
+
3605
+ $Id$
3606
+ -->
3607
+
3608
+ <!--
3609
+ For better definitions of these Elements/Entities, refer to the cXML
3610
+ User's Guide and related documents.
3611
+ -->
3612
+
3613
+ <!--
3614
+ Defines invoice information specific to labor items.
3615
+
3616
+ Contractor
3617
+ The contractor whose work is being invoiced.
3618
+
3619
+ JobDescription
3620
+ Detailed description of the job for this labor line item.
3621
+
3622
+ Supervisor
3623
+ Supervisor of the contractor whose work is being invoiced.
3624
+
3625
+ WorkLocation
3626
+ The work location of the contractor whose work is being invoiced.
3627
+
3628
+ InvoiceTimeCardDetail
3629
+ Invoice details for labor reported on a time card. The pay code for this invoice
3630
+ line item is in the UnitRate of the containing InvoiceDetailServiceItem element.
3631
+ -->
3632
+ <!ELEMENT InvoiceLaborDetail (Contractor?, JobDescription?, Supervisor?, WorkLocation?, InvoiceTimeCardDetail?)>
3633
+
3634
+ <!--
3635
+ InvoiceTimeCardDetail
3636
+ This element is used to capture details about a timecard related (temp
3637
+ labor) service.
3638
+
3639
+ TimeCardReference
3640
+ The TimeCardReference element provides a clear reference to a prior TimeCard
3641
+ cXML document.
3642
+
3643
+ TimeCardIDInfo
3644
+ Unique ID for the timecard as sent on the TimeCard document during
3645
+ TimeCardInfoRequest or TimeCardRequest messages.
3646
+ -->
3647
+ <!ELEMENT InvoiceTimeCardDetail ((TimeCardReference | TimeCardIDInfo))>
3648
+ <!ELEMENT TimeCardReference (DocumentReference)>
3649
+ <!ATTLIST TimeCardReference
3650
+ timeCardID %string; #IMPLIED
3651
+ >
3652
+
3653
+ <!--
3654
+ TimeCardIDInfo
3655
+ Defines the unique ID of the timecard known to the buyer and supplier systems.
3656
+
3657
+ timeCardID
3658
+ Unique ID for the timecard as sent on the TimeCard document during
3659
+ TimeCardInfoRequest or TimeCardRequest requests
3660
+ -->
3661
+ <!ELEMENT TimeCardIDInfo EMPTY>
3662
+ <!ATTLIST TimeCardIDInfo
3663
+ timeCardID %string; #REQUIRED
3664
+ >
3665
+ <!--
3666
+ For cXML license agreement information, please see
3667
+ http://www.cxml.org/home/license.asp
3668
+
3669
+ $Id: //ariba/cxml/schema/Modules/InvoiceEntities.mod#2 $
3670
+ -->
3671
+
3672
+ <!--
3673
+ Top-level entities used in Transport.mod. Defined here to allow easy
3674
+ extention of the cXML specification (using additional DTDs) without
3675
+ redefining these entities.
3676
+ -->
3677
+
3678
+ <!ENTITY % cxml.requests "(InvoiceDetailRequest)">
3679
+
3680
+ <!ENTITY % cxml.messages "">
3681
+
3682
+ <!ENTITY % cxml.responses "">
3683
+ <!--
3684
+ For cXML license agreement information, please see
3685
+ http://www.cxml.org/home/license.asp
3686
+
3687
+ $Id: //ariba/cxml/schema/Modules/Transport.mod#6 $
3688
+ -->
3689
+
3690
+ <!--
3691
+ For better definitions of these Elements/Entities, refer to the cXML
3692
+ Protocol Specification documents.
3693
+ -->
3694
+
3695
+ <!--
3696
+ Defines the set of known valid cXML digital signature versions
3697
+ -->
3698
+ <!ENTITY % cxml.signatureVersions "(1.0)">
3699
+
3700
+ <!--
3701
+ cXML envelope
3702
+
3703
+ version
3704
+ Version of this cXML transmission. Should be less than or equal
3705
+ to the version portion of the SYSTEM identifier for this document.
3706
+
3707
+ payloadID
3708
+ A unique identifier for this document.
3709
+
3710
+ timestamp
3711
+ The date and time at which this document was originally created.
3712
+
3713
+ signatureVersion
3714
+ If present, specifies the cXML digital signature version to
3715
+ which this document conforms. This implies that the
3716
+ ds:Signature element must be present. It is an error if this
3717
+ attribute is present and the document does not conform to the
3718
+ specified signature version. If absent, the document is not
3719
+ signed.
3720
+
3721
+ xml:lang
3722
+ The default locale for all strings (not formatted items such as
3723
+ dates, times and numbers) in this document. This attribute will be
3724
+ required in a future version of cXML. (Leaving it out is
3725
+ deprecated.)
3726
+ -->
3727
+ <!ELEMENT cXML (((Header, (Message | Request)) | Response), ds:Signature*)>
3728
+ <!ATTLIST cXML
3729
+ version %string; "&cxml.version;"
3730
+ payloadID %string; #REQUIRED
3731
+ timestamp %datetime.tz; #REQUIRED
3732
+ signatureVersion %cxml.signatureVersions; #IMPLIED
3733
+ xml:lang %xmlLangCode; #IMPLIED
3734
+ >
3735
+
3736
+ <!-- header -->
3737
+ <!ELEMENT Header (From, To, Sender, (Path, OriginalDocument)?)>
3738
+
3739
+ <!ELEMENT From (Credential+, Correspondent?)>
3740
+ <!ELEMENT To (Credential+, Correspondent?)>
3741
+ <!ELEMENT Sender (Credential+, UserAgent)>
3742
+
3743
+ <!--
3744
+ Path. A list of nodes that records the path taken by a user through
3745
+ a punchout chaining scenario.
3746
+ -->
3747
+ <!ELEMENT Path (Node+)>
3748
+
3749
+ <!--
3750
+ A Node is any entity connected to a Network.
3751
+
3752
+ type
3753
+ A node can define itself as a router node or a copy node. Routers
3754
+ assume responsibility for the transaction. Copy Nodes request to only
3755
+ be aware of the transaction.
3756
+
3757
+ itemDetailsRequired
3758
+ Intermediary Nodes may want to support special operations without
3759
+ having to store specific information required to fulfill that operation.
3760
+ This attribute tells the previous node to send ItemDetail information
3761
+ when performing a PunchOutSetupRequest edit/inspect operation.
3762
+ -->
3763
+ <!ELEMENT Node (Credential+)>
3764
+ <!ATTLIST Node
3765
+ type (copy | route) #REQUIRED
3766
+ itemDetailsRequired (yes) #IMPLIED
3767
+ >
3768
+
3769
+
3770
+ <!--
3771
+ Identifies the previous document in the situation that a router node
3772
+ forwards a message or request on to a more distant node.
3773
+
3774
+ payloadID
3775
+ The payloadId of the original document.
3776
+ -->
3777
+ <!ELEMENT OriginalDocument EMPTY>
3778
+ <!ATTLIST OriginalDocument
3779
+ payloadID %string; #REQUIRED
3780
+ >
3781
+
3782
+ <!--
3783
+ A textual string representing who the UserAgent is conducting the cXML
3784
+ conversation. Analogous to UserAgent for HTTP conversations.
3785
+ -->
3786
+ <!ELEMENT UserAgent (#PCDATA)>
3787
+
3788
+ <!--
3789
+ DEPRECATED
3790
+ Do not use this element.
3791
+ -->
3792
+ <!ELEMENT DigitalSignature ANY>
3793
+ <!ATTLIST DigitalSignature
3794
+ type %string; "PK7 self-contained"
3795
+ encoding %string; "Base64"
3796
+ >
3797
+
3798
+ <!--
3799
+ A shared secret. Typically, this is a username/password type of secret
3800
+ exchanged through a secure transport before communication takes place.
3801
+ -->
3802
+ <!ELEMENT SharedSecret ANY>
3803
+
3804
+ <!--
3805
+ Represents an identity for a credential.
3806
+
3807
+ lastChangedTimestamp
3808
+ When the underlying object last changed in the originating system.
3809
+ This is used in cases where the same object (e.g. a buyer
3810
+ organization) is replicated, and kept synchronized, across two
3811
+ systems.
3812
+ -->
3813
+ <!ELEMENT Identity ANY>
3814
+ <!ATTLIST Identity
3815
+ lastChangedTimestamp %datetime.tz; #IMPLIED
3816
+ >
3817
+
3818
+ <!--
3819
+ A Credential Message Authentication Code (MAC). This is used in
3820
+ situations where one party (the sender) must prove to another (the
3821
+ receiver) that it is authenticated by a shared secret with a third
3822
+ party trusted by both.
3823
+
3824
+ The MAC should be computed by the trusted third party and
3825
+ transferred to the sender. The MAC should be opaque to the sender
3826
+ (i.e., it should be secure and non-reversible). The MAC should
3827
+ use as its inputs enough information to accomplish the following
3828
+ goals:
3829
+
3830
+ (1) The MAC must prove to the receiver that it really originated
3831
+ with the trusted third party. E.g., the MAC could use a shared
3832
+ secret between the receiver and the trusted third party as its
3833
+ secret key.
3834
+
3835
+ (2) The MAC should be usable only by a certain sender. E.g., the
3836
+ MAC could authenticate an identifier for the sending organization.
3837
+
3838
+ (3) The MAC should prove that the sender is authorized to send on
3839
+ behalf of the From organization. E.g., the MAC could authenticate
3840
+ an identifier for the From organization.
3841
+
3842
+ (4) The MAC should limit the risk of the MAC being compromised and
3843
+ used to impersonate the sender by another party communicating with
3844
+ the receiver. E.g., the MAC could authenticate an expiration date
3845
+ or sequence number.
3846
+
3847
+ type
3848
+ An implementation-dependent identifier for the exact data
3849
+ being authenticated and the method in which it is formatted
3850
+ for authentication. Currently the only supported value is
3851
+ "FromSenderCredentials".
3852
+
3853
+ algorithm
3854
+ An implementation-dependent identifier for the exact MAC
3855
+ algorithm used on the data. Currently the only supported
3856
+ value is "HMAC-SHA1-96".
3857
+
3858
+ creationDate
3859
+ The time at which this MAC was issued. The receiver must not
3860
+ accept the MAC before this time.
3861
+
3862
+ expirationDate
3863
+ The time at which this MAC expires. The receiver must not
3864
+ accept the MAC after this time.
3865
+ -->
3866
+ <!ELEMENT CredentialMac (#PCDATA)>
3867
+ <!ATTLIST CredentialMac
3868
+ type %string; #REQUIRED
3869
+ algorithm %string; #REQUIRED
3870
+ creationDate %datetime.tz; #REQUIRED
3871
+ expirationDate %datetime.tz; #REQUIRED
3872
+ >
3873
+
3874
+ <!--
3875
+ A combination of an Identity and authentication element. If the
3876
+ authentication element is present, it strongly authenticates who/what
3877
+ someone is. The authentication element should not be sent within Message
3878
+ documents transported via an end user's browser. One-way communication
3879
+ must be authenticated in the transport layer.
3880
+
3881
+ domain
3882
+ In what domain is this Credential represented?
3883
+ type
3884
+ Does this Credential identify a marketplace or one of its member
3885
+ companies? A Credential without this attribute describes a member
3886
+ company or unaffiliated buying organization.
3887
+ -->
3888
+ <!ENTITY % cxml.authentication "SharedSecret |
3889
+ DigitalSignature |
3890
+ CredentialMac"
3891
+ >
3892
+ <!ELEMENT Credential (Identity, (%cxml.authentication;)?)>
3893
+ <!ATTLIST Credential
3894
+ domain %string; #REQUIRED
3895
+ type (marketplace) #IMPLIED
3896
+ >
3897
+
3898
+ <!--
3899
+ Status of a Response or Message. If present, the element content
3900
+ describes specifics of a problem.
3901
+
3902
+ code
3903
+ HTTP or cXML-specific status code.
3904
+
3905
+ text
3906
+ Textual version of the status code (not specific issue).
3907
+
3908
+ xml:lang
3909
+ The language in which the text attribute and element content are
3910
+ written. This attribute will be required in a future version of
3911
+ cXML. (Leaving it out is deprecated.)
3912
+ -->
3913
+ <!ELEMENT Status (#PCDATA)>
3914
+ <!ATTLIST Status
3915
+ code %uint; #REQUIRED
3916
+ text %string; #REQUIRED
3917
+ xml:lang %xmlLangCode; #IMPLIED
3918
+ >
3919
+
3920
+ <!--
3921
+ Message
3922
+
3923
+ When Status not present, '<Status code="200" text="OK" />' is implied.
3924
+ -->
3925
+ <!ELEMENT Message (Status? %cxml.messages;)>
3926
+ <!ATTLIST Message
3927
+ deploymentMode (production | test) "production"
3928
+ inReplyTo %string; #IMPLIED
3929
+ Id ID #IMPLIED
3930
+ >
3931
+
3932
+ <!-- request -->
3933
+ <!ELEMENT Request (%cxml.requests;)>
3934
+ <!ATTLIST Request
3935
+ deploymentMode (production | test) "production"
3936
+ Id ID #IMPLIED
3937
+ >
3938
+
3939
+ <!-- response -->
3940
+ <!ELEMENT Response (Status %cxml.responses;)>
3941
+ <!ATTLIST Response
3942
+ Id ID #IMPLIED
3943
+ >
3944
+
3945
+ <!--
3946
+ This element includes signed cXML-specific details about the
3947
+ document being signed. When a cXML document is signed, this
3948
+ element must appear inside the first ds:Object element in the
3949
+ ds:Signature element.
3950
+
3951
+ signatureVersion
3952
+ This specifies the cXML signature version to which this
3953
+ document conforms. It is an error if this attribute value
3954
+ does not exactly match the value of the signatureVersion
3955
+ attribute from the top-level cXML element. It is an error if
3956
+ the document does not conform to the specified cXML signature
3957
+ version.
3958
+
3959
+ payloadID
3960
+ Specifies the payloadID of the document. It is an error if
3961
+ the value of this attribute does not exactly match the value
3962
+ of the payloadID attribute from the top-level cXML element.
3963
+
3964
+ Id
3965
+ This identifies this cXMLSignedInfo element for purposes of
3966
+ the signature. This attribute must always be present and
3967
+ should always have the value "cXMLSignedInfo"
3968
+
3969
+ -->
3970
+ <!ELEMENT cXMLSignedInfo EMPTY>
3971
+ <!ATTLIST cXMLSignedInfo
3972
+ signatureVersion %cxml.signatureVersions; #REQUIRED
3973
+ payloadID %string; #REQUIRED
3974
+ Id ID #REQUIRED
3975
+ >
3976
+
3977
+ <!--
3978
+ This element includes the contact information of the organisation
3979
+ to/from whom the document is sent/received.
3980
+
3981
+ preferredLanguage
3982
+ optional language which the organisation, identified by this
3983
+ element, would prefer to use. Refer to the definition of
3984
+ xmlLangCode entity.
3985
+ -->
3986
+ <!ELEMENT Correspondent (Contact+, Extrinsic*)>
3987
+ <!ATTLIST Correspondent
3988
+ preferredLanguage %xmlLangCode; #IMPLIED
3989
+ ><!--
3990
+ For cXML license agreement information, please see
3991
+ http://www.cxml.org/home/license.asp
3992
+
3993
+ $Id: //ariba/cxml/Modules/Profile.mod#6 $
3994
+ -->
3995
+
3996
+ <!--
3997
+ For more information about W3C XML signatures, refer to the
3998
+ following URL. Portions of this DTD are derived from information
3999
+ contained therein.
4000
+ http://www.w3.org/TR/xmldsig-core/
4001
+ -->
4002
+
4003
+ <!-- DTD for XML Signatures
4004
+ http://www.w3.org/2000/09/xmldsig#
4005
+ Joseph Reagle $last changed 20001215$
4006
+
4007
+ http://www.w3.org/2000/09/xmldsig#
4008
+ $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
4009
+
4010
+ Copyright 2001 The Internet Society and W3C (Massachusetts Institute
4011
+ of Technology, Institut National de Recherche en Informatique et en
4012
+ Automatique, Keio University). All Rights Reserved.
4013
+ http://www.w3.org/Consortium/Legal/
4014
+
4015
+ This document is governed by the W3C Software License [1] as described
4016
+ in the FAQ [2].
4017
+
4018
+ [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
4019
+ [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
4020
+ -->
4021
+
4022
+ <!--
4023
+
4024
+ The following entity declarations enable external/flexible content in
4025
+ the Signature content model.
4026
+
4027
+ #PCDATA emulates schema string; when combined with element types it
4028
+ emulates schema's mixed content type.
4029
+
4030
+ %foo.ANY permits the user to include their own element types from
4031
+ other namespaces, for example:
4032
+ <!ENTITY % KeyValue.ANY '| ecds:ECDSAKeyValue'>
4033
+ ...
4034
+ <!ELEMENT ecds:ECDSAKeyValue (#PCDATA) >
4035
+
4036
+ -->
4037
+
4038
+ <!ENTITY % Object.ANY '|xades:QualifyingProperties|cXMLSignedInfo|Extrinsic'>
4039
+ <!ENTITY % Method.ANY ''>
4040
+ <!ENTITY % Transform.ANY ''>
4041
+ <!ENTITY % SignatureProperty.ANY ''>
4042
+ <!ENTITY % KeyInfo.ANY ''>
4043
+ <!ENTITY % KeyValue.ANY ''>
4044
+ <!ENTITY % PGPData.ANY ''>
4045
+ <!ENTITY % X509Data.ANY ''>
4046
+ <!ENTITY % SPKIData.ANY ''>
4047
+
4048
+
4049
+
4050
+ <!-- Start Core Signature declarations, these should NOT be altered -->
4051
+
4052
+ <!ELEMENT ds:Signature (ds:SignedInfo, ds:SignatureValue, ds:KeyInfo?, ds:Object*) >
4053
+ <!ATTLIST ds:Signature
4054
+ xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'
4055
+ xmlns:xades CDATA #FIXED 'http://uri.etsi.org/01903/v1.3.2#'
4056
+ Id ID #IMPLIED >
4057
+
4058
+ <!ELEMENT ds:SignatureValue (#PCDATA) >
4059
+ <!ATTLIST ds:SignatureValue
4060
+ Id ID #IMPLIED>
4061
+
4062
+ <!ELEMENT ds:SignedInfo (ds:CanonicalizationMethod,
4063
+ ds:SignatureMethod, ds:Reference+) >
4064
+ <!ATTLIST ds:SignedInfo
4065
+ Id ID #IMPLIED
4066
+ >
4067
+
4068
+ <!ELEMENT ds:CanonicalizationMethod (#PCDATA %Method.ANY;)* >
4069
+ <!ATTLIST ds:CanonicalizationMethod
4070
+ Algorithm CDATA #REQUIRED >
4071
+
4072
+ <!ELEMENT ds:SignatureMethod (#PCDATA|ds:HMACOutputLength %Method.ANY;)* >
4073
+ <!ATTLIST ds:SignatureMethod
4074
+ Algorithm CDATA #REQUIRED >
4075
+
4076
+ <!ELEMENT ds:Reference (ds:Transforms?, ds:DigestMethod, ds:DigestValue) >
4077
+ <!ATTLIST ds:Reference
4078
+ Id ID #IMPLIED
4079
+ URI CDATA #IMPLIED
4080
+ Type CDATA #IMPLIED>
4081
+
4082
+
4083
+ <!ELEMENT ds:Transforms (ds:Transform+)>
4084
+
4085
+ <!ELEMENT ds:Transform (#PCDATA|ds:XPath %Transform.ANY;)* >
4086
+ <!ATTLIST ds:Transform
4087
+ Algorithm CDATA #REQUIRED >
4088
+
4089
+ <!ELEMENT ds:XPath (#PCDATA) >
4090
+
4091
+ <!ELEMENT ds:DigestMethod (#PCDATA %Method.ANY;)* >
4092
+ <!ATTLIST ds:DigestMethod
4093
+ Algorithm CDATA #REQUIRED >
4094
+
4095
+ <!ELEMENT ds:DigestValue (#PCDATA) >
4096
+
4097
+ <!ELEMENT ds:KeyInfo (#PCDATA|ds:KeyName|ds:KeyValue|ds:RetrievalMethod|
4098
+ ds:X509Data|ds:PGPData|ds:SPKIData|ds:MgmtData %KeyInfo.ANY;)* >
4099
+ <!ATTLIST ds:KeyInfo
4100
+ Id ID #IMPLIED >
4101
+
4102
+ <!-- Key Information -->
4103
+
4104
+ <!ELEMENT ds:KeyName (#PCDATA) >
4105
+ <!ELEMENT ds:KeyValue (#PCDATA|ds:DSAKeyValue|ds:RSAKeyValue %KeyValue.ANY;)* >
4106
+ <!ELEMENT ds:MgmtData (#PCDATA) >
4107
+
4108
+ <!ELEMENT ds:RetrievalMethod (ds:Transforms?) >
4109
+ <!ATTLIST ds:RetrievalMethod
4110
+ URI CDATA #REQUIRED
4111
+ Type CDATA #IMPLIED >
4112
+
4113
+ <!-- X.509 Data -->
4114
+
4115
+ <!ELEMENT ds:X509Data ((ds:X509IssuerSerial | ds:X509SKI | ds:X509SubjectName |
4116
+ ds:X509Certificate | ds:X509CRL )+ %X509Data.ANY;)>
4117
+ <!ELEMENT ds:X509IssuerSerial (ds:X509IssuerName, ds:X509SerialNumber) >
4118
+ <!ELEMENT ds:X509IssuerName (#PCDATA) >
4119
+ <!ELEMENT ds:X509SubjectName (#PCDATA) >
4120
+ <!ELEMENT ds:X509SerialNumber (#PCDATA) >
4121
+ <!ELEMENT ds:X509SKI (#PCDATA) >
4122
+ <!ELEMENT ds:X509Certificate (#PCDATA) >
4123
+ <!ELEMENT ds:X509CRL (#PCDATA) >
4124
+
4125
+ <!-- PGPData -->
4126
+
4127
+ <!ELEMENT ds:PGPData ((ds:PGPKeyID, ds:PGPKeyPacket?) | (ds:PGPKeyPacket) %PGPData.ANY;) >
4128
+ <!ELEMENT ds:PGPKeyPacket (#PCDATA) >
4129
+ <!ELEMENT ds:PGPKeyID (#PCDATA) >
4130
+
4131
+ <!-- SPKI Data -->
4132
+
4133
+ <!ELEMENT ds:SPKIData (ds:SPKISexp %SPKIData.ANY;) >
4134
+ <!ELEMENT ds:SPKISexp (#PCDATA) >
4135
+
4136
+ <!-- Extensible Content -->
4137
+
4138
+ <!ELEMENT ds:Object (#PCDATA|ds:Signature|ds:SignatureProperties|ds:Manifest %Object.ANY;)* >
4139
+ <!ATTLIST ds:Object
4140
+ Id ID #IMPLIED
4141
+ MimeType CDATA #IMPLIED
4142
+ Encoding CDATA #IMPLIED >
4143
+
4144
+ <!ELEMENT ds:Manifest (ds:Reference+) >
4145
+ <!ATTLIST ds:Manifest
4146
+ Id ID #IMPLIED >
4147
+
4148
+ <!ELEMENT ds:SignatureProperties (ds:SignatureProperty+) >
4149
+ <!ATTLIST ds:SignatureProperties
4150
+ Id ID #IMPLIED >
4151
+
4152
+ <!ELEMENT ds:SignatureProperty (#PCDATA %SignatureProperty.ANY;)* >
4153
+ <!ATTLIST ds:SignatureProperty
4154
+ Target CDATA #REQUIRED
4155
+ Id ID #IMPLIED >
4156
+
4157
+ <!-- Algorithm Parameters -->
4158
+
4159
+ <!ELEMENT ds:HMACOutputLength (#PCDATA) >
4160
+
4161
+ <!ELEMENT ds:DSAKeyValue ((ds:P, ds:Q)?, ds:G?, ds:Y, ds:J?, (ds:Seed, ds:PgenCounter)?) >
4162
+ <!ELEMENT ds:P (#PCDATA) >
4163
+ <!ELEMENT ds:Q (#PCDATA) >
4164
+ <!ELEMENT ds:G (#PCDATA) >
4165
+ <!ELEMENT ds:Y (#PCDATA) >
4166
+ <!ELEMENT ds:J (#PCDATA) >
4167
+ <!ELEMENT ds:Seed (#PCDATA) >
4168
+ <!ELEMENT ds:PgenCounter (#PCDATA) >
4169
+
4170
+ <!ELEMENT ds:RSAKeyValue (ds:Modulus, ds:Exponent) >
4171
+ <!ELEMENT ds:Modulus (#PCDATA) >
4172
+ <!ELEMENT ds:Exponent (#PCDATA) >
4173
+ <!--
4174
+ For cXML license agreement information, please see
4175
+ http://www.cxml.org/home/license.asp
4176
+
4177
+ $Id: //ariba/cxml/Modules/Profile.mod#6 $
4178
+ -->
4179
+
4180
+ <!--
4181
+ For more information about XAdES, refer to the following URL.
4182
+ Portions of this DTD are derived from information contained therein.
4183
+ http://uri.etsi.org/01903/v1.3.2#
4184
+ -->
4185
+
4186
+ <!ENTITY % Any.ANY ' '>
4187
+ <!ENTITY % XMLTimeStamp.ANY ' '>
4188
+ <!ENTITY % Method.ANY ' '>
4189
+
4190
+ <!-- Start Any -->
4191
+
4192
+ <!ELEMENT xades:Any (#PCDATA %Any.ANY;)*>
4193
+
4194
+ <!-- End Any -->
4195
+
4196
+ <!-- Start ObjectIdentifier -->
4197
+
4198
+ <!ELEMENT xades:ObjectIdentifier (xades:Identifier, xades:Description?,
4199
+ xades:DocumentationReferences?)>
4200
+ <!ELEMENT xades:Identifier (#PCDATA)>
4201
+ <!ATTLIST xades:Identifier
4202
+ Qualifier (OIDAsURI | OIDAsURN) #IMPLIED
4203
+ >
4204
+ <!ELEMENT xades:Description (#PCDATA)>
4205
+ <!ELEMENT xades:DocumentationReferences (xades:DocumentationReference)+>
4206
+ <!ELEMENT xades:DocumentationReference (#PCDATA)>
4207
+
4208
+ <!-- End ObjectIdentifier -->
4209
+
4210
+ <!-- Start EncapsulatedPKIData -->
4211
+
4212
+ <!ELEMENT xades:EncapsulatedPKIData (#PCDATA)>
4213
+ <!ATTLIST xades:EncapsulatedPKIData
4214
+ Id ID #IMPLIED
4215
+ Encoding CDATA #IMPLIED
4216
+ >
4217
+
4218
+ <!-- End EncapsulatedPKIData -->
4219
+
4220
+ <!-- Start time-stamp container types -->
4221
+
4222
+ <!ELEMENT xades:Include EMPTY>
4223
+ <!ATTLIST xades:Include
4224
+ URI CDATA #REQUIRED
4225
+ referencedData CDATA #IMPLIED
4226
+ >
4227
+
4228
+ <!ELEMENT xades:ReferenceInfo (ds:DigestMethod, ds:DigestValue)>
4229
+ <!ATTLIST xades:ReferenceInfo
4230
+ Id ID #IMPLIED
4231
+ URI CDATA #IMPLIED
4232
+ >
4233
+ <!ELEMENT xades:XAdESTimeStamp (xades:Include*, ds:CanonicalizationMethod?,
4234
+ (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp)+)>
4235
+ <!ATTLIST xades:XAdESTimeStamp
4236
+ Id ID #IMPLIED
4237
+ >
4238
+
4239
+ <!ELEMENT xades:OtherTimeStamp (xades:ReferenceInfo+, ds:CanonicalizationMethod?,
4240
+ (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp))>
4241
+ <!ATTLIST xades:OtherTimeStamp
4242
+ Id ID #IMPLIED
4243
+ >
4244
+
4245
+ <!ELEMENT xades:EncapsulatedTimeStamp (#PCDATA)>
4246
+ <!ATTLIST xades:EncapsulatedTimeStamp
4247
+ Id ID #IMPLIED
4248
+ >
4249
+
4250
+ <!ELEMENT xades:XMLTimeStamp (#PCDATA %XMLTimeStamp.ANY; )*>
4251
+
4252
+ <!-- End time-stamp tokens container -->
4253
+
4254
+ <!-- Start container types -->
4255
+
4256
+ <!-- Start QualifyingProperties -->
4257
+
4258
+ <!ELEMENT xades:QualifyingProperties (xades:SignedProperties?, xades:UnsignedProperties?)>
4259
+ <!ATTLIST xades:QualifyingProperties
4260
+ Target CDATA #REQUIRED
4261
+ Id ID #IMPLIED
4262
+ xmlns:xades CDATA #FIXED 'http://uri.etsi.org/01903/v1.3.2#'
4263
+ >
4264
+
4265
+ <!ELEMENT xades:SignedProperties (xades:SignedSignatureProperties,
4266
+ xades:SignedDataObjectProperties?)>
4267
+ <!ATTLIST xades:SignedProperties
4268
+ Id ID #IMPLIED
4269
+ >
4270
+
4271
+ <!ELEMENT xades:UnsignedProperties (xades:UnsignedSignatureProperties?,
4272
+ xades:UnsignedDataObjectProperties?)>
4273
+ <!ATTLIST xades:UnsignedProperties
4274
+ Id ID #IMPLIED
4275
+ >
4276
+
4277
+ <!-- End QualifyingProperties -->
4278
+
4279
+ <!-- Start SignedSignatureProperties, SignedDataObjectProperties,
4280
+ UnsignedSignatureProperties, UnsignedDataObjectProperties -->
4281
+
4282
+ <!ELEMENT xades:SignedSignatureProperties (xades:SigningTime?, xades:SigningCertificate?,
4283
+ xades:SignaturePolicyIdentifier?, xades:SignatureProductionPlace?, xades:SignerRole?)>
4284
+ <!ATTLIST xades:SignedSignatureProperties
4285
+ Id ID #IMPLIED
4286
+ >
4287
+
4288
+ <!ELEMENT xades:SignedDataObjectProperties (xades:DataObjectFormat*,
4289
+ xades:CommitmentTypeIndication*, xades:AllDataObjectsTimeStamp*,
4290
+ xades:IndividualDataObjectsTimeStamp*)>
4291
+ <!ATTLIST xades:SignedDataObjectProperties
4292
+ Id ID #IMPLIED
4293
+ >
4294
+
4295
+ <!ELEMENT xades:UnsignedSignatureProperties (xades:CounterSignature | xades:SignatureTimeStamp
4296
+ | xades:CompleteCertificateRefs | xades:CompleteRevocationRefs | xades:AttributeCertificateRefs
4297
+ | xades:AttributeRevocationRefs | (xades:SigAndRefsTimeStamp | xades:RefsOnlyTimeStamp) |
4298
+ xades:CertificateValues | xades:RevocationValues | xades:AttrAuthoritiesCertValues
4299
+ | xades:AttributeRevocationValues | xades:ArchiveTimeStamp)+>
4300
+ <!ATTLIST xades:UnsignedSignatureProperties
4301
+ Id ID #IMPLIED
4302
+ >
4303
+
4304
+ <!ELEMENT xades:UnsignedDataObjectProperties (xades:UnsignedDataObjectProperty*)>
4305
+ <!ATTLIST xades:UnsignedDataObjectProperties
4306
+ Id ID #IMPLIED
4307
+ >
4308
+
4309
+ <!ELEMENT xades:UnsignedDataObjectProperty (#PCDATA %Any.ANY;)*>
4310
+
4311
+ <!-- End SignedSignatureProperties, SignedDataObjectProperties,
4312
+ UnsignedSignatureProperties, UnsignedDataObjectProperties -->
4313
+
4314
+ <!-- Start QualifyingPropertiesReference -->
4315
+
4316
+ <!ELEMENT xades:QualifyingPropertiesReference EMPTY>
4317
+ <!ATTLIST xades:QualifyingPropertiesReference
4318
+ URI CDATA #REQUIRED
4319
+ Id ID #IMPLIED
4320
+ >
4321
+
4322
+ <!-- End QualifyingPropertiesReference -->
4323
+
4324
+ <!-- End container types -->
4325
+
4326
+ <!-- Start SigningTime -->
4327
+
4328
+ <!ELEMENT xades:SigningTime (#PCDATA)>
4329
+
4330
+ <!-- End SigningTime -->
4331
+
4332
+ <!-- Start SigningCertificate -->
4333
+
4334
+ <!ELEMENT xades:SigningCertificate (xades:Cert+)>
4335
+ <!ELEMENT xades:Cert (xades:CertDigest, xades:IssuerSerial)>
4336
+ <!ATTLIST xades:Cert
4337
+ URI CDATA #IMPLIED
4338
+ >
4339
+ <!ELEMENT xades:CertDigest (ds:DigestMethod, ds:DigestValue)>
4340
+ <!ELEMENT xades:IssuerSerial (ds:X509IssuerName, ds:X509SerialNumber)>
4341
+ <!ELEMENT xades:X509IssuerName (#PCDATA)>
4342
+ <!ELEMENT xades:X509SerialNumber (#PCDATA)>
4343
+
4344
+ <!-- End SigningCertificate -->
4345
+
4346
+ <!-- Start SignaturePolicyIdentifier -->
4347
+
4348
+ <!ELEMENT xades:SignaturePolicyIdentifier (xades:SignaturePolicyId |
4349
+ xades:SignaturePolicyImplied)>
4350
+ <!ELEMENT xades:SignaturePolicyImplied ANY>
4351
+ <!ELEMENT xades:SignaturePolicyId (xades:SigPolicyId, ds:Transforms?, xades:SigPolicyHash,
4352
+ xades:SigPolicyQualifiers?)>
4353
+ <!ELEMENT xades:SigPolicyId (xades:Identifier, xades:Description?, xades:DocumentationReferences?)>
4354
+ <!ELEMENT xades:SigPolicyHash (ds:DigestMethod, ds:DigestValue)>
4355
+ <!ELEMENT xades:SigPolicyQualifiers (xades:SigPolicyQualifier+)>
4356
+ <!ELEMENT xades:SigPolicyQualifier (#PCDATA|xades:SPURI %Any.ANY; )*>
4357
+
4358
+ <!-- End SignaturePolicyIdentifier -->
4359
+
4360
+ <!-- Start SPURI and SPUserNotice -->
4361
+
4362
+ <!ELEMENT xades:SPURI (#PCDATA)>
4363
+ <!ELEMENT xades:SPUserNotice (xades:NoticeRef?, xades:ExplicitText?)>
4364
+ <!ELEMENT xades:NoticeRef (xades:Organization, xades:NoticeNumbers)>
4365
+ <!ELEMENT xades:ExplicitText (#PCDATA)>
4366
+ <!ELEMENT xades:Organization (#PCDATA)>
4367
+ <!ELEMENT xades:NoticeNumbers (xades:int*)>
4368
+ <!ELEMENT xades:int (#PCDATA)>
4369
+
4370
+ <!-- End SPURI and SPUserNotice -->
4371
+
4372
+ <!-- Start CounterSignature -->
4373
+
4374
+ <!ELEMENT xades:CounterSignature (ds:Signature)>
4375
+
4376
+ <!-- End CounterSignature -->
4377
+
4378
+ <!-- Start DataObjectFormat -->
4379
+
4380
+ <!ELEMENT xades:DataObjectFormat (xades:Description?, xades:ObjectIdentifier?, xades:MimeType?,
4381
+ xades:Encoding?)>
4382
+ <!ATTLIST xades:DataObjectFormat
4383
+ ObjectReference CDATA #REQUIRED
4384
+ >
4385
+ <!ELEMENT xades:MimeType (#PCDATA)>
4386
+ <!ELEMENT xades:Encoding (#PCDATA)>
4387
+
4388
+ <!-- End DataObjectFormat -->
4389
+
4390
+ <!-- Start CommitmentTypeIndication -->
4391
+
4392
+ <!ELEMENT xades:CommitmentTypeIndication (xades:CommitmentTypeId, (xades:ObjectReference+ |
4393
+ xades:AllSignedDataObjects), xades:CommitmentTypeQualifiers?)>
4394
+ <!ELEMENT xades:CommitmentTypeId (xades:Identifier, xades:Description?,
4395
+ xades:DocumentationReferences?)>
4396
+ <!ELEMENT xades:ObjectReference (#PCDATA)>
4397
+ <!ELEMENT xades:AllSignedDataObjects ANY>
4398
+ <!ELEMENT xades:CommitmentTypeQualifiers (xades:CommitmentTypeQualifier*)>
4399
+ <!ELEMENT xades:CommitmentTypeQualifier (#PCDATA %Any.ANY; )*>
4400
+
4401
+ <!-- End CommitmentTypeIndication -->
4402
+
4403
+ <!-- Start SignatureProductionPlace -->
4404
+
4405
+ <!ELEMENT xades:SignatureProductionPlace (xades:City?, xades:StateOrProvince?, xades:PostalCode?,
4406
+ xades:CountryName?)>
4407
+ <!ELEMENT xades:City (#PCDATA)>
4408
+ <!ELEMENT xades:StateOrProvince (#PCDATA)>
4409
+ <!ELEMENT xades:PostalCode (#PCDATA)>
4410
+ <!ELEMENT xades:CountryName (#PCDATA)>
4411
+
4412
+ <!-- End SignatureProductionPlace -->
4413
+
4414
+ <!-- Start SignerRole -->
4415
+
4416
+ <!ELEMENT xades:SignerRole (xades:ClaimedRoles?, xades:CertifiedRoles?)>
4417
+ <!ELEMENT xades:ClaimedRoles (xades:ClaimedRole+)>
4418
+ <!ELEMENT xades:CertifiedRoles (xades:CertifiedRole+)>
4419
+ <!ELEMENT xades:ClaimedRole (#PCDATA %Any.ANY; )*>
4420
+ <!ELEMENT xades:CertifiedRole (#PCDATA)>
4421
+ <!ATTLIST xades:CertifiedRole
4422
+ Id ID #IMPLIED
4423
+ Encoding CDATA #IMPLIED
4424
+ >
4425
+
4426
+ <!-- End SignerRole -->
4427
+
4428
+ <!-- Start AllDataObjectsTimeStamp, IndividualDataObjectsTimeStamp,
4429
+ SignatureTimeStamp -->
4430
+
4431
+ <!ELEMENT xades:AllDataObjectsTimeStamp (ds:CanonicalizationMethod?,
4432
+ (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp)+)>
4433
+ <!ATTLIST xades:AllDataObjectsTimeStamp
4434
+ Id ID #IMPLIED
4435
+ >
4436
+
4437
+ <!ELEMENT xades:IndividualDataObjectsTimeStamp (xades:Include+, ds:CanonicalizationMethod?,
4438
+ (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp)+)>
4439
+ <!ATTLIST xades:IndividualDataObjectsTimeStamp
4440
+ Id ID #IMPLIED
4441
+ >
4442
+
4443
+ <!ELEMENT xades:SignatureTimeStamp (ds:CanonicalizationMethod?, (xades:EncapsulatedTimeStamp
4444
+ | xades:XMLTimeStamp)+)>
4445
+ <!ATTLIST xades:SignatureTimeStamp
4446
+ Id ID #IMPLIED
4447
+ >
4448
+
4449
+ <!-- End AllDataObjectsTimeStamp, IndividualDataObjectsTimeStamp,
4450
+ SignatureTimeStamp -->
4451
+
4452
+ <!-- Start CompleteCertificateRefs -->
4453
+
4454
+ <!ELEMENT xades:CompleteCertificateRefs (xades:CertRefs)>
4455
+ <!ATTLIST xades:CompleteCertificateRefs
4456
+ Id ID #IMPLIED
4457
+ >
4458
+ <!ELEMENT xades:CertRefs (xades:Cert+)>
4459
+
4460
+ <!-- End CompleteCertificateRefs -->
4461
+
4462
+ <!-- Start AttributeCertificateRefs -->
4463
+
4464
+ <!ELEMENT xades:AttributeCertificateRefs (xades:CertRefs)>
4465
+ <!ATTLIST xades:AttributeCertificateRefs
4466
+ Id ID #IMPLIED
4467
+ >
4468
+
4469
+ <!-- End AttributeCertificateRefs -->
4470
+
4471
+ <!-- Start CompleteRevocationRefs -->
4472
+
4473
+ <!ELEMENT xades:CompleteRevocationRefs (xades:CRLRefs?, xades:OCSPRefs?, xades:OtherRefs?)>
4474
+ <!ATTLIST xades:CompleteRevocationRefs
4475
+ Id ID #IMPLIED
4476
+ >
4477
+ <!ELEMENT xades:CRLRefs (xades:CRLRef+)>
4478
+ <!ELEMENT xades:OCSPRefs (xades:OCSPRef+)>
4479
+ <!ELEMENT xades:OtherRefs (xades:OtherRef+)>
4480
+
4481
+ <!ELEMENT xades:CRLRef (xades:DigestAlgAndValue, xades:CRLIdentifier?)>
4482
+ <!ELEMENT xades:OCSPRef (xades:OCSPIdentifier, xades:DigestAlgAndValue?)>
4483
+ <!ELEMENT xades:OtherRef (#PCDATA %Any.ANY; )*>
4484
+
4485
+ <!ELEMENT xades:DigestAlgAndValue (ds:DigestMethod, ds:DigestValue)>
4486
+ <!ELEMENT xades:CRLIdentifier (xades:Issuer, xades:IssueTime, xades:Number?)>
4487
+ <!ATTLIST xades:CRLIdentifier
4488
+ URI CDATA #IMPLIED
4489
+ >
4490
+ <!ELEMENT xades:OCSPIdentifier (xades:ResponderID, xades:ProducedAt)>
4491
+ <!ATTLIST xades:OCSPIdentifier
4492
+ URI CDATA #IMPLIED
4493
+ >
4494
+
4495
+ <!ELEMENT xades:Issuer (#PCDATA)>
4496
+ <!ELEMENT xades:IssueTime (#PCDATA)>
4497
+ <!ELEMENT xades:Number (#PCDATA)>
4498
+
4499
+ <!ELEMENT xades:ResponderID (xades:ByName | xades:ByKey)>
4500
+ <!ELEMENT xades:ByName (#PCDATA)>
4501
+ <!ELEMENT xades:ByKey (#PCDATA)>
4502
+ <!ELEMENT xades:ProducedAt (#PCDATA)>
4503
+
4504
+ <!-- End CompleteRevocationRefs -->
4505
+
4506
+ <!-- Start AttributeRevocationRefs -->
4507
+
4508
+ <!ELEMENT xades:AttributeRevocationRefs (xades:CRLRefs?, xades:OCSPRefs?, xades:OtherRefs?)>
4509
+ <!ATTLIST xades:AttributeRevocationRefs
4510
+ Id ID #IMPLIED
4511
+ >
4512
+
4513
+ <!-- End AttributeRevocationRefs -->
4514
+
4515
+ <!-- Start SigAndRefsTimeStamp, RefsOnlyTimeStamp -->
4516
+
4517
+ <!ELEMENT xades:SigAndRefsTimeStamp (xades:Include*, ds:CanonicalizationMethod?,
4518
+ (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp)+)>
4519
+ <!ATTLIST xades:SigAndRefsTimeStamp
4520
+ Id ID #IMPLIED
4521
+ >
4522
+
4523
+ <!ELEMENT xades:RefsOnlyTimeStamp (xades:Include*, ds:CanonicalizationMethod?,
4524
+ (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp)+)>
4525
+ <!ATTLIST xades:RefsOnlyTimeStamp
4526
+ Id ID #IMPLIED
4527
+ >
4528
+
4529
+ <!-- End SigAndRefsTimeStamp, RefsOnlyTimeStamp -->
4530
+
4531
+ <!-- Start CertificateValues -->
4532
+
4533
+ <!ELEMENT xades:CertificateValues (xades:EncapsulatedX509Certificate |
4534
+ xades:OtherCertificate)*>
4535
+ <!ATTLIST xades:CertificateValues
4536
+ Id ID #IMPLIED
4537
+ >
4538
+
4539
+ <!ELEMENT xades:EncapsulatedX509Certificate (#PCDATA)>
4540
+ <!ATTLIST xades:EncapsulatedX509Certificate
4541
+ Id ID #IMPLIED
4542
+ Encoding CDATA #IMPLIED
4543
+ >
4544
+ <!ELEMENT xades:OtherCertificate (#PCDATA %Any.ANY;)*>
4545
+
4546
+ <!ELEMENT xades:AttrAuthoritiesCertValues (xades:EncapsulatedX509Certificate |
4547
+ xades:OtherCertificate)*>
4548
+ <!ATTLIST xades:AttrAuthoritiesCertValues
4549
+ Id ID #IMPLIED
4550
+ >
4551
+
4552
+ <!-- Start RevocationValues -->
4553
+
4554
+ <!ELEMENT xades:RevocationValues (xades:CRLValues?, xades:OCSPValues?, xades:OtherValues?)>
4555
+ <!ATTLIST xades:RevocationValues
4556
+ Id ID #IMPLIED
4557
+ >
4558
+
4559
+ <!ELEMENT xades:CRLValues (xades:EncapsulatedCRLValue+)>
4560
+ <!ELEMENT xades:OCSPValues (xades:EncapsulatedOCSPValue+)>
4561
+ <!ELEMENT xades:OtherValues (xades:OtherValue+)>
4562
+
4563
+ <!ELEMENT xades:EncapsulatedCRLValue (#PCDATA)>
4564
+ <!ATTLIST xades:EncapsulatedCRLValue
4565
+ Id ID #IMPLIED
4566
+ Encoding CDATA #IMPLIED
4567
+ >
4568
+ <!ELEMENT xades:EncapsulatedOCSPValue (#PCDATA)>
4569
+ <!ATTLIST xades:EncapsulatedOCSPValue
4570
+ Id ID #IMPLIED
4571
+ Encoding CDATA #IMPLIED
4572
+ >
4573
+ <!ELEMENT xades:OtherValue (#PCDATA %Any.ANY; )*>
4574
+
4575
+ <!-- End RevocationValues -->
4576
+
4577
+ <!ELEMENT xades:AttributeRevocationValues (xades:CRLValues?, xades:OCSPValues?, xades:OtherValues?)>
4578
+ <!ATTLIST xades:AttributeRevocationValues
4579
+ Id ID #IMPLIED
4580
+ >
4581
+ <!-- Start ArchiveTimeStamp -->
4582
+
4583
+ <!ELEMENT xades:ArchiveTimeStamp (xades:Include*, ds:CanonicalizationMethod?,
4584
+ (xades:EncapsulatedTimeStamp | xades:XMLTimeStamp)+)>
4585
+ <!ATTLIST xades:ArchiveTimeStamp
4586
+ Id ID #IMPLIED
4587
+ >
4588
+
4589
+
4590
+ <!-- End ArchiveTimeStamp -->