Hi again!
I have another issue when using WSS4J 1.5.5. I recently implemented
UsernameToken handling for our SOAP messages on WSS4J 1.5.4. This only
worked when I only signed the message, however when I added encryption to
the header the decryption would fail (when using 1.5.4) (as per first
message from me). Now however, after upgrading to 1.5.5, I get the following
exception when receiving a signed (no encryption) request:
> java.lang.NullPointerException
> at
> org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:210)
> at
> org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:85)
> at
> org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:326)
> at
> org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:243)
> at
> org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:196)
which points to (SignatureProcessor.java:210):
> ut = utProcessor.getUt();
on my system.
Am I doing something terribly wrong?
Versions:
Wss4j 1.5.5
xml-sec 1.4.2
BouncyCastle JDK15-141
Java 1.5.0_16
Axis 1.4 1855 April 22 2006
Metro 1.4
Thanks,
Mike
Sample UT signature Code:
> Utils.trace(this.getClass(), "WSS Signing SOAP Envelope");
>
> WSSecSignature sign = new WSSecSignature();
> sign.setUserInfo(alias, pw);
>
> WSSecUsernameToken secut = getUsernameToken(pMode, event, doc);
>
> if (secut != null) {
> sign.setUsernameToken(secut);
> sign.setKeyIdentifierType (WSConstants.UT_SIGNING);
> sign.setSignatureAlgorithm(XMLSignature.ALGO_ID_MAC_HMAC_SHA1);
>
> Utils.debug(this.getClass(), "UsernameToken signing enabled from
> ProcessingMode '" + pMode.getID() + "' using Event '" + event.getID() +
> "'.");
> } else {
> sign.setSignatureAlgorithm(signAlgo);
> sign.setSigCanonicalization(signCanonAlgo);
> }
>
> sign.setParts(getSignatureParts(pMode, event));
>
> sign.prepare(doc, crypto, secHeader);
>
> if (secut != null)
> secut.prependToHeader(secHeader);
>
> sign.prependToHeader(secHeader);
>
> doc = sign.build(doc, crypto, secHeader);
>
> Utils.trace(this.getClass(), "WSS Signed SOAP Envelope");
GetUsernameToken():
> WSSecUsernameToken secut = null;
>
> if (event != null) {
> UsernameToken ut = event.getSecurity().getUsernameToken();
>
> if (ut.getUsername().length() > 0 && ut.getPassword().length() > 0) {
> Utils.trace(this.getClass(), "Found P-Mode '"+pMode.getID()+"'
> username and password");
>
> secut = new WSSecUsernameToken();
>
> if (ut.isDigest())
> secut.setPasswordType(WSConstants.PASSWORD_DIGEST);
> else
> secut.setPasswordType(WSConstants.PASSWORD_TEXT);
>
> secut.setUserInfo(ut.getUsername(), ut.getPassword());
>
> if (ut.isCreated())
> secut.addCreated();
>
> if (ut.isNonce())
> secut.addNonce();
>
> secut.prepare(doc);
> }
> }
return secut;
>
POST /ebXML HTTP/1.1
User-Agent: Java-1.5.0_16
SOAPAction: ebXML
Host: 127.0.0.1
Connection: keep-alive
Content-Type: multipart/related;
boundary="----=_Part_14_1308435551.1234353917214"
Content-Length: 17754
------=_Part_14_1308435551.1234353917214
Content-Type: application/XML
Content-Transfer-Encoding: 7bit
Content-ID: <[email protected]>
<?xml version="1.0" encoding="UTF-8"?><S12:Envelope
xmlns:S12="http://www.w3.org/2003/05/soap-envelope"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:eb="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><S12:Header><wsse:Security
S12:mustUnderstand="true"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><ds:Signature
Id="Signature-997551539">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<ds:Reference URI="#id-69248303">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>esbWrj07ffRz70edzwW1uG6r92k=</ds:DigestValue>
</ds:Reference>
<ds:Reference URI="#id-2067575494">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>cZSy8nSsJoIg5mhptgRYhD2O7JA=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>G0qLvnBFN/+bya57h8EqUh+fmkA=</ds:SignatureValue>
<ds:KeyInfo Id="KeyId-443883844">
<wsse:SecurityTokenReference wsu:Id="STRId-2145060077"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:Reference
URI="#UsernameToken-457048813"
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken"/></wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature><ds:Signature Id="Signature-2008927154">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
</ds:SignedInfo>
<ds:SignatureValue/>
<ds:KeyInfo Id="KeyId-1300779144">
<wsse:SecurityTokenReference wsu:Id="STRId-811546748"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:Reference
URI="#UsernameToken-457048813"
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken"/></wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature><wsse:UsernameToken wsu:Id="UsernameToken-457048813"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:Username>Mike</wsse:Username><wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">hello</wsse:Password><wsse:Nonce>Jeoe7XxjY4XxSk57UOjKpQ==</wsse:Nonce><wsu:Created>2009-02-11T12:05:17.181Z</wsu:Created></wsse:UsernameToken></wsse:Security><eb:Messaging
wsu:Id="id-69248303" S12:mustUnderstand="true"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<eb:UserMessage>
<eb:MessageInfo>
<eb:Timestamp>2009-02-11T12:05:17.035Z</eb:Timestamp>
<eb:MessageId>FMS-20090211-140516.585-0.7957602340446089</eb:MessageId>
</eb:MessageInfo>
<eb:PartyInfo>
<eb:From>
<eb:PartyId
type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">TestNoCpaSender</eb:PartyId>
<eb:Role>Seller</eb:Role>
</eb:From>
<eb:To>
<eb:PartyId
type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">TestNoCpaReceiver</eb:PartyId>
<eb:Role>Buyer</eb:Role>
</eb:To>
</eb:PartyInfo>
<eb:CollaborationInfo>
<eb:AgreementRef pmode="CompanyA-CompanyB-No-CPA"/>
<eb:Service>Invoice</eb:Service>
<eb:Action>Invoice</eb:Action>
<eb:ConversationId>FMS-20090211-140517.035-0.020144626672171095</eb:ConversationId>
</eb:CollaborationInfo>
<eb:MessageProperties>
<eb:Property name="MessageID">ABC123</eb:Property>
</eb:MessageProperties>
<eb:PayloadInfo>
<eb:PartInfo>
<eb:Schema location="UBL-Invoice-2.0.xsd"/>
</eb:PartInfo>
</eb:PayloadInfo>
</eb:UserMessage>
</eb:Messaging></S12:Header><S12:Body wsu:Id="id-2067575494"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><Invoice
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:Invoice="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2"
xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2">
<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
<cbc:CustomizationID>urn:oasis:names:specification:ubl:xpath:Invoice-2.0:sbs-1.0-draft</cbc:CustomizationID>
<cbc:ProfileID>bpid:urn:oasis:names:draft:bpss:ubl-2-sbs-invoice-notification-draft</cbc:ProfileID>
<cbc:ID>A00095678</cbc:ID>
<cbc:CopyIndicator>false</cbc:CopyIndicator>
<cbc:UUID>849FBBCE-E081-40B4-906C-94C5FF9D1AC3</cbc:UUID>
<cbc:IssueDate>2005-06-21</cbc:IssueDate>
<cbc:InvoiceTypeCode>SalesInvoice</cbc:InvoiceTypeCode>
<cbc:Note>sample</cbc:Note>
<cbc:TaxPointDate>2005-06-21</cbc:TaxPointDate>
<cac:OrderReference>
<cbc:ID>AEG012345</cbc:ID>
<cbc:SalesOrderID>CON0095678</cbc:SalesOrderID>
<cbc:UUID>6E09886B-DC6E-439F-82D1-7CCAC7F4E3B1</cbc:UUID>
<cbc:IssueDate>2005-06-20</cbc:IssueDate>
</cac:OrderReference>
<cac:AccountingSupplierParty>
<cbc:CustomerAssignedAccountID>CO001</cbc:CustomerAssignedAccountID>
<cac:Party>
<cac:PartyName>
<cbc:Name>Consortial</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Busy Street</cbc:StreetName>
<cbc:BuildingName>Thereabouts</cbc:BuildingName>
<cbc:BuildingNumber>56A</cbc:BuildingNumber>
<cbc:CityName>Farthing</cbc:CityName>
<cbc:PostalZone>AA99 1BB</cbc:PostalZone>
<cbc:CountrySubentity>Heremouthshire</cbc:CountrySubentity>
<cac:AddressLine>
<cbc:Line>The Roundabout</cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:RegistrationName>Farthing Purchasing
Consortia</cbc:RegistrationName>
<cbc:CompanyID>175 269 2355</cbc:CompanyID>
<cbc:ExemptionReason>N/A</cbc:ExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:Contact>
<cbc:Name>Mrs Bouquet</cbc:Name>
<cbc:Telephone>0158 1233714</cbc:Telephone>
<cbc:Telefax>0158 1233856</cbc:Telefax>
<cbc:ElectronicMail>[email protected]</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cbc:CustomerAssignedAccountID>XFB01</cbc:CustomerAssignedAccountID>
<cbc:SupplierAssignedAccountID>GT00978567</cbc:SupplierAssignedAccountID>
<cac:Party>
<cac:PartyName>
<cbc:Name>IYT Corporation</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Avon Way</cbc:StreetName>
<cbc:BuildingName>Thereabouts</cbc:BuildingName>
<cbc:BuildingNumber>56A</cbc:BuildingNumber>
<cbc:CityName>Bridgtow</cbc:CityName>
<cbc:PostalZone>ZZ99 1ZZ</cbc:PostalZone>
<cbc:CountrySubentity>Avon</cbc:CountrySubentity>
<cac:AddressLine>
<cbc:Line>3rd Floor, Room 5</cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:RegistrationName>Bridgtow District
Council</cbc:RegistrationName>
<cbc:CompanyID>12356478</cbc:CompanyID>
<cbc:ExemptionReason>Local Authority</cbc:ExemptionReason>
<cac:TaxScheme>
<cbc:ID>UK VAT</cbc:ID>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:Contact>
<cbc:Name>Mr Fred Churchill</cbc:Name>
<cbc:Telephone>0127 2653214</cbc:Telephone>
<cbc:Telefax>0127 2653215</cbc:Telefax>
<cbc:ElectronicMail>[email protected]</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:Delivery>
<cbc:ActualDeliveryDate>2005-06-20</cbc:ActualDeliveryDate>
<cbc:ActualDeliveryTime>11:30:00.0Z</cbc:ActualDeliveryTime>
<cac:DeliveryAddress>
<cbc:StreetName>Avon Way</cbc:StreetName>
<cbc:BuildingName>Thereabouts</cbc:BuildingName>
<cbc:BuildingNumber>56A</cbc:BuildingNumber>
<cbc:CityName>Bridgtow</cbc:CityName>
<cbc:PostalZone>ZZ99 1ZZ</cbc:PostalZone>
<cbc:CountrySubentity>Avon</cbc:CountrySubentity>
<cac:AddressLine>
<cbc:Line>3rd Floor, Room 5</cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
</cac:Country>
</cac:DeliveryAddress>
</cac:Delivery>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>20</cbc:PaymentMeansCode>
<cbc:PaymentDueDate>2005-07-21</cbc:PaymentDueDate>
<cac:PayeeFinancialAccount>
<cbc:ID>12345678</cbc:ID>
<cbc:Name>Farthing Purchasing Consortia</cbc:Name>
<cbc:AccountTypeCode>Current</cbc:AccountTypeCode>
<cbc:CurrencyCode>GBP</cbc:CurrencyCode>
<cac:FinancialInstitutionBranch>
<cbc:ID>10-26-58</cbc:ID>
<cbc:Name>Open Bank Ltd, Bridgstow Branch </cbc:Name>
<cac:FinancialInstitution>
<cbc:ID>10-26-58</cbc:ID>
<cbc:Name>Open Bank Ltd</cbc:Name>
<cac:Address>
<cbc:StreetName>City Road</cbc:StreetName>
<cbc:BuildingName>Banking House</cbc:BuildingName>
<cbc:BuildingNumber>12</cbc:BuildingNumber>
<cbc:CityName>London</cbc:CityName>
<cbc:PostalZone>AQ1 6TH</cbc:PostalZone>
<cbc:CountrySubentity>London
</cbc:CountrySubentity>
<cac:AddressLine>
<cbc:Line>5th Floor</cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:FinancialInstitution>
<cac:Address>
<cbc:StreetName>Busy Street</cbc:StreetName>
<cbc:BuildingName>The Mall</cbc:BuildingName>
<cbc:BuildingNumber>152</cbc:BuildingNumber>
<cbc:CityName>Farthing</cbc:CityName>
<cbc:PostalZone>AA99 1BB</cbc:PostalZone>
<cbc:CountrySubentity>Heremouthshire</cbc:CountrySubentity>
<cac:AddressLine>
<cbc:Line>West Wing</cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:FinancialInstitutionBranch>
<cac:Country>
<cbc:IdentificationCode>GB</cbc:IdentificationCode>
</cac:Country>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentTerms>
<cbc:Note>Payable within 1 calendar month from the invoice
date</cbc:Note>
</cac:PaymentTerms>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>17</cbc:AllowanceChargeReasonCode>
<cbc:MultiplierFactorNumeric>0.10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">10.00</cbc:Amount>
</cac:AllowanceCharge>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">17.50</cbc:TaxAmount>
<cbc:TaxEvidenceIndicator>true</cbc:TaxEvidenceIndicator>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">17.50</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>A</cbc:ID>
<cac:TaxScheme>
<cbc:ID>UK VAT</cbc:ID>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">100.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">90.00</cbc:TaxExclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">10.00</cbc:AllowanceTotalAmount>
<cbc:PayableAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">107.50</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>A</cbc:ID>
<cbc:InvoicedQuantity unitCode="KG" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">100</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">100.00</cbc:LineExtensionAmount>
<cac:OrderLineReference>
<cbc:LineID>1</cbc:LineID>
<cbc:SalesOrderLineID>A</cbc:SalesOrderLineID>
<cbc:LineStatusCode>NoStatus</cbc:LineStatusCode>
<cac:OrderReference>
<cbc:ID>AEG012345</cbc:ID>
<cbc:SalesOrderID>CON0095678</cbc:SalesOrderID>
<cbc:UUID>6E09886B-DC6E-439F-82D1-7CCAC7F4E3B1</cbc:UUID>
<cbc:IssueDate>2005-06-20</cbc:IssueDate>
</cac:OrderReference>
</cac:OrderLineReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">17.50</cbc:TaxAmount>
<cbc:TaxEvidenceIndicator>true</cbc:TaxEvidenceIndicator>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">17.50</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>A</cbc:ID>
<cbc:Percent>17.5</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>UK VAT</cbc:ID>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description>Acme beeswax</cbc:Description>
<cbc:Name>beeswax</cbc:Name>
<cac:BuyersItemIdentification>
<cbc:ID>6578489</cbc:ID>
</cac:BuyersItemIdentification>
<cac:SellersItemIdentification>
<cbc:ID>17589683</cbc:ID>
</cac:SellersItemIdentification>
<cac:ItemInstance>
<cac:LotIdentification>
<cbc:LotNumberID>546378239</cbc:LotNumberID>
<cbc:ExpiryDate>2010-01-01</cbc:ExpiryDate>
</cac:LotIdentification>
</cac:ItemInstance>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="GBP" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">1.00</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="KG" xmlns=""
xmlns:ns11="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>
</Invoice></S12:Body></S12:Envelope>
------=_Part_14_1308435551.1234353917214--
');
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]