]> git.ipfire.org Git - thirdparty/python-drafthorse.git/commitdiff
zugferd v2.2 partial update
authorBen Dangelmayr <dangelmayr@rami.io>
Wed, 18 May 2022 13:08:39 +0000 (15:08 +0200)
committerBen Dangelmayr <dangelmayr@rami.io>
Wed, 18 May 2022 13:08:39 +0000 (15:08 +0200)
16 files changed:
drafthorse/models/accounting.py
drafthorse/models/party.py
drafthorse/models/payment.py
drafthorse/models/references.py
drafthorse/models/trade.py
drafthorse/models/tradelines.py
drafthorse/schema/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd
drafthorse/schema/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd
drafthorse/schema/FACTUR-X_BASIC_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd
drafthorse/schema/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd
drafthorse/schema/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd
drafthorse/schema/FACTUR-X_EN16931_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd
drafthorse/schema/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_QualifiedDataType_100.xsd
drafthorse/schema/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_100.xsd
drafthorse/schema/FACTUR-X_EXTENDED_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_100.xsd
tests/samples/zugferd_2p1_EXTENDED_InnergemeinschLieferungMehrereBestellungen.xml

index 893dbcfc0478c92ab2acdfed9770f21609318724..85d8e77c78861164211dc10e814c00f500c17ad4 100644 (file)
@@ -2,11 +2,25 @@
 from . import BASIC, COMFORT, EXTENDED, NS_RAM
 from .elements import Element
 from .fields import (
-    CurrencyField, DateTimeField, DecimalField, IndicatorField, MultiField,
-    QuantityField, StringField,
+    CurrencyField, Field, DateTimeField, DecimalField, IndicatorField, MultiField,
+    QuantityField, StringField, IDField
 )
 
+class BillingSpecifiedPeriod(Element):
+    description = StringField(NS_RAM, "Description", required=True, profile=COMFORT,
+                              _d="Freitext der Zahlungsbedingungen")
+    start = DateTimeField(NS_RAM, "StartDateTime", required=True, profile=COMFORT)
+    end = DateTimeField(NS_RAM, "EndDateTime", required=True, profile=COMFORT)
 
+    class Meta:
+        namespace = NS_RAM
+        tag = "BillingSpecifiedPeriod"
+class SellerOrderReferencedDocument(Element):
+    issuer_ID = IDField(NS_RAM, "IssuerAssignedID", profile=COMFORT)
+    issue_date_time = DateTimeField(NS_RAM, "FormattedIssueDateTime", required=True, profile=EXTENDED)
+    class Meta:
+        namespace = NS_RAM
+        tag = "SellerOrderReferencedDocument"
 class LineApplicableTradeTax(Element):
     calculated_amount = DecimalField(NS_RAM, "CalculatedAmount", required=True,
                                      profile=BASIC, _d="Steuerbetrag")
@@ -18,7 +32,6 @@ class LineApplicableTradeTax(Element):
                                 profile=COMFORT, _d="Steuerkategorie (Wert)")
     applicable_percent = DecimalField(NS_RAM, "ApplicablePercent",
                                       required=True, profile=BASIC)
-
     class Meta:
         namespace = NS_RAM
         tag = "ApplicableTradeTax"
@@ -45,7 +58,6 @@ class ApplicableTradeTax(Element):
                                 profile=COMFORT, _d="Steuerkategorie (Wert)")
     rate_applicable_percent = DecimalField(NS_RAM, "RateApplicablePercent",
                                            required=True, profile=BASIC)
-
     class Meta:
         namespace = NS_RAM
         tag = "ApplicableTradeTax"
@@ -90,15 +102,6 @@ class MonetarySummation(Element):
         tag = "SpecifiedTradeSettlementHeaderMonetarySummation"
 
 
-class BillingSpecifiedPeriod(Element):
-    start = DateTimeField(NS_RAM, "StartDateTime", required=True, profile=COMFORT)
-    end = DateTimeField(NS_RAM, "EndDateTime", required=True, profile=COMFORT)
-
-    class Meta:
-        namespace = NS_RAM
-        tag = "BillingSpecifiedPeriod"
-
-
 class AppliedTradeTax(Element):
     type_code = StringField(NS_RAM, "TypeCode", required=True, profile=COMFORT)
     category_code = StringField(NS_RAM, "CategoryCode", required=True, profile=COMFORT)
index b4d4e2f0476649436d97524a4be391a844cf13da..19fdbbf45ea257c2127c0867b9a6c4eb4cfeb87e 100644 (file)
@@ -14,6 +14,12 @@ class PostalTradeAddress(Element):
         namespace = NS_RAM
         tag = "PostalTradeAddress"
 
+class URIUniversalCommunication(Element):
+    uri_ID = IDField(NS_RAM, "URIID", required=False, profile=BASIC)
+
+    class Meta:
+        namespace = NS_RAM
+        tag = "URIUniversalCommunication"
 
 class TaxRegistration(Element):
     id = IDField(NS_RAM, "ID")
@@ -22,7 +28,6 @@ class TaxRegistration(Element):
         namespace = NS_RAM
         tag = "SpecifiedTaxRegistration"
 
-
 class PhoneNumber(Element):
     number = StringField(NS_RAM, "CompleteNumber", required=False,
                          profile=EXTENDED)
@@ -75,7 +80,14 @@ class TradeParty(Element):
     address = Field(PostalTradeAddress, required=False, profile=BASIC,
                     _d="Anschrift des Käufers")
     tax_registrations = MultiField(TaxRegistration, required=False, profile=BASIC)
+    electronic_adress = MultiField(URIUniversalCommunication, required=False, profile=BASIC)
+    description = StringField(NS_RAM, "Description", required=True, profile=COMFORT,
+                              _d="Freitext der Zahlungsbedingungen")
 
+class SellerTaxRepresentativeTradeParty(TradeParty):
+    class Meta:
+        namespace = NS_RAM
+        tag = "SellerTaxRepresentativeTradeParty"
 
 class PayeeTradeParty(TradeParty):
     class Meta:
index 3f7c94a1ceac1a1606ba38d99eacb88f23eab47c..9d1f695d98d6dceb4dc1d309ac119fedd9bd6fee 100644 (file)
@@ -103,3 +103,4 @@ class PaymentTerms(Element):
     class Meta:
         namespace = NS_RAM
         tag = "SpecifiedTradePaymentTerms"
+
index d423b3819b1dee04a9b197a3548eef765c16e63f..6e3ca2bc8b99142a246fab60cde74a51c2561656 100644 (file)
@@ -1,14 +1,24 @@
 from . import COMFORT, EXTENDED, NS_RAM
 from .elements import Element
-from .fields import DirectDateTimeField, StringField
+from .fields import DirectDateTimeField, StringField, Field
 
+class ProcuringProjectType(Element):
+    id = StringField(NS_RAM, "ID")
+    name = StringField(NS_RAM, "Name")
+    class Meta:
+        namespace = NS_RAM
+        tag = "ProcuringProjectType"
 
 class ReferencedDocument(Element):
     date_time_string = DirectDateTimeField(NS_RAM, "DateTimeString", required=False,
                                            profile=COMFORT)
     issuer_assigned_id = StringField(NS_RAM, "IssuerAssignedID", required=False,
                                      profile=COMFORT)
-
+class AttachmentBinaryObject(Element):
+    name = StringField(NS_RAM, "filename", profile=EXTENDED)
+    class Meta:
+        namespace = NS_RAM
+        tag = "AttachmentBinaryObject"
 
 class BuyerOrderReferencedDocument(ReferencedDocument):
     class Meta:
@@ -30,11 +40,25 @@ class AdditionalReferencedDocument(Element):
     date_time_string = DirectDateTimeField(NS_RAM, "DateTimeString", required=False,
                                            profile=COMFORT)
     type_code = StringField(NS_RAM, "TypeCode", profile=EXTENDED, required=True)
-
+    name = StringField(NS_RAM, "Name", profile=COMFORT, required=False)
+    attached_object = Field(AttachmentBinaryObject, required=False, profile=EXTENDED)
     class Meta:
         namespace = NS_RAM
         tag = "AdditionalReferencedDocument"
 
+class InvoiceReferencedDocument(Element):
+    issuer_assigned_id = StringField(NS_RAM, "IssuerAssignedID", required=False,
+                                     profile=COMFORT)
+
+    date_time_string = DirectDateTimeField(NS_RAM, "DateTimeString", required=True,
+                                           profile=COMFORT)
+    type_code = StringField(NS_RAM, "TypeCode", profile=EXTENDED, required=False)
+
+
+    class Meta:
+        namespace = NS_RAM
+        tag = "InvoiceReferencedDocument"
+
 
 class UltimateCustomerOrderReferencedDocument(ReferencedDocument):
     class Meta:
index c2996068511c0130fd54200bf06075c6a319375b..ef30cefc04a0673f39a937c3515dc057431bcbd1 100644 (file)
@@ -1,23 +1,22 @@
 from . import BASIC, COMFORT, EXTENDED, NS_RAM, NS_RSM
 from .accounting import (
-    ApplicableTradeTax, AppliedTradeTax, BillingSpecifiedPeriod,
-    MonetarySummation, ReceivableAccountingAccount, TradeAllowanceCharge,
+    ApplicableTradeTax, AppliedTradeTax,
+    MonetarySummation, ReceivableAccountingAccount, TradeAllowanceCharge, BillingSpecifiedPeriod, SellerOrderReferencedDocument
 )
 from .delivery import TradeDelivery
 from .elements import Element
-from .fields import DecimalField, Field, MultiField, StringField
+from .fields import DecimalField, Field, MultiField, StringField, IDField
 from .party import (
     BuyerTradeParty, EndUserTradeParty, InvoiceeTradeParty, PayeeTradeParty,
-    SellerTradeParty,
+    SellerTradeParty, SellerTaxRepresentativeTradeParty,
 )
 from .payment import PaymentMeans, PaymentTerms
 from .references import (
     AdditionalReferencedDocument, BuyerOrderReferencedDocument,
-    ContractReferencedDocument, UltimateCustomerOrderReferencedDocument,
+    ContractReferencedDocument, UltimateCustomerOrderReferencedDocument, ProcuringProjectType, InvoiceReferencedDocument
 )
 from .tradelines import LineItem
 
-
 class DeliveryTerms(Element):
     type_code = StringField(NS_RAM, "DeliveryTypeCode", required=False,
                             profile=EXTENDED, _d="Lieferbedingung (Code)")
@@ -39,7 +38,11 @@ class TradeAgreement(Element):
     contract = Field(ContractReferencedDocument, required=False, profile=COMFORT)
     additional_references = MultiField(AdditionalReferencedDocument, required=False,
                                        profile=COMFORT)
-
+    description = StringField(NS_RAM, "Description", required=False,
+                                  profile=COMFORT)
+    seller_tax_representative_party = Field(SellerTaxRepresentativeTradeParty, required=False)
+    order_document = Field(SellerOrderReferencedDocument, required=False)
+    procuring_project_type = Field(ProcuringProjectType, required=False)
     class Meta:
         namespace = NS_RAM
         tag = "ApplicableHeaderTradeAgreement"
@@ -74,7 +77,10 @@ class TradeSettlement(Element):
                                _d="Detailinformation zu Belegsummen")
     accounting_account = Field(ReceivableAccountingAccount, required=False, profile=EXTENDED,
                                _d="Detailinformationen zur Buchungsreferenz")
-
+    creditor_reference_ID = IDField(NS_RAM, "CreditorReferenceID")
+    period = Field(BillingSpecifiedPeriod, required=False, profile=BASIC)
+    tax_currency_code = StringField(NS_RAM, "TaxCurrencyCode", required=False, profile=COMFORT)
+    invoice_referenced_document = Field(InvoiceReferencedDocument, required=False, profile=BASIC)
     class Meta:
         namespace = NS_RAM
         tag = "ApplicableHeaderTradeSettlement"
index 9ba88fb0b67b17b41895b3ec4803ab1f47116630..dfda603565c6e7247c45602c78e66e8c5f46e755 100644 (file)
@@ -1,7 +1,7 @@
 from . import BASIC, COMFORT, EXTENDED, NS_RAM
 from .accounting import (
     AccountingAccount, ApplicableTradeTax, BillingSpecifiedPeriod,
-    TradeAllowanceCharge,
+    TradeAllowanceCharge, ReceivableAccountingAccount
 )
 from .delivery import SupplyChainEvent
 from .elements import Element
@@ -15,7 +15,7 @@ from .references import (
     LineAdditionalReferencedDocument, LineBuyerOrderReferencedDocument,
     LineContractReferencedDocument, LineUltimateCustomerOrderReferencedDocument,
     LineDeliveryNoteReferencedDocument, LineDespatchAdviceReferencedDocument,
-    LineReceivingAdviceReferencedDocument,
+    LineReceivingAdviceReferencedDocument, InvoiceReferencedDocument
 )
 
 
@@ -106,11 +106,15 @@ class LineSummation(Element):
 
 class LineSettlement(Element):
     trade_tax = Field(ApplicableTradeTax, required=False, profile=COMFORT)
-    period = Field(BillingSpecifiedPeriod, required=False, profile=EXTENDED)
     accounting_account = Field(AccountingAccount, required=False, profile=EXTENDED,
                                _d="Kostenstelle")
     monetary_summation = Field(LineSummation, required=False, profile=COMFORT)
-
+    period = Field(BillingSpecifiedPeriod, required=False, profile=COMFORT)
+    allowance_charge = MultiField(TradeAllowanceCharge, required=False, profile=COMFORT,
+                                  _d="Schalter für Zu-/Abschlag")
+    invoice_referenced_document = Field(InvoiceReferencedDocument, required=False, profile=EXTENDED)
+    accounting_account = Field(ReceivableAccountingAccount, required=False, profile=EXTENDED,
+                               _d="Detailinformationen zur Buchungsreferenz")
     class Meta:
         namespace = NS_RAM
         tag = "SpecifiedLineTradeSettlement"
index 4803b82274750ebe9909054aa4f9c2de80625de3..1e0277d8ec1f2cc4a2593976ecaf5155758751ba 100644 (file)
       <xs:enumeration value="VU"/>\r
       <xs:enumeration value="WF"/>\r
       <xs:enumeration value="WS"/>\r
+      <xs:enumeration value="XI"/>\r
       <xs:enumeration value="YE"/>\r
       <xs:enumeration value="YT"/>\r
       <xs:enumeration value="ZA"/>\r
       <xs:enumeration value="633"/>\r
       <xs:enumeration value="751"/>\r
       <xs:enumeration value="780"/>\r
+      <xs:enumeration value="875"/>\r
+      <xs:enumeration value="876"/>\r
+      <xs:enumeration value="877"/>\r
       <xs:enumeration value="935"/>\r
     </xs:restriction>\r
   </xs:simpleType>\r
index dac9f9c2b826da5d511d46c576bc7c70b95a6510..66f338abae96c90a96c5cf031f400bdbef1d0a04 100644 (file)
   </xs:complexType>\r
   <xs:complexType name="DocumentContextParameterType">\r
     <xs:sequence>\r
-      <xs:element name="ID" type="udt:IDType" minOccurs="0"/>\r
+      <xs:element name="ID" type="udt:IDType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="DocumentLineDocumentType">\r
     <xs:sequence>\r
       <xs:element name="LineID" type="udt:IDType"/>\r
+      <xs:element name="IncludedNote" type="ram:NoteType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="ExchangedDocumentContextType">\r
     <xs:sequence>\r
       <xs:element name="CreditorReferenceID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="PaymentReference" type="udt:TextType" minOccurs="0"/>\r
+      <xs:element name="TaxCurrencyCode" type="qdt:CurrencyCodeType" minOccurs="0"/>\r
       <xs:element name="InvoiceCurrencyCode" type="qdt:CurrencyCodeType"/>\r
       <xs:element name="PayeeTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
-      <xs:element name="SpecifiedTradeSettlementPaymentMeans" type="ram:TradeSettlementPaymentMeansType" minOccurs="0" maxOccurs="unbounded"/>\r
+      <xs:element name="SpecifiedTradeSettlementPaymentMeans" type="ram:TradeSettlementPaymentMeansType" minOccurs="0"/>\r
       <xs:element name="ApplicableTradeTax" type="ram:TradeTaxType" maxOccurs="unbounded"/>\r
       <xs:element name="BillingSpecifiedPeriod" type="ram:SpecifiedPeriodType" minOccurs="0"/>\r
       <xs:element name="SpecifiedTradeAllowanceCharge" type="ram:TradeAllowanceChargeType" minOccurs="0" maxOccurs="unbounded"/>\r
@@ -83,6 +85,7 @@
   </xs:complexType>\r
   <xs:complexType name="LineTradeAgreementType">\r
     <xs:sequence>\r
+      <xs:element name="GrossPriceProductTradePrice" type="ram:TradePriceType" minOccurs="0"/>\r
       <xs:element name="NetPriceProductTradePrice" type="ram:TradePriceType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
@@ -94,6 +97,7 @@
   <xs:complexType name="LineTradeSettlementType">\r
     <xs:sequence>\r
       <xs:element name="ApplicableTradeTax" type="ram:TradeTaxType"/>\r
+      <xs:element name="BillingSpecifiedPeriod" type="ram:SpecifiedPeriodType" minOccurs="0"/>\r
       <xs:element name="SpecifiedTradeAllowanceCharge" type="ram:TradeAllowanceChargeType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="SpecifiedTradeSettlementLineMonetarySummation" type="ram:TradeSettlementLineMonetarySummationType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="SupplyChainEventType">\r
     <xs:sequence>\r
-      <xs:element name="OccurrenceDateTime" type="udt:DateTimeType" minOccurs="0"/>\r
+      <xs:element name="OccurrenceDateTime" type="udt:DateTimeType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="SupplyChainTradeLineItemType">\r
       <xs:element name="AssociatedDocumentLineDocument" type="ram:DocumentLineDocumentType"/>\r
       <xs:element name="SpecifiedTradeProduct" type="ram:TradeProductType"/>\r
       <xs:element name="SpecifiedLineTradeAgreement" type="ram:LineTradeAgreementType"/>\r
-      <xs:element name="SpecifiedLineTradeDelivery" type="ram:LineTradeDeliveryType" minOccurs="0"/>\r
+      <xs:element name="SpecifiedLineTradeDelivery" type="ram:LineTradeDeliveryType"/>\r
       <xs:element name="SpecifiedLineTradeSettlement" type="ram:LineTradeSettlementType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
       <xs:element name="LineThree" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="CityName" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="CountryID" type="qdt:CountryIDType"/>\r
+      <xs:element name="CountrySubDivisionName" type="udt:TextType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradeAllowanceChargeType">\r
     <xs:sequence>\r
-      <xs:element name="ChargeIndicator" type="udt:IndicatorType" minOccurs="0"/>\r
+      <xs:element name="ChargeIndicator" type="udt:IndicatorType"/>\r
       <xs:element name="CalculationPercent" type="udt:PercentType" minOccurs="0"/>\r
       <xs:element name="BasisAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="ActualAmount" type="udt:AmountType"/>\r
       <xs:element name="SpecifiedLegalOrganization" type="ram:LegalOrganizationType" minOccurs="0"/>\r
       <xs:element name="PostalTradeAddress" type="ram:TradeAddressType" minOccurs="0"/>\r
       <xs:element name="URIUniversalCommunication" type="ram:UniversalCommunicationType" minOccurs="0"/>\r
-      <xs:element name="SpecifiedTaxRegistration" type="ram:TaxRegistrationType" minOccurs="0" maxOccurs="unbounded"/>\r
+      <xs:element name="SpecifiedTaxRegistration" type="ram:TaxRegistrationType" minOccurs="0" maxOccurs="2"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradePaymentTermsType">\r
     <xs:sequence>\r
+      <xs:element name="Description" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="DueDateDateTime" type="udt:DateTimeType" minOccurs="0"/>\r
       <xs:element name="DirectDebitMandateID" type="udt:IDType" minOccurs="0"/>\r
     </xs:sequence>\r
     <xs:sequence>\r
       <xs:element name="ChargeAmount" type="udt:AmountType"/>\r
       <xs:element name="BasisQuantity" type="udt:QuantityType" minOccurs="0"/>\r
+      <xs:element name="AppliedTradeAllowanceCharge" type="ram:TradeAllowanceChargeType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradeProductType">\r
       <xs:element name="ChargeTotalAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="AllowanceTotalAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="TaxBasisTotalAmount" type="udt:AmountType"/>\r
-      <xs:element name="TaxTotalAmount" type="udt:AmountType" minOccurs="0"/>\r
+      <xs:element name="TaxTotalAmount" type="udt:AmountType" minOccurs="0" maxOccurs="2"/>\r
       <xs:element name="GrandTotalAmount" type="udt:AmountType"/>\r
       <xs:element name="TotalPrepaidAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="DuePayableAmount" type="udt:AmountType"/>\r
index 20085d588feaff752f8f301550797895702e0f2e..f9cd7dda382a08505544b5b7cf02e89192c06f9b 100644 (file)
@@ -49,7 +49,7 @@
   <xs:complexType name="QuantityType">\r
     <xs:simpleContent>\r
       <xs:extension base="xs:decimal">\r
-        <xs:attribute name="unitCode" type="xs:token" use="required"/>\r
+        <xs:attribute name="unitCode" type="xs:token" use="optional"/>\r
       </xs:extension>\r
     </xs:simpleContent>\r
   </xs:complexType>\r
index 0aa4b17608afcbaa85a22a867319563d3f875001..aaa78d2c8a21690d1436e0701ccd33a33f493125 100644 (file)
       <xs:enumeration value="VU"/>\r
       <xs:enumeration value="WF"/>\r
       <xs:enumeration value="WS"/>\r
+      <xs:enumeration value="XI"/>\r
       <xs:enumeration value="YE"/>\r
       <xs:enumeration value="YT"/>\r
       <xs:enumeration value="ZA"/>\r
       <xs:enumeration value="633"/>\r
       <xs:enumeration value="751"/>\r
       <xs:enumeration value="780"/>\r
+      <xs:enumeration value="875"/>\r
+      <xs:enumeration value="876"/>\r
+      <xs:enumeration value="877"/>\r
       <xs:enumeration value="916"/>\r
       <xs:enumeration value="935"/>\r
     </xs:restriction>\r
index 24fe52fb164c34c730b514ba29e6bb26a4045391..be4a4b080f302a2e204a0cde54073207fdc27df6 100644 (file)
@@ -26,7 +26,7 @@
   </xs:complexType>\r
   <xs:complexType name="DocumentContextParameterType">\r
     <xs:sequence>\r
-      <xs:element name="ID" type="udt:IDType" minOccurs="0"/>\r
+      <xs:element name="ID" type="udt:IDType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="DocumentLineDocumentType">\r
@@ -77,7 +77,7 @@
       <xs:element name="TaxCurrencyCode" type="qdt:CurrencyCodeType" minOccurs="0"/>\r
       <xs:element name="InvoiceCurrencyCode" type="qdt:CurrencyCodeType"/>\r
       <xs:element name="PayeeTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
-      <xs:element name="SpecifiedTradeSettlementPaymentMeans" type="ram:TradeSettlementPaymentMeansType" minOccurs="0" maxOccurs="unbounded"/>\r
+      <xs:element name="SpecifiedTradeSettlementPaymentMeans" type="ram:TradeSettlementPaymentMeansType" minOccurs="0"/>\r
       <xs:element name="ApplicableTradeTax" type="ram:TradeTaxType" maxOccurs="unbounded"/>\r
       <xs:element name="BillingSpecifiedPeriod" type="ram:SpecifiedPeriodType" minOccurs="0"/>\r
       <xs:element name="SpecifiedTradeAllowanceCharge" type="ram:TradeAllowanceChargeType" minOccurs="0" maxOccurs="unbounded"/>\r
   </xs:complexType>\r
   <xs:complexType name="ProductClassificationType">\r
     <xs:sequence>\r
-      <xs:element name="ClassCode" type="udt:CodeType"/>\r
+      <xs:element name="ClassCode" type="udt:CodeType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="ReferencedDocumentType">\r
   </xs:complexType>\r
   <xs:complexType name="SupplyChainEventType">\r
     <xs:sequence>\r
-      <xs:element name="OccurrenceDateTime" type="udt:DateTimeType" minOccurs="0"/>\r
+      <xs:element name="OccurrenceDateTime" type="udt:DateTimeType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="SupplyChainTradeLineItemType">\r
       <xs:element name="AssociatedDocumentLineDocument" type="ram:DocumentLineDocumentType"/>\r
       <xs:element name="SpecifiedTradeProduct" type="ram:TradeProductType"/>\r
       <xs:element name="SpecifiedLineTradeAgreement" type="ram:LineTradeAgreementType"/>\r
-      <xs:element name="SpecifiedLineTradeDelivery" type="ram:LineTradeDeliveryType" minOccurs="0"/>\r
+      <xs:element name="SpecifiedLineTradeDelivery" type="ram:LineTradeDeliveryType"/>\r
       <xs:element name="SpecifiedLineTradeSettlement" type="ram:LineTradeSettlementType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   </xs:complexType>\r
   <xs:complexType name="TradeAllowanceChargeType">\r
     <xs:sequence>\r
-      <xs:element name="ChargeIndicator" type="udt:IndicatorType" minOccurs="0"/>\r
+      <xs:element name="ChargeIndicator" type="udt:IndicatorType"/>\r
       <xs:element name="CalculationPercent" type="udt:PercentType" minOccurs="0"/>\r
       <xs:element name="BasisAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="ActualAmount" type="udt:AmountType"/>\r
   </xs:complexType>\r
   <xs:complexType name="TradeCountryType">\r
     <xs:sequence>\r
-      <xs:element name="ID" type="qdt:CountryIDType"/>\r
+      <xs:element name="ID" type="qdt:CountryIDType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradePartyType">\r
       <xs:element name="DefinedTradeContact" type="ram:TradeContactType" minOccurs="0"/>\r
       <xs:element name="PostalTradeAddress" type="ram:TradeAddressType" minOccurs="0"/>\r
       <xs:element name="URIUniversalCommunication" type="ram:UniversalCommunicationType" minOccurs="0"/>\r
-      <xs:element name="SpecifiedTaxRegistration" type="ram:TaxRegistrationType" minOccurs="0" maxOccurs="unbounded"/>\r
+      <xs:element name="SpecifiedTaxRegistration" type="ram:TaxRegistrationType" minOccurs="0" maxOccurs="2"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradePaymentTermsType">\r
index b318b17239eeba10490459544b5d7e2a3af54080..3aa4d003cec20fbfb3e8c3b4ad521608c57f7c48 100644 (file)
@@ -73,7 +73,7 @@
   <xs:complexType name="QuantityType">\r
     <xs:simpleContent>\r
       <xs:extension base="xs:decimal">\r
-        <xs:attribute name="unitCode" type="xs:token" use="required"/>\r
+        <xs:attribute name="unitCode" type="xs:token" use="optional"/>\r
       </xs:extension>\r
     </xs:simpleContent>\r
   </xs:complexType>\r
index 5c88319ca59fb510dbd8e6523a121206291e83db..1deda10f4360dbfb4c2c08ce4f508216e93c07a2 100644 (file)
       <xs:extension base="qdt:AllowanceChargeReasonCodeContentType"/>\r
     </xs:simpleContent>\r
   </xs:complexType>\r
+  <xs:simpleType name="ContactTypeCodeContentType">\r
+    <xs:restriction base="xs:token"/>\r
+  </xs:simpleType>\r
+  <xs:complexType name="ContactTypeCodeType">\r
+    <xs:simpleContent>\r
+      <xs:extension base="qdt:ContactTypeCodeContentType"/>\r
+    </xs:simpleContent>\r
+  </xs:complexType>\r
   <xs:simpleType name="CountryIDContentType">\r
     <xs:restriction base="xs:token">\r
       <xs:enumeration value="1A"/>\r
       <xs:enumeration value="VU"/>\r
       <xs:enumeration value="WF"/>\r
       <xs:enumeration value="WS"/>\r
+      <xs:enumeration value="XI"/>\r
       <xs:enumeration value="YE"/>\r
       <xs:enumeration value="YT"/>\r
       <xs:enumeration value="ZA"/>\r
       <xs:enumeration value="749"/>\r
       <xs:enumeration value="750"/>\r
       <xs:enumeration value="751"/>\r
+      <xs:enumeration value="752"/>\r
+      <xs:enumeration value="753"/>\r
+      <xs:enumeration value="754"/>\r
+      <xs:enumeration value="755"/>\r
+      <xs:enumeration value="756"/>\r
+      <xs:enumeration value="757"/>\r
+      <xs:enumeration value="758"/>\r
+      <xs:enumeration value="759"/>\r
       <xs:enumeration value="760"/>\r
       <xs:enumeration value="761"/>\r
+      <xs:enumeration value="762"/>\r
       <xs:enumeration value="763"/>\r
       <xs:enumeration value="764"/>\r
       <xs:enumeration value="765"/>\r
       <xs:enumeration value="766"/>\r
+      <xs:enumeration value="767"/>\r
+      <xs:enumeration value="768"/>\r
+      <xs:enumeration value="769"/>\r
       <xs:enumeration value="770"/>\r
+      <xs:enumeration value="771"/>\r
+      <xs:enumeration value="772"/>\r
+      <xs:enumeration value="773"/>\r
+      <xs:enumeration value="774"/>\r
       <xs:enumeration value="775"/>\r
+      <xs:enumeration value="776"/>\r
+      <xs:enumeration value="777"/>\r
+      <xs:enumeration value="778"/>\r
+      <xs:enumeration value="779"/>\r
       <xs:enumeration value="780"/>\r
       <xs:enumeration value="781"/>\r
       <xs:enumeration value="782"/>\r
       <xs:enumeration value="810"/>\r
       <xs:enumeration value="811"/>\r
       <xs:enumeration value="812"/>\r
+      <xs:enumeration value="813"/>\r
+      <xs:enumeration value="814"/>\r
+      <xs:enumeration value="815"/>\r
+      <xs:enumeration value="816"/>\r
+      <xs:enumeration value="817"/>\r
+      <xs:enumeration value="818"/>\r
+      <xs:enumeration value="819"/>\r
       <xs:enumeration value="820"/>\r
       <xs:enumeration value="821"/>\r
       <xs:enumeration value="822"/>\r
       <xs:enumeration value="823"/>\r
       <xs:enumeration value="824"/>\r
       <xs:enumeration value="825"/>\r
+      <xs:enumeration value="826"/>\r
+      <xs:enumeration value="827"/>\r
+      <xs:enumeration value="828"/>\r
+      <xs:enumeration value="829"/>\r
       <xs:enumeration value="830"/>\r
+      <xs:enumeration value="831"/>\r
+      <xs:enumeration value="832"/>\r
       <xs:enumeration value="833"/>\r
+      <xs:enumeration value="834"/>\r
+      <xs:enumeration value="835"/>\r
+      <xs:enumeration value="836"/>\r
+      <xs:enumeration value="837"/>\r
+      <xs:enumeration value="838"/>\r
+      <xs:enumeration value="839"/>\r
       <xs:enumeration value="840"/>\r
       <xs:enumeration value="841"/>\r
+      <xs:enumeration value="842"/>\r
+      <xs:enumeration value="843"/>\r
+      <xs:enumeration value="844"/>\r
+      <xs:enumeration value="845"/>\r
+      <xs:enumeration value="846"/>\r
+      <xs:enumeration value="847"/>\r
+      <xs:enumeration value="848"/>\r
+      <xs:enumeration value="849"/>\r
       <xs:enumeration value="850"/>\r
       <xs:enumeration value="851"/>\r
       <xs:enumeration value="852"/>\r
       <xs:enumeration value="853"/>\r
+      <xs:enumeration value="854"/>\r
       <xs:enumeration value="855"/>\r
       <xs:enumeration value="856"/>\r
+      <xs:enumeration value="857"/>\r
+      <xs:enumeration value="858"/>\r
+      <xs:enumeration value="859"/>\r
       <xs:enumeration value="860"/>\r
       <xs:enumeration value="861"/>\r
       <xs:enumeration value="862"/>\r
       <xs:enumeration value="863"/>\r
       <xs:enumeration value="864"/>\r
       <xs:enumeration value="865"/>\r
+      <xs:enumeration value="866"/>\r
+      <xs:enumeration value="867"/>\r
+      <xs:enumeration value="868"/>\r
+      <xs:enumeration value="869"/>\r
       <xs:enumeration value="870"/>\r
+      <xs:enumeration value="871"/>\r
+      <xs:enumeration value="872"/>\r
+      <xs:enumeration value="873"/>\r
+      <xs:enumeration value="874"/>\r
+      <xs:enumeration value="875"/>\r
+      <xs:enumeration value="876"/>\r
+      <xs:enumeration value="877"/>\r
+      <xs:enumeration value="878"/>\r
+      <xs:enumeration value="879"/>\r
       <xs:enumeration value="890"/>\r
+      <xs:enumeration value="891"/>\r
+      <xs:enumeration value="892"/>\r
+      <xs:enumeration value="893"/>\r
+      <xs:enumeration value="894"/>\r
       <xs:enumeration value="895"/>\r
       <xs:enumeration value="896"/>\r
       <xs:enumeration value="901"/>\r
       <xs:extension base="qdt:LineStatusCodeContentType"/>\r
     </xs:simpleContent>\r
   </xs:complexType>\r
+  <xs:simpleType name="PartyRoleCodeContentType">\r
+    <xs:restriction base="xs:token"/>\r
+  </xs:simpleType>\r
+  <xs:complexType name="PartyRoleCodeType">\r
+    <xs:simpleContent>\r
+      <xs:extension base="qdt:PartyRoleCodeContentType"/>\r
+    </xs:simpleContent>\r
+  </xs:complexType>\r
   <xs:simpleType name="PaymentMeansCodeContentType">\r
     <xs:restriction base="xs:token">\r
       <xs:enumeration value="1"/>\r
index 81bc460f96f45c0ad35d444daeb2861ec2963c75..8198576fc95208255a75536a4437bb5d318f1828 100644 (file)
   </xs:complexType>\r
   <xs:complexType name="DocumentContextParameterType">\r
     <xs:sequence>\r
-      <xs:element name="ID" type="udt:IDType" minOccurs="0"/>\r
+      <xs:element name="ID" type="udt:IDType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="DocumentLineDocumentType">\r
     <xs:sequence>\r
       <xs:element name="LineID" type="udt:IDType"/>\r
+      <xs:element name="ParentLineID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="LineStatusCode" type="qdt:LineStatusCodeType" minOccurs="0"/>\r
       <xs:element name="LineStatusReasonCode" type="udt:CodeType" minOccurs="0"/>\r
       <xs:element name="IncludedNote" type="ram:NoteType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="BuyerReference" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="SellerTradeParty" type="ram:TradePartyType"/>\r
       <xs:element name="BuyerTradeParty" type="ram:TradePartyType"/>\r
+      <xs:element name="SalesAgentTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
+      <xs:element name="BuyerTaxRepresentativeTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
       <xs:element name="SellerTaxRepresentativeTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
       <xs:element name="ProductEndUserTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
       <xs:element name="ApplicableTradeDeliveryTerms" type="ram:TradeDeliveryTermsType" minOccurs="0"/>\r
       <xs:element name="SellerOrderReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
       <xs:element name="BuyerOrderReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
+      <xs:element name="QuotationReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
       <xs:element name="ContractReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
       <xs:element name="AdditionalReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0" maxOccurs="unbounded"/>\r
+      <xs:element name="BuyerAgentTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
       <xs:element name="SpecifiedProcuringProject" type="ram:ProcuringProjectType" minOccurs="0"/>\r
       <xs:element name="UltimateCustomerOrderReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0" maxOccurs="unbounded"/>\r
     </xs:sequence>\r
       <xs:element name="InvoicerTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
       <xs:element name="InvoiceeTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
       <xs:element name="PayeeTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
+      <xs:element name="PayerTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
       <xs:element name="TaxApplicableTradeCurrencyExchange" type="ram:TradeCurrencyExchangeType" minOccurs="0"/>\r
       <xs:element name="SpecifiedTradeSettlementPaymentMeans" type="ram:TradeSettlementPaymentMeansType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="ApplicableTradeTax" type="ram:TradeTaxType" maxOccurs="unbounded"/>\r
   <xs:complexType name="LineTradeAgreementType">\r
     <xs:sequence>\r
       <xs:element name="BuyerOrderReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
+      <xs:element name="QuotationReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
       <xs:element name="ContractReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
       <xs:element name="AdditionalReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="GrossPriceProductTradePrice" type="ram:TradePriceType" minOccurs="0"/>\r
       <xs:element name="BillingSpecifiedPeriod" type="ram:SpecifiedPeriodType" minOccurs="0"/>\r
       <xs:element name="SpecifiedTradeAllowanceCharge" type="ram:TradeAllowanceChargeType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="SpecifiedTradeSettlementLineMonetarySummation" type="ram:TradeSettlementLineMonetarySummationType"/>\r
+      <xs:element name="InvoiceReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0"/>\r
       <xs:element name="AdditionalReferencedDocument" type="ram:ReferencedDocumentType" minOccurs="0" maxOccurs="unbounded"/>\r
-      <xs:element name="ReceivableSpecifiedTradeAccountingAccount" type="ram:TradeAccountingAccountType" minOccurs="0" maxOccurs="unbounded"/>\r
+      <xs:element name="ReceivableSpecifiedTradeAccountingAccount" type="ram:TradeAccountingAccountType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="LogisticsServiceChargeType">\r
   </xs:complexType>\r
   <xs:complexType name="ProductClassificationType">\r
     <xs:sequence>\r
-      <xs:element name="ClassCode" type="udt:CodeType"/>\r
+      <xs:element name="ClassCode" type="udt:CodeType" minOccurs="0"/>\r
       <xs:element name="ClassName" type="udt:TextType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   </xs:complexType>\r
   <xs:complexType name="ReferencedProductType">\r
     <xs:sequence>\r
-      <xs:element name="GlobalID" type="udt:IDType" minOccurs="0"/>\r
+      <xs:element name="ID" type="udt:IDType" minOccurs="0"/>\r
+      <xs:element name="GlobalID" type="udt:IDType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="SellerAssignedID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="BuyerAssignedID" type="udt:IDType" minOccurs="0"/>\r
+      <xs:element name="IndustryAssignedID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="Name" type="udt:TextType"/>\r
       <xs:element name="Description" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="UnitQuantity" type="udt:QuantityType" minOccurs="0"/>\r
   </xs:complexType>\r
   <xs:complexType name="SupplyChainEventType">\r
     <xs:sequence>\r
-      <xs:element name="OccurrenceDateTime" type="udt:DateTimeType" minOccurs="0"/>\r
+      <xs:element name="OccurrenceDateTime" type="udt:DateTimeType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="SupplyChainTradeLineItemType">\r
       <xs:element name="AssociatedDocumentLineDocument" type="ram:DocumentLineDocumentType"/>\r
       <xs:element name="SpecifiedTradeProduct" type="ram:TradeProductType"/>\r
       <xs:element name="SpecifiedLineTradeAgreement" type="ram:LineTradeAgreementType"/>\r
-      <xs:element name="SpecifiedLineTradeDelivery" type="ram:LineTradeDeliveryType" minOccurs="0"/>\r
+      <xs:element name="SpecifiedLineTradeDelivery" type="ram:LineTradeDeliveryType"/>\r
       <xs:element name="SpecifiedLineTradeSettlement" type="ram:LineTradeSettlementType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   </xs:complexType>\r
   <xs:complexType name="TradeAllowanceChargeType">\r
     <xs:sequence>\r
-      <xs:element name="ChargeIndicator" type="udt:IndicatorType" minOccurs="0"/>\r
+      <xs:element name="ChargeIndicator" type="udt:IndicatorType"/>\r
       <xs:element name="SequenceNumeric" type="udt:NumericType" minOccurs="0"/>\r
       <xs:element name="CalculationPercent" type="udt:PercentType" minOccurs="0"/>\r
       <xs:element name="BasisAmount" type="udt:AmountType" minOccurs="0"/>\r
     <xs:sequence>\r
       <xs:element name="PersonName" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="DepartmentName" type="udt:TextType" minOccurs="0"/>\r
+      <xs:element name="TypeCode" type="qdt:ContactTypeCodeType" minOccurs="0"/>\r
       <xs:element name="TelephoneUniversalCommunication" type="ram:UniversalCommunicationType" minOccurs="0"/>\r
       <xs:element name="FaxUniversalCommunication" type="ram:UniversalCommunicationType" minOccurs="0"/>\r
       <xs:element name="EmailURIUniversalCommunication" type="ram:UniversalCommunicationType" minOccurs="0"/>\r
   </xs:complexType>\r
   <xs:complexType name="TradeCountryType">\r
     <xs:sequence>\r
-      <xs:element name="ID" type="qdt:CountryIDType"/>\r
+      <xs:element name="ID" type="qdt:CountryIDType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradeCurrencyExchangeType">\r
   </xs:complexType>\r
   <xs:complexType name="TradeDeliveryTermsType">\r
     <xs:sequence>\r
-      <xs:element name="DeliveryTypeCode" type="qdt:DeliveryTermsCodeType" minOccurs="0"/>\r
+      <xs:element name="DeliveryTypeCode" type="qdt:DeliveryTermsCodeType"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradePartyType">\r
       <xs:element name="ID" type="udt:IDType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="GlobalID" type="udt:IDType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="Name" type="udt:TextType" minOccurs="0"/>\r
+      <xs:element name="RoleCode" type="qdt:PartyRoleCodeType" minOccurs="0"/>\r
       <xs:element name="Description" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="SpecifiedLegalOrganization" type="ram:LegalOrganizationType" minOccurs="0"/>\r
-      <xs:element name="DefinedTradeContact" type="ram:TradeContactType" minOccurs="0"/>\r
+      <xs:element name="DefinedTradeContact" type="ram:TradeContactType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="PostalTradeAddress" type="ram:TradeAddressType" minOccurs="0"/>\r
       <xs:element name="URIUniversalCommunication" type="ram:UniversalCommunicationType" minOccurs="0"/>\r
       <xs:element name="SpecifiedTaxRegistration" type="ram:TaxRegistrationType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="PartialPaymentAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="ApplicableTradePaymentPenaltyTerms" type="ram:TradePaymentPenaltyTermsType" minOccurs="0"/>\r
       <xs:element name="ApplicableTradePaymentDiscountTerms" type="ram:TradePaymentDiscountTermsType" minOccurs="0"/>\r
+      <xs:element name="PayeeTradeParty" type="ram:TradePartyType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
   <xs:complexType name="TradePriceType">\r
       <xs:element name="IncludedTradeTax" type="ram:TradeTaxType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
+  <xs:complexType name="TradeProductInstanceType">\r
+    <xs:sequence>\r
+      <xs:element name="BatchID" type="udt:IDType" minOccurs="0"/>\r
+      <xs:element name="SupplierAssignedSerialID" type="udt:IDType" minOccurs="0"/>\r
+    </xs:sequence>\r
+  </xs:complexType>\r
   <xs:complexType name="TradeProductType">\r
     <xs:sequence>\r
+      <xs:element name="ID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="GlobalID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="SellerAssignedID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="BuyerAssignedID" type="udt:IDType" minOccurs="0"/>\r
       <xs:element name="Description" type="udt:TextType" minOccurs="0"/>\r
       <xs:element name="ApplicableProductCharacteristic" type="ram:ProductCharacteristicType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="DesignatedProductClassification" type="ram:ProductClassificationType" minOccurs="0" maxOccurs="unbounded"/>\r
+      <xs:element name="IndividualTradeProductInstance" type="ram:TradeProductInstanceType" minOccurs="0" maxOccurs="unbounded"/>\r
       <xs:element name="OriginTradeCountry" type="ram:TradeCountryType" minOccurs="0"/>\r
       <xs:element name="IncludedReferencedProduct" type="ram:ReferencedProductType" minOccurs="0" maxOccurs="unbounded"/>\r
     </xs:sequence>\r
   <xs:complexType name="TradeSettlementLineMonetarySummationType">\r
     <xs:sequence>\r
       <xs:element name="LineTotalAmount" type="udt:AmountType"/>\r
+      <xs:element name="ChargeTotalAmount" type="udt:AmountType" minOccurs="0"/>\r
+      <xs:element name="AllowanceTotalAmount" type="udt:AmountType" minOccurs="0"/>\r
+      <xs:element name="TaxTotalAmount" type="udt:AmountType" minOccurs="0"/>\r
+      <xs:element name="GrandTotalAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="TotalAllowanceChargeAmount" type="udt:AmountType" minOccurs="0"/>\r
     </xs:sequence>\r
   </xs:complexType>\r
       <xs:element name="BasisAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="LineTotalBasisAmount" type="udt:AmountType" minOccurs="0"/>\r
       <xs:element name="AllowanceChargeBasisAmount" type="udt:AmountType" minOccurs="0"/>\r
-      <xs:element name="CategoryCode" type="qdt:TaxCategoryCodeType" minOccurs="0"/>\r
+      <xs:element name="CategoryCode" type="qdt:TaxCategoryCodeType"/>\r
       <xs:element name="ExemptionReasonCode" type="udt:CodeType" minOccurs="0"/>\r
       <xs:element name="TaxPointDate" type="udt:DateType" minOccurs="0"/>\r
       <xs:element name="DueDateTypeCode" type="qdt:TimeReferenceCodeType" minOccurs="0"/>\r
index 5916ec28b40b12013febda7e242eba814315bab0..a29d4fb1e1569326ab7dfd161b2767251378be25 100644 (file)
@@ -38,7 +38,6 @@
           </xs:simpleContent>\r
         </xs:complexType>\r
       </xs:element>\r
-      <xs:element name="DateTime" type="xs:dateTime"/>\r
     </xs:choice>\r
   </xs:complexType>\r
   <xs:complexType name="DateType">\r
@@ -69,7 +68,7 @@
   <xs:complexType name="MeasureType">\r
     <xs:simpleContent>\r
       <xs:extension base="xs:decimal">\r
-        <xs:attribute name="unitCode" type="xs:token" use="required"/>\r
+        <xs:attribute name="unitCode" type="xs:token" use="optional"/>\r
       </xs:extension>\r
     </xs:simpleContent>\r
   </xs:complexType>\r
@@ -86,7 +85,7 @@
   <xs:complexType name="QuantityType">\r
     <xs:simpleContent>\r
       <xs:extension base="xs:decimal">\r
-        <xs:attribute name="unitCode" type="xs:token" use="required"/>\r
+        <xs:attribute name="unitCode" type="xs:token" use="optional"/>\r
       </xs:extension>\r
     </xs:simpleContent>\r
   </xs:complexType>\r
index 4287ee2c83aaf72e069236a9d6e7c338387dc069..91faaf1da089f77abdfc7a3597c27f97e7da90cf 100644 (file)
@@ -294,14 +294,14 @@ HRB Berlin 13086</ram:Content>
                                <ram:CategoryCode>K</ram:CategoryCode>\r
                                <ram:RateApplicablePercent>0</ram:RateApplicablePercent>\r
                        </ram:ApplicableTradeTax>\r
-                               <ram:BillingSpecifiedPeriod>\r
-                                       <ram:StartDateTime>\r
-                                               <udt:DateTimeString format="102">20181001</udt:DateTimeString>\r
-                                       </ram:StartDateTime>\r
-                                       <ram:EndDateTime>\r
-                                               <udt:DateTimeString format="102">20181031</udt:DateTimeString>\r
-                                       </ram:EndDateTime>\r
-                               </ram:BillingSpecifiedPeriod>\r
+                       <ram:BillingSpecifiedPeriod>\r
+                               <ram:StartDateTime>\r
+                                       <udt:DateTimeString format="102">20181001</udt:DateTimeString>\r
+                               </ram:StartDateTime>\r
+                               <ram:EndDateTime>\r
+                                       <udt:DateTimeString format="102">20181031</udt:DateTimeString>\r
+                               </ram:EndDateTime>\r
+                       </ram:BillingSpecifiedPeriod>\r
                        <ram:SpecifiedTradePaymentTerms>\r
                                <ram:DueDateDateTime>\r
                                        <udt:DateTimeString format="102">20181130</udt:DateTimeString>\r