diff --git a/.gitmodules b/.gitmodules index c4b3954c72d3d64a3c12d9c6b4cd091085319ceb..a9331248d36c1ff1b6aac8bcc59b25de48b267ba 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,12 @@ [submodule "dk.gov.oiosi.library/common"] path = dk.gov.oiosi.library/common url = https://rep.erst.dk/git/openebusiness/common.git + [submodule "dk.gov.oiosi.examples.service/common"] path = dk.gov.oiosi.examples.service/common url = https://rep.erst.dk/git/openebusiness/common.git + +[submodule "dk.gov.oiosi.examples.client/common"] + path = dk.gov.oiosi.examples.client/common + url = https://rep.erst.dk/git/openebusiness/common.git + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ca396cb306930cd3e255f4e46205128d182dce8b --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../../../:\Users\kristian.sorensen-bo\Repositories\IntelliJ\OIORASP\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/OIORASP.iml b/.idea/OIORASP.iml new file mode 100644 index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824 --- /dev/null +++ b/.idea/OIORASP.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..a127731fcdc04064ed369944823691c0e6d6459f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..53c1cad17cdb79b7fb0739ff4b26824eac34d7f5 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000000000000000000000000000000000000..341ee53aba6399224acae3c2e896af6d86b97700 --- /dev/null +++ b/README.adoc @@ -0,0 +1,19 @@ +:toc: +:toc: left +:toclevels: 6 +:xrefstyle: full + +== OIORASP Library for Java + +[options="header"] +|=== +| Version | Branch | Release status | Description +| *3.0.0 (Current)* | *master* | *release candidate* | xref:doc/OIORASP_Java_ReleaseNotes.adoc#rasp_3_0_0[RASP version 3.0.0.RC1] +4+| xref:doc/OIORASP_Java_ReleaseNotes.adoc#what_is_changed[View section "What is changed" for earlier releases] +|=== + +include::dk.gov.oiosi.library/doc/OIORASP_Java_ReleaseNotes.adoc[] + +include::dk.gov.oiosi.library/doc/OIORASP_Java_InstallationGuide.adoc[] + +include::dk.gov.oiosi.library/doc/OIORASP_Java_Tutorials.adoc[] diff --git a/dk.gov.oiosi.examples.client/.idea/.gitignore b/dk.gov.oiosi.examples.client/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..73f69e0958611ac6e00bde95641f6699030ad235 --- /dev/null +++ b/dk.gov.oiosi.examples.client/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/dk.gov.oiosi.examples.client/.idea/ant.xml b/dk.gov.oiosi.examples.client/.idea/ant.xml new file mode 100644 index 0000000000000000000000000000000000000000..a2a47698279d3066c062d5472c43634c644f6334 --- /dev/null +++ b/dk.gov.oiosi.examples.client/.idea/ant.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.client/.idea/checkstyle-idea.xml b/dk.gov.oiosi.examples.client/.idea/checkstyle-idea.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ab98c58c69c50470744255e1054a20626f61efd --- /dev/null +++ b/dk.gov.oiosi.examples.client/.idea/checkstyle-idea.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.client/.idea/misc.xml b/dk.gov.oiosi.examples.client/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..84da703c3b6737ae27e4c89f3e04cb1712cf3a17 --- /dev/null +++ b/dk.gov.oiosi.examples.client/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.client/.idea/modules.xml b/dk.gov.oiosi.examples.client/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..4871f7ceac5491f35df5c8917c49380eac15c648 --- /dev/null +++ b/dk.gov.oiosi.examples.client/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.client/.idea/vcs.xml b/dk.gov.oiosi.examples.client/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..46d673f7c8f080d32046674a47f22362823cd9cc --- /dev/null +++ b/dk.gov.oiosi.examples.client/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.client/Resources/RaspConfiguration.Live.xml b/dk.gov.oiosi.examples.client/Resources/RaspConfiguration.Live.xml new file mode 100644 index 0000000000000000000000000000000000000000..df028e5099f8eed273314f756804c62fc1c46c99 --- /dev/null +++ b/dk.gov.oiosi.examples.client/Resources/RaspConfiguration.Live.xml @@ -0,0 +1,5120 @@ + + + + + + + dk.gov.oiosi.common.startup.SchematronPreloadStartupTask + + + initDocumentTypeFriendlyName + Faktura + + + initDocumentTypeFriendlyName + Kreditnota + + + + + + + dk.gov.oiosi.common.startup.DownloadCRLStartupTask + + + + + + + + + downloadCrlUrl + http://crl.systemtest8.trust2408.com/systemtest8.crl + + + + downloadCrlUrl + http://crl.systemtest7.trust2408.com/systemtest7.crl + + + + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + + + + + + + 5a15a880-eef8-40c0-80f2-bb65226f50c2 + Faktura v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + Invoice + + uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 + Resources/Schemas/OIOXML_v0.7/pieStrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') + ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 7bd520d7-6ae5-4a3c-8604-082e69414092 + Kreditnota v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + Invoice + + uddi:3bbc9cf0-3c4c-11dc-98be-6976502198bd + Resources/Schemas/OIOXML_v0.7/pcmStrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') + ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 40c9fbee-ad39-48ed-9e04-c28cbbf8a38c + Applikationsmeddelse + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5 + Resources/Schemas/UBL_v2.0/maindoc/UBL-ApplicationResponse-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_ApplicationResponse_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + + 68db0c6f-ec2c-44ad-b1c3-bdfae65ee5f0 + Katalog + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b8a5a5d0-df9f-11dc-889a-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-Catalogue-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Catalogue_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + + 463984d1-4ba5-44d6-8903-565cc56dd4cb + Katalogforespørgsel + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + CatalogueRequest + + + /root:CatalogueRequest/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:0cb0ff80-dfa0-11dc-889a-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueRequest-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse + + + /root:CatalogueRequest/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CatalogueRequest_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueRequest/cbc:ProfileID + + + /root:CatalogueRequest/cbc:ID + + + + fb3034ea-eaaf-434b-8798-0433db497e66 + Opdatering af katalogelement + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + CatalogueItemSpecificationUpdate + + + /root:CatalogueItemSpecificationUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:63eab5c0-dfa0-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueItemSpecificationUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CatalogueItemSpecificationUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueItemSpecificationUpdate/cbc:ProfileID + + + /root:CatalogueItemSpecificationUpdate/cbc:ID + + + + 02092e85-c2e4-4bb2-b22d-3eec04007a36 + Opdatering af katalogpriser + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + CataloguePricingUpdate + + + /root:CataloguePricingUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:abdb2720-dfa0-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CataloguePricingUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CataloguePricingUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CataloguePricingUpdate/cbc:ProfileID + + + /root:CataloguePricingUpdate/cbc:ID + + + + 0efa1c48-b5e3-4eb8-bc5f-3fbd78daba10 + Sletning af katalog + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + CatalogueDeletion + + + /root:CatalogueDeletion/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:40e5cbd0-dfa2-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueDeletion-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse + + + /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CatalogueDeletion_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueDeletion/cbc:ProfileID + + + /root:CatalogueDeletion/cbc:ID + + + + a25f2c30-cb5b-404d-886a-9030621f7eea + Kreditnota + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:E4EC9613-4830-4bab-AFEE-C37AB1C67AEC + Resources/Schemas/UBL_v2.0/maindoc/UBL-CreditNote-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CreditNote_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + + c0220657-c101-4d7d-9670-c9463e1559d5 + Faktura + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 + Resources/Schemas/UBL_v2.0/maindoc/UBL-Invoice-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Invoice_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + 5b84d1f6-f315-4a2c-a84d-095b10cc5a2c + Ordre + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a + Resources/Schemas/UBL_v2.0/maindoc/UBL-Order-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Order_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + + c4a09991-d038-4e51-bb06-2cdffe6c1b77 + Ordreannulering + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + OrderCancellation + + + /root:OrderCancellation/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:7ba80590-dfa1-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderCancellation-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderCancellationHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderCancellation_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderCancellation/cbc:ProfileID + + + /root:OrderCancellation/cbc:ID + + + + ba652e7d-e8bd-4926-8bd8-9e19a5ca23e6 + Ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + OrderResponse + + + /root:OrderResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ed6d3c40-dfa1-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponse-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderResponse_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponse/cbc:ProfileID + + + /root:OrderResponse/cbc:ID + + + + 0412fdc2-5f07-4e6f-a8fd-c0dc7d780dce + Ordreændring + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + OrderChange + + + /root:OrderChange/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ea4bc88f-9479-4f9b-a354-4acabdb99336 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderChange-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderChangeHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderChange_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderChange/cbc:ProfileID + + + /root:OrderChange/cbc:ID + + + + c8577e35-7de6-49f6-926c-c061f5a7d1b6 + Simpel ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + OrderResponseSimple + + + /root:OrderResponseSimple/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:3B0B1309-B575-4d69-9C8F-4126C53CD7B0 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponseSimple-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderResponseSimpleHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderResponseSimple_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponseSimple/cbc:ProfileID + + + /root:OrderResponseSimple/cbc:ID + + + + b552710b-e4c2-44f6-a89e-1b158375b5f3 + Rykker + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + Reminder + + + /root:Reminder/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4FBBBDEF-0A8E-4d5e-9B9D-23C8FD98E9CE + Resources/Schemas/UBL_v2.0/maindoc/UBL-Reminder-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/ReminderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Reminder_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Reminder/cbc:ProfileID + + + /root:Reminder/cbc:ID + + + + 76c4f0fa-e969-4360-9a04-8de3c675d4f2 + KontoUdtog + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + Statement + + + /root:Statement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4e383840-bcfc-11dc-a81b-bfc65441a808 + Resources/Schemas/UBL_v2.0/maindoc/UBL-Statement-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/StatementHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Statement_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Statement/cbc:ProfileID + + + /root:Statement/cbc:ID + + + + eee3da84-27b7-4b37-81b1-cfb9d2942a00 + Forsynings Specifikation + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + UtilityStatement + + + /root:UtilityStatement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:236f277d-a786-4724-a16e-26398b685a07 + Resources/Schemas/OIOUBL_v2.1-b/maindoc/UBL-UtilityStatement-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/UtilityStatementHTML.xsl + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oioubl:names:specification:oioubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse + + + /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_UtilityStatement_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:UtilityStatement/cbc:ProfileID + + + /root:UtilityStatement/cbc:ID + + + + + + 24750a44-9a18-46f4-85ef-50f00c90068b + Katalog (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver4.0 + + + + uddi:6c917ef1-5143-4123-879a-471215dbd373 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Catalogue-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCataloguRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCatalogueResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + + + 551e8437-f543-46cf-bd56-492a25e723fc + Applikationsmeddelse (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns058:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 + + + + uddi:e79dd402-8f60-4811-9f59-1acb0c036d05 + Resources/Schemas/UBL_v2.1/maindoc/UBL-ApplicationResponse-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + + + 21671b33-58a2-4ab5-96bd-42f6c4f22af6 + Kreditnota (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 + + + + uddi:4db3f358-6184-4979-bbc9-5d65aee27132 + Resources/Schemas/UBL_v2.1/maindoc/UBL-CreditNote-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteResponse + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/BIIRULES-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOLCORE-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOL-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + + + c9f45e05-8cc0-44df-ab1e-111c5167b0b5 + Faktura (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 + + + + uddi:ea27f0c4-cb68-4e39-b0eb-5c96af8c1759 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + 9e8b18e5-416e-4c41-9b9f-adadc3de6598 + Forsendelsesadvis + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + DespatchAdvice + + + /root:DespatchAdvice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns016:ver1.0:extended:urn:www.peppol.eu:bis:peppol30a:ver1.0 + + + + uddi:96dbec86-aa58-4f1e-ae03-ebb13079ce61 + Resources/Schemas/UBL_v2.1/maindoc/UBL-DespatchAdvice-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceResponse + + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/BIIRULES-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOLCORE-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOL-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:DespatchAdvice/cbc:ProfileID + + + /root:DespatchAdvice/cbc:ID + + + + + c1061668-0549-452c-b0cb-7d6428fdc5f7 + Faktura (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol4a:ver2.0 + + + + uddi:e956ca42-0be2-487a-8573-580b523c248d + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + db2f9050-2adb-49c2-8f05-af9e440d12ca + Ordre (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol3a:ver2.0 + + + + uddi:873c25f6-23d2-4019-830e-89cc89386930 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Order-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/BIIRULES-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOLCORE-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOL-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + + + bab5613e-6360-4e84-84a3-61838a77590c + Faktura (PEPPOL BIS Billing) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 + + + + uddi:678befa8-ae31-437a-8e52-1139162698df + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS3.0-Billing/CEN-EN16931-UBL.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/PEPPOL/BIS3.0-Billing/PEPPOL-EN16931-UBL.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + + + 4873431b-fa84-4579-b789-2e3162d06038 + NKS Betalings Ordre + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSPayment + + uddi:f283bd90-a247-11dc-a80b-bfc65441a808 + + + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderResponse + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + 0e765453-7422-4d90-b13f-850fc0e5b309 + NKS Kvittering 0 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt0 + + uddi:9910d270-a242-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt0.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 363237e6-dafc-4103-901a-36b499d0eeaa + NKS Kvittering 1 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt1 + + uddi:8df531b0-a242-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt1.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 688df9d0-e564-44a1-8028-617ab625a724 + NKS Retursvar 2 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse2 + + uddi:41a37720-a244-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse2.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 3d2b9c5b-5790-4aee-999b-c26a1d66a887 + NKS Retursvar 5 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse5 + + uddi:65ee1590-a244-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse5.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 2cd298b8-eb8c-4f06-b7e8-6562cb54bc4e + NKS Retursvar 7 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse7 + + uddi:ec1ece70-a244-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse7.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Response + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 6ba94fca-368d-49d0-9976-ae497c85eb37 + NKS Retursvar 8 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse8 + + uddi:0bc62390-a245-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse8.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Response + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 1e780d55-1779-46dc-b438-b023c5e91183 + NKS Retursvar 9 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse9 + + uddi:2dd3ca50-a245-11dc-a80b-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse9.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Response + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + + 76e3b26b-28a2-4cfd-bf67-27c5ee41014d + NKS PU Request + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterRequest + + uddi:6b5fc8cb-5ec9-42bf-9a6f-1b3762f011ed + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPURequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPUResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + 1985c136-96df-4a04-add2-ca95b9de3371 + NKS PU Response + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterResponse + + uddi:34c56e2a-f920-439b-80c7-831cc4ac523b + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + + + + + OIOXML elektronisk handel + uddi:c001daa0-8ba3-11dd-894e-770465b08940 + + + OIOXML elektronisk handel - læs ind + uddi:cac79330-8ba3-11dd-894e-770465b08940 + + + Catalogue-CatBas-1.0 + uddi:4697A391-741F-4534-A21E-8F0A460013BB + + + Catalogue-CatBasR-1.0 + uddi:03717C45-27A8-453f-833C-BD4D8AAB9675 + + + Catalogue-CatSim-1.0 + uddi:BE9F86E6-03C0-4d00-A3EE-44FC29EB3882 + + + Catalogue-CatSimR-1.0 + uddi:48277C4B-489F-498d-8246-303A9867C081 + + + Catalogue-CatExt-1.0 + uddi:1C8E9102-6711-42e8-A35A-997C56A35BFE + + + Catalogue-CatExtR-1.0 + uddi:0B864A5A-5E1E-47da-AD3B-A3932F82DA37 + + + Catalogue-CatAdv-1.0 + uddi:7B7909C1-5DE4-4630-A741-C74A9DDDC6AB + + + Catalogue-CatAdvR-1.0 + uddi:EE7F4AEA-BFDC-4886-8C5E-319596E46DA5 + + + Procurement-BilSim-1.0 + uddi:362229ac-b657-452a-b8f8-c93e62c670ff + + + Procurement-BilSimR-1.0 + uddi:98070e14-ee30-4b10-84ef-986cde3b8116 + + + Procurement-PayBas-1.0 + uddi:E5D505C0-4B52-4485-8169-4AB5343559A5 + + + Procurement-PayBasR-1.0 + uddi:FED5F809-64EC-4523-BC57-4A57D5680DA9 + + + Procurement-OrdSim-BilSim-1.0 + uddi:142C4188-3D53-440d-A64F-68D7C3B9A59B + + + Procurement-OrdSimR-BilSimR-1.0 + uddi:1e1b209e-7b8d-4f1e-8f2a-f3d9a94d1086 + + + Procurement-OrdSim-BilSimR-1.0 + uddi:7A638D35-3E08-432e-B558-74CB85889905 + + + Procurement-OrdSimR-BilSim-1.0 + uddi:EBABEE8B-A5D3-4dc9-B976-3AAFF9A4E855 + + + Procurement-OrdAdv-BilSim-1.0 + uddi:88FBD6D5-6A25-4c08-91CC-5344C73C4D69 + + + Procurement-OrdAdv-BilSimR-1.0 + uddi:76897296-08aa-4848-a933-ae068b4c604e + + + Procurement-OrdAdvR-BilSim-1.0 + uddi:1d01dd98-a302-4897-92d8-fd501447c450 + + + Procurement-OrdAdvR-BilSimR-1.0 + uddi:b23940b1-d571-4640-8830-9b7f34809fbc + + + Procurement-OrdSel-BilSim-1.0 + uddi:46D94D6B-E835-4916-BBB5-F27DC655876A + + + Procurement-OrdSel-BilSimR-1.0 + uddi:42AD3EDE-BBD4-434d-AAE6-044CE3EF8D1F + + + urn:www.nesubl.eu:profiles:profile1:ver2.0 + uddi:FC1D4A1C-1538-4bdb-A718-2EFD712256C5 + + + urn:www.nesubl.eu:profiles:profile2:ver2.0 + uddi:3A3BFE67-AD35-43f0-9AE7-CDF268AE221D + + + urn:www.nesubl.eu:profiles:profile3:ver2.0 + uddi:F5231EDB-FBB4-4a3b-A46C-3BCF1B3C3F35 + + + + + + + urn:www.nesubl.eu:profiles:profile5:ver2.0 + uddi:aee8b6de-298f-4cbc-a96d-9ae8aed0ac31 + + + + + + + urn:www.nesubl.eu:profiles:profile7:ver2.0 + uddi:BB0B4FD4-F6AF-489f-98D9-7130424E7F8D + + + urn:www.nesubl.eu:profiles:profile8:ver2.0 + uddi:F4240370-CCA6-401e-9B5B-4531F413421D + + + Reference-Utility-1.0 + uddi:570b3009-3f9f-46d2-b533-31d0bb4a37a0 + + + Reference-UtilityR-1.0 + uddi:1bfd82e6-0eca-47df-9230-37b97c9788c6 + + + Catalogue-CatPriUpd-1.0 + uddi:a7f4c627-d459-4ef2-a132-fc6df0971db1 + + + Catalogue-CatPriUpdR-1.0 + uddi:fc5313f8-19e0-408b-85ca-87c364f2a41c + + + Procurement-OrdSim-1.0 + uddi:5f2d93a7-bdb7-4543-b667-ba71192e5c5f + + + Procurement-OrdSimR-1.0 + uddi:7fe5938c-1b3a-403c-8155-039b49a06cef + + + Procurement-TecRes-1.0 + uddi:ce80ccce-3ef9-47ea-8cf4-120913a87dc2 + + + Reference-Attachment-1.0 + uddi:10faffb1-1303-485e-924a-e8b551f31949 + + + urn:www.cenbii.eu:profile:bii04:ver2.0 + uddi:553e78e6-7de4-4926-8384-53ef82566560 + + + + + + + urn:www.cenbii.eu:profile:bii01:ver2.0 + uddi:c7cb8dd0-af00-42c6-a8b7-48204aa7b30f + + + urn:www.cenbii.eu:profile:bii30:ver2.0 + uddi:19ec7bb2-a39b-438c-a6ce-2124d6148f8f + + + urn:www.cenbii.eu:profile:bii05:ver2.0 + uddi:8dde0481-9055-41fe-94f7-5102ce3672e7 + + + urn:www.cenbii.eu:profile:bii03:ver2.0 + uddi:90043120-5eab-468c-be4a-5562d95a73a7 + + + + + urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:1d193a6a-23a2-425f-bb19-a864b2415c1a + + + + NS-urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:417c3aac-4bbb-46d6-86d1-a44f757fb326 + + + + + + + + NKS2.0 + uddi:fbc05a80-bde5-11dc-a81d-bfc65441a808 + + + NKS-PU + uddi:736eed0e-b698-4b2c-946e-7b996009c345 + + + + + + dk.gov.oiosi.security.ldap.LdapCertificateLookup + + + + + + crtdir.certifikat.dk + 389 + + + mitid.ldap.host.dk + 389 + + 5000 + 5000 + + + + + + dk.gov.oiosi.security.revocation.ocsp.OcspLookup + + + + + 20000 + + + + dk.gov.oiosi.uddi.UddiLookupClient + + + + dk.gov.oiosi.uddi.RegistryLookupClient + + + + + 15 + + + + 30 + + http://discoverypublic.nemhandel.dk/uddi/services/inquiry + http://discoverybackup.nemhandel-backup.dk/uddi/services/inquiry + + + + + + + + + + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + onFailureRetryIntervalMinutes + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + + + + + + + + + + ./common/resources/Certificates/Live/Root/OCES_root_Prod.jks + Test1234 + ca + + + + + + + PID + + + RID + + + UID + + + FID + + + + + ./cfg/policy.Live.xml + ./cfg/axis2.Live.xml + repository + + + + + + false + 5000 + 5 + + + + + + diff --git a/dk.gov.oiosi.examples.client/common b/dk.gov.oiosi.examples.client/common new file mode 160000 index 0000000000000000000000000000000000000000..0e57492c38e307dbc92116ed1d369e518f41d87e --- /dev/null +++ b/dk.gov.oiosi.examples.client/common @@ -0,0 +1 @@ +Subproject commit 0e57492c38e307dbc92116ed1d369e518f41d87e diff --git a/dk.gov.oiosi.examples.client/dk.gov.oiosi.examples.client.iml b/dk.gov.oiosi.examples.client/dk.gov.oiosi.examples.client.iml index 7f9861cba0deb2190bc09af7f792af190599c031..0166ac294bf3d79515d869096181a210e52f9bd6 100644 --- a/dk.gov.oiosi.examples.client/dk.gov.oiosi.examples.client.iml +++ b/dk.gov.oiosi.examples.client/dk.gov.oiosi.examples.client.iml @@ -1,8 +1,13 @@ + + + - + @@ -81,21 +86,19 @@ - + - - + + - - - - + + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.client/src/dk/firma/klient/webservice/OiosiRaspClient.java b/dk.gov.oiosi.examples.client/src/dk/firma/klient/webservice/OiosiRaspClient.java index fd688b8de20452308dd946010cae254da1cef46e..09cdcd86397fd997ea9d59835cd52269b8ad5374 100644 --- a/dk.gov.oiosi.examples.client/src/dk/firma/klient/webservice/OiosiRaspClient.java +++ b/dk.gov.oiosi.examples.client/src/dk/firma/klient/webservice/OiosiRaspClient.java @@ -61,38 +61,19 @@ import java.security.cert.X509Certificate; import java.util.*; /** - * Invoke RASP call against DIGST published RASP demo endpoint. + * Invoke RASP call against Nemhandel published RASP demo endpoint. */ public class OiosiRaspClient { - private static Log log = LogFactory.getLog(OiosiRaspClient.class); // public static final String PATH_INVOICE_XML = "./Resources/xml/OIOXML_invoice.xml"; public static final String PATH_INVOICE_OIOUBL = "./Resources/xml/OIOUBL_Invoice_v2p1_5798009811578.xml"; public static final String PATH_NENKONTO_PAYMENT = "./Resources/Documents/NemKonto/Payment_GLN_5798009811578.xml"; - public static final String RaspConfigurationLive = "./Resources/RaspConfiguration.Live.xml"; public static final String RaspConfigurationTest = "./Resources/RaspConfiguration.Test.xml"; - + private static final Log LOG = LogFactory.getLog(OiosiRaspClient.class); public UddiType uddiType; public String xmlDocumentUrl; - public enum UddiType { - Production(RaspConfigurationLive), - Test(RaspConfigurationTest), - LocalJava_v1_2_3(RaspConfigurationTest), - LocalNet_v1_2_4(RaspConfigurationTest), - - FOCES2Test("cfg/RaspConfiguration.Oces2.xml"), - FOCES2_99018008("cfg/RaspConfiguration.99018008.xml"), - FOCES2_99018080("cfg/RaspConfiguration.99018080.xml"); - - private final String raspConfigurationFile; - - UddiType(String configFile) { - raspConfigurationFile = configFile; - } - } - public OiosiRaspClient() { uddiType = UddiType.Production; xmlDocumentUrl = PATH_INVOICE_OIOUBL; @@ -103,9 +84,8 @@ public class OiosiRaspClient { this.xmlDocumentUrl = xmlDocumentUrl; } - /** - * RASP Test application + * RASP Test application. *

* This test client goes through the following steps: *

@@ -119,11 +99,11 @@ public class OiosiRaspClient { // Check if JCE is installed (see http://stackoverflow.com/questions/7953567/checking-if-unlimited-cryptography-is-available) try { if (Cipher.getMaxAllowedKeyLength("AES") < 1024) { - log.fatal("Java JCE is not installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension"); + LOG.fatal("Java JCE is not installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension"); return; } } catch (NoSuchAlgorithmException e) { - log.fatal("Java JCE might not be installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension", e); + LOG.fatal("Java JCE might not be installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension", e); return; } @@ -135,7 +115,7 @@ public class OiosiRaspClient { public boolean sendDocument_Test() { boolean resultOK = false; - log.info("Sending the document using config " + uddiType.name() + ", config file: " + uddiType.raspConfigurationFile); + LOG.info("Sending the document using config " + uddiType.name() + ", config file: " + uddiType.raspConfigurationFile); ConfigurationHandler.setConfigurationFile(uddiType.raspConfigurationFile); try { @@ -143,15 +123,15 @@ public class OiosiRaspClient { ConfigurationHandler.getInstance().executeStartupTasks(); } catch (Throwable e) { /* - * Wrap it with Throwable, so both Exceptions and Errors are - * caught. If we switch back to old version of OIORASP, which - * does not have method executeStartupTasks, it will continue - * working. - */ - log.warn("Failed to execute startup tasks", e); + * Wrap it with Throwable, so both Exceptions and Errors are + * caught. If we switch back to old version of OIORASP, which + * does not have method executeStartupTasks, it will continue + * working. + */ + LOG.warn("Failed to execute startup tasks", e); } - log.info("Try to send message to service"); + LOG.info("Try to send message to service"); // Set the path to the custom RASP configuration file. // This file contains setup for things like: @@ -166,14 +146,14 @@ public class OiosiRaspClient { // Load the document from disc XmlDocument xmlDocument = new XmlDocument(); xmlDocument.load(xmlDocumentUrl); - log.info("Document created from file - " + xmlDocumentUrl); + LOG.info("Document created from file - " + xmlDocumentUrl); // Search our configuration file for the document type we are currently about to send. // The UBL type can be inferred from the XML root element name of the file, and the configuration we get // contains paths to XML schemas, schematron stylesheets and XPath expressions used to find the EAN number for example DocumentTypeConfigSearcher documentTypeSearcher = new DocumentTypeConfigSearcher(); DocumentTypeConfig documentTypeConfig = documentTypeSearcher.findUniqueDocumentType(xmlDocument); - log.info("Document is known in configuration"); + LOG.info("Document is known in configuration"); // Step 2: Validate the document @@ -182,14 +162,14 @@ public class OiosiRaspClient { SchemaValidator schemaValidator = new SchemaValidator(); XmlSchema schema = new XmlSchema(documentTypeConfig.getSchemaPath()); schemaValidator.schemaValidateXmlDocument(xmlDocument, schema); - log.info("Document is schema valid"); + LOG.info("Document is schema valid"); // Schematron validate Document before sending... for (SchematronValidationConfig schematronValidationConfig : documentTypeConfig.getSchematronValidationConfigList()) { SchematronValidator schematronValidator = new SchematronValidator(schematronValidationConfig); schematronValidator.schematronValidateXmlDocument(xmlDocument); } - log.info("Document is schematron/logically valid"); + LOG.info("Document is schematron/logically valid"); Uri endpointAddress; OcesX509Certificate clientCertificate; @@ -223,7 +203,7 @@ public class OiosiRaspClient { case FOCES2Test: case FOCES2_99018008: case FOCES2_99018080: { - log.info("Sending the document though NHR lookup"); + LOG.info("Sending the document though NHR lookup"); Identifier identifier = Utilities.getReceiverEndpointKey(xmlDocument); @@ -256,13 +236,13 @@ public class OiosiRaspClient { } // Look it up... - log.info("Ask NHR for: " + identifier); + LOG.info("Ask NHR for: " + identifier); IUddiLookupClient uddiClient = RegistryLookupClientFactory.getRegistryLookupClient(); List uddiResultList = uddiClient.lookup(parameters); - log.info("Found # in NHR: " + uddiResultList.size()); + LOG.info("Found # in NHR: " + uddiResultList.size()); UddiLookupResponse uddiResponse; if (uddiResultList.size() == 0) { - log.error("No Information found in NHR"); + LOG.error("No Information found in NHR"); return false; } else if (uddiResultList.size() == 1) { // Normal uddi lookup result @@ -280,7 +260,7 @@ public class OiosiRaspClient { // The result list contain two endpoints, using the same EndpointAddressTypeCode // We do not know which one of theses endpoints that should be used. - log.error("Multiple endpoint found in NHR"); + LOG.error("Multiple endpoint found in NHR"); return false; } else { map.put(uddiResponse.getEndpointAddress().getEndpointAddressTypeCode(), uddiResponse); @@ -302,8 +282,8 @@ public class OiosiRaspClient { } } - log.info("Found endpoint : " + uddiResponse.getEndpointAddress().getKeyAsString()); - log.info("Found server certificate: " + uddiResponse.getCertificateSubjectSerialNumber().getSerialNumberValue()); + LOG.info("Found endpoint : " + uddiResponse.getEndpointAddress().getKeyAsString()); + LOG.info("Found server certificate: " + uddiResponse.getCertificateSubjectSerialNumber().getSerialNumberValue()); // Step 4: LDAP Lookup // Get the certificate identifier from the UDDI results @@ -312,7 +292,7 @@ public class OiosiRaspClient { // Use a factory to create an LDAP client, and download the certificate ICertificateLookup lookup = LdapLookupFactory.createLdapLookupClient(); X509Certificate server = lookup.getCertificate(certificateSubject); - log.info("Found server certificate in LDAP : " + server.getSubjectDN()); + LOG.info("Found server certificate in LDAP : " + server.getSubjectDN()); // Step 5: Revocation Check @@ -320,7 +300,7 @@ public class OiosiRaspClient { // Use a factory to create a revocation client, and check the certificate status IRevocationLookup revocationLookup = RevocationLookupFactory.createRevocationLookupClient(); RevocationResponse revocationResponse = revocationLookup.checkCertificate(server); - log.info("Server certificate is valid: " + revocationResponse.isValid()); + LOG.info("Server certificate is valid: " + revocationResponse.isValid()); endpointAddress = uddiResponse.getEndpointAddress().getAsUri(); @@ -331,12 +311,12 @@ public class OiosiRaspClient { } case LocalJava_v1_2_3: { - log.info("Sending the document to the local Java 1.2.3 service."); + LOG.info("Sending the document to the local Java 1.2.3 service."); endpointAddress = new Uri(localWebserverTomcat + "/Rasp-1.2.3/services/TestService/nemhandel"); break; } case LocalNet_v1_2_4: { - log.info("Sending the document to the local .Net 1.2.4 service."); + LOG.info("Sending the document to the local .Net 1.2.4 service."); // endpointAddress = new Uri(localWebserverIIS + "/Rasp-1.2.4/services/TestService/nemhandel"); throw new NotImplementedException("The uddi type '" + uddiType.toString() + "' is not supported."); } @@ -366,12 +346,12 @@ public class OiosiRaspClient { } // Endpoint identified - log.info("Endpoint identified : " + endpointAddress); + LOG.info("Endpoint identified : " + endpointAddress); if (endpointAddress.getAbsoluteUri().contains("/nemhandel")) { - log.info("Destination service should accept all document types."); + LOG.info("Destination service should accept all document types."); } else { - log.info("Destination service only accept the document types defined in the ~/META-INF/service.xml."); + LOG.info("Destination service only accept the document types defined in the ~/META-INF/service.xml."); // ~/dk.gov.oiosi.examples.service\WebContent\WEB-INF\services\TestService\META-INF\service.xml } @@ -417,7 +397,6 @@ public class OiosiRaspClient { // The 'rootCertificateConfig' is used to get the root certificate // However, YOU need to load your OWN company function certificate! client = CertificateLoader.GetCertificateFromCertificateStoreInformation(rootCertificateConfig); - } else if (uddiType == UddiType.LocalJava_v1_2_3) { KeyStore ks2 = KeyStore.getInstance("JKS"); ks2.load(new FileInputStream("./keys/OCES_Test.jks"), "Test1234".toCharArray()); @@ -430,22 +409,22 @@ public class OiosiRaspClient { clientCertificate = new OcesX509Certificate(client); Date now = new Date(); - log.info("My certificate : " + clientCertificate.getSubject().getSerialNumberValue() + " " + clientCertificate.getSubject().getCn()); + LOG.info("My certificate : " + clientCertificate.getSubject().getSerialNumberValue() + " " + clientCertificate.getSubject().getCn()); if (now.before(clientCertificate.getCertificate().getNotBefore())) { - log.warn("My certificate is not yet active...! Activation date : " + clientCertificate.getCertificate().getNotBefore().toString()); + LOG.warn("My certificate is not yet active...! Activation date : " + clientCertificate.getCertificate().getNotBefore().toString()); } else if (now.after(clientCertificate.getCertificate().getNotAfter())) { - log.warn("My certificate has expired...! Expire date : " + clientCertificate.getCertificate().getNotAfter().toString()); + LOG.warn("My certificate has expired...! Expire date : " + clientCertificate.getCertificate().getNotAfter().toString()); } else { - log.info("My certificate is valid, expire: " + clientCertificate.getCertificate().getNotAfter().toString()); + LOG.info("My certificate is valid, expire: " + clientCertificate.getCertificate().getNotAfter().toString()); } - log.info("Destination service certificate : " + serverCertificate.getSubject().getSerialNumberValue() + " " + serverCertificate.getSubject().getCn()); + LOG.info("Destination service certificate : " + serverCertificate.getSubject().getSerialNumberValue() + " " + serverCertificate.getSubject().getCn()); if (now.before(serverCertificate.getCertificate().getNotBefore())) { - log.warn("Destination service certificate is not yet active...! Activation date : " + serverCertificate.getCertificate().getNotBefore().toString()); + LOG.warn("Destination service certificate is not yet active...! Activation date : " + serverCertificate.getCertificate().getNotBefore().toString()); } else if (now.after(serverCertificate.getCertificate().getNotAfter())) { - log.warn("Destination service certificate has expired...! Expire date : " + serverCertificate.getCertificate().getNotAfter().toString()); + LOG.warn("Destination service certificate has expired...! Expire date : " + serverCertificate.getCertificate().getNotAfter().toString()); } else { - log.info("Destination service certificate is valid, expire: " + serverCertificate.getCertificate().getNotAfter().toString()); + LOG.info("Destination service certificate is valid, expire: " + serverCertificate.getCertificate().getNotAfter().toString()); } //Step 6: Send it @@ -454,7 +433,7 @@ public class OiosiRaspClient { // Use policy defined in RaspConfiguration.xml SendPolicy sendPolicy = ConfigurationHandler.getInstance().getSendPolicy(); - log.info("SendPolicy loaded from configuration"); + LOG.info("SendPolicy loaded from configuration"); // Create a request RaspRequest request = new RaspRequest(new Request(endpointAddress, credentials, sendPolicy)); @@ -475,27 +454,27 @@ public class OiosiRaspClient { SignatureValidationProof signatureProof = response.getResponseMessage().getSignatureProof(); - log.info("Received response from service: " + (body == null ? "empty message" : body)); - log.info("SignatureValidationProof: " + signatureProof); + LOG.info("Received response from service: " + (body == null ? "empty message" : body)); + LOG.info("SignatureValidationProof: " + signatureProof); // All okay, the document has been send and received okay resultOK = true; } catch (Exception e) { - log.error("Failed to send message to service: " + e.getMessage(), e); + LOG.error("Failed to send message to service: " + e.getMessage(), e); } try { // Let the ReliableMessaging session finish... long sleep = 1000; - log.info("Now sleep for " + sleep + " milisec - Let the ReliableMessaging session finish..."); + LOG.info("Now sleep for " + sleep + " milisec - Let the ReliableMessaging session finish..."); Thread.sleep(sleep); TransportController.shutdown(); - log.info("ReliableMessaging session finish and transportController.shutdown."); + LOG.info("ReliableMessaging session finish and transportController.shutdown."); } catch (Exception ignore) { } if (resultOK) { - log.info("Done..."); + LOG.info("Done..."); } return resultOK; @@ -506,7 +485,7 @@ public class OiosiRaspClient { xmlDocumentUrl = PATH_INVOICE_OIOUBL; boolean resultOK = false; - log.info("Sending document using config " + uddiType.name() + ", config file: " + uddiType.raspConfigurationFile); + LOG.info("Sending document using config " + uddiType.name() + ", config file: " + uddiType.raspConfigurationFile); ConfigurationHandler.setConfigurationFile(uddiType.raspConfigurationFile); try { @@ -514,15 +493,15 @@ public class OiosiRaspClient { ConfigurationHandler.getInstance().executeStartupTasks(); } catch (Throwable e) { /* - * Wrap it with Throwable, so both Exceptions and Errors are - * caught. If we switch back to old version of OIORASP, which - * does not have method executeStartupTasks, it will continue - * working. - */ - log.warn("Failed to execute startup tasks", e); + * Wrap it with Throwable, so both Exceptions and Errors are + * caught. If we switch back to old version of OIORASP, which + * does not have method executeStartupTasks, it will continue + * working. + */ + LOG.warn("Failed to execute startup tasks", e); } - log.info("Try to send message to service"); + LOG.info("Try to send message to service"); // Set the path to the custom RASP configuration file. // This file contains setup for things like: @@ -537,14 +516,14 @@ public class OiosiRaspClient { // Load the document from disc XmlDocument xmlDocument = new XmlDocument(); xmlDocument.load(xmlDocumentUrl); - log.info("Document loaded from file: " + xmlDocumentUrl); + LOG.info("Document loaded from file: " + xmlDocumentUrl); // Search our configuration file for the document type we are currently about to send. // The UBL type can be inferred from the XML root element name of the file, and the configuration we get // contains paths to XML schemas, schematron stylesheets and XPath expressions used to find the EAN number for example DocumentTypeConfigSearcher documentTypeSearcher = new DocumentTypeConfigSearcher(); DocumentTypeConfig documentTypeConfig = documentTypeSearcher.findUniqueDocumentType(xmlDocument); - log.info("Document is known in configuration"); + LOG.info("Document is known in configuration"); // Step 2: Validate the document @@ -552,14 +531,14 @@ public class OiosiRaspClient { // Schema validate document before sending... SchemaValidator schemaValidator = new SchemaValidator(); schemaValidator.schemaValidateXmlDocument(xmlDocument, documentTypeConfig); - log.info("Document is schema valid"); + LOG.info("Document is schema valid"); // Schematron validate Document before sending... for (SchematronValidationConfig schematronValidationConfig : documentTypeConfig.getSchematronValidationConfigList()) { SchematronValidator schematronValidator = new SchematronValidator(schematronValidationConfig); schematronValidator.schematronValidateXmlDocument(xmlDocument); } - log.info("Document is schematron/logically valid"); + LOG.info("Document is schematron/logically valid"); Uri endpointAddress; @@ -594,7 +573,7 @@ public class OiosiRaspClient { case FOCES2Test: case FOCES2_99018008: case FOCES2_99018080: { - log.info("Sending the document though NHR/UDDI lookup"); + LOG.info("Sending the document though NHR/UDDI lookup"); Identifier identifier = Utilities.getReceiverEndpointKey(xmlDocument); @@ -627,13 +606,13 @@ public class OiosiRaspClient { } // Look it up... - log.info("Ask NHR for: " + identifier); + LOG.info("Ask NHR for: " + identifier); IUddiLookupClient uddiClient = RegistryLookupClientFactory.getRegistryLookupClient(); List uddiResultList = uddiClient.lookup(parameters); - log.info("Found # in NHR : " + uddiResultList.size()); + LOG.info("Found # in NHR : " + uddiResultList.size()); UddiLookupResponse uddiResponse; if (uddiResultList.size() == 0) { - log.error("No Information found in NHR"); + LOG.error("No Information found in NHR"); return false; } else if (uddiResultList.size() == 1) { // Normal uddi lookup result @@ -648,7 +627,7 @@ public class OiosiRaspClient { // The result list contain two endpoints, using the same EndpointAddressTypeCode // We do not know which one of theses endpoints that should be used. - log.error("Multi endpoint found in NHR via UDDI Inquiry"); + LOG.error("Multi endpoint found in NHR via UDDI Inquiry"); return false; } @@ -668,8 +647,8 @@ public class OiosiRaspClient { } } - log.info("Found endpoint : " + uddiResponse.getEndpointAddress().getKeyAsString()); - log.info("Receiver subject: " + uddiResponse.getCertificateSubjectSerialNumber()); + LOG.info("Found endpoint : " + uddiResponse.getEndpointAddress().getKeyAsString()); + LOG.info("Receiver subject: " + uddiResponse.getCertificateSubjectSerialNumber()); // Step 4: LDAP Lookup // Get the certificate identifier from the UDDI results @@ -678,7 +657,7 @@ public class OiosiRaspClient { // Use a factory to create an LDAP client, and download the certificate ICertificateLookup lookup = LdapLookupFactory.createLdapLookupClient(); X509Certificate server = lookup.getCertificate(certificateSubject); - log.info("Found receiver certificate in LDAP: " + server.getSubjectDN()); + LOG.info("Found receiver certificate in LDAP: " + server.getSubjectDN()); // Step 5: Revocation Check @@ -696,12 +675,12 @@ public class OiosiRaspClient { } case LocalJava_v1_2_3: { - log.info("Sending the document to the local Java 1.2.3 service."); + LOG.info("Sending the document to the local Java 1.2.3 service."); endpointAddress = new Uri(localWebserverTomcat + "/Rasp-1.2.3/services/TestService/nemhandel"); break; } case LocalNet_v1_2_4: { - log.info("Sending the document to the local .Net 1.2.4 service."); + LOG.info("Sending the document to the local .Net 1.2.4 service."); // endpointAddress = new Uri(localWebserverIIS + "/Rasp-1.2.4/services/TestService/nemhandel"); throw new NotImplementedException("The uddi type '" + uddiType.toString() + "' is not supported."); } @@ -783,7 +762,7 @@ public class OiosiRaspClient { // Replace with the path to your own locale jks file! File certFile = new File("H:/Certifikater/DIGST_CVR-34051178/DIGST-FB-sender.jks"); if (!certFile.exists()) { - log.fatal("Java KeyStore file [" + certFile.getAbsolutePath() + "] does not exist, so reconfigure code/certificate setup!"); + LOG.fatal("Java KeyStore file [" + certFile.getAbsolutePath() + "] does not exist, so reconfigure code/certificate setup!"); } KeyStore ks2 = KeyStore.getInstance("JKS"); @@ -808,22 +787,22 @@ public class OiosiRaspClient { clientCertificate = new OcesX509Certificate(client); Date now = new Date(); - log.info("My certificate: " + clientCertificate.getSubject().getSerialNumberValue() + " " + clientCertificate.getSubject().getCn()); + LOG.info("My certificate: " + clientCertificate.getSubject().getSerialNumberValue() + " " + clientCertificate.getSubject().getCn()); if (now.before(clientCertificate.getCertificate().getNotBefore())) { - log.warn("My certificate is not yet active...! Activation date : " + clientCertificate.getCertificate().getNotBefore().toString()); + LOG.warn("My certificate is not yet active...! Activation date : " + clientCertificate.getCertificate().getNotBefore().toString()); } else if (now.after(clientCertificate.getCertificate().getNotAfter())) { - log.warn("My certificate has expired...! Expire date : " + clientCertificate.getCertificate().getNotAfter().toString()); + LOG.warn("My certificate has expired...! Expire date : " + clientCertificate.getCertificate().getNotAfter().toString()); } else { - log.info("My certificate is valid, expire: " + clientCertificate.getCertificate().getNotAfter().toString()); + LOG.info("My certificate is valid, expire: " + clientCertificate.getCertificate().getNotAfter().toString()); } - log.info("Destination service certificate: " + serverCertificate.getSubject().getSerialNumberValue() + " " + serverCertificate.getSubject().getCn()); + LOG.info("Destination service certificate: " + serverCertificate.getSubject().getSerialNumberValue() + " " + serverCertificate.getSubject().getCn()); if (now.before(serverCertificate.getCertificate().getNotBefore())) { - log.warn("Destination service certificate is not yet active...! Activation date : " + serverCertificate.getCertificate().getNotBefore().toString()); + LOG.warn("Destination service certificate is not yet active...! Activation date : " + serverCertificate.getCertificate().getNotBefore().toString()); } else if (now.after(serverCertificate.getCertificate().getNotAfter())) { - log.warn("Destination service certificate has expired...! Expire date : " + serverCertificate.getCertificate().getNotAfter().toString()); + LOG.warn("Destination service certificate has expired...! Expire date : " + serverCertificate.getCertificate().getNotAfter().toString()); } else { - log.info("Destination service certificate is valid, expire: " + serverCertificate.getCertificate().getNotAfter().toString()); + LOG.info("Destination service certificate is valid, expire: " + serverCertificate.getCertificate().getNotAfter().toString()); } //Step 6: Send it @@ -832,7 +811,7 @@ public class OiosiRaspClient { // Use policy defined in RaspConfiguration.xml SendPolicy sendPolicy = ConfigurationHandler.getInstance().getSendPolicy(); - log.info("SendPolicy loaded from configuration"); + LOG.info("SendPolicy loaded from configuration"); // Create a request RaspRequest request = new RaspRequest(new Request(endpointAddress, credentials, sendPolicy)); @@ -853,32 +832,49 @@ public class OiosiRaspClient { SignatureValidationProof signatureProof = response.getResponseMessage().getSignatureProof(); - log.info("Received response from service: " + (body == null ? "empty message" : body)); - log.info("SignatureValidationProof: " + signatureProof); + LOG.info("Received response from service: " + (body == null ? "empty message" : body)); + LOG.info("SignatureValidationProof: " + signatureProof); // All okay, the document has been send and received okay resultOK = true; } catch (Exception e) { - log.error("Failed to send message to service: " + e.getMessage(), e); + LOG.error("Failed to send message to service: " + e.getMessage(), e); } try { // Let the ReliableMessaging session finish... long sleep = 10000; - log.info("Now sleep for " + sleep + " ms. - Let the ReliableMessaging session finish..."); + LOG.info("Now sleep for " + sleep + " ms. - Let the ReliableMessaging session finish..."); Thread.sleep(sleep); TransportController.shutdown(); - log.info("ReliableMessaging session finish and transportController.shutdown"); + LOG.info("ReliableMessaging session finish and transportController.shutdown"); } catch (Exception e) { - log.error("Failed to shutdown TransportController: " + e.getMessage(), e); + LOG.error("Failed to shutdown TransportController: " + e.getMessage(), e); } if (resultOK) { - log.info("Done!"); + LOG.info("Done!"); } else { - log.error("Sending failed!"); + LOG.error("Sending failed!"); } return resultOK; } // sendDocument_Prod -} \ No newline at end of file + + public enum UddiType { + Production(RaspConfigurationLive), + Test(RaspConfigurationTest), + LocalJava_v1_2_3(RaspConfigurationTest), + LocalNet_v1_2_4(RaspConfigurationTest), + + FOCES2Test("cfg/RaspConfiguration.Oces2.xml"), + FOCES2_99018008("cfg/RaspConfiguration.99018008.xml"), + FOCES2_99018080("cfg/RaspConfiguration.99018080.xml"); + + private final String raspConfigurationFile; + + UddiType(String configFile) { + raspConfigurationFile = configFile; + } + } +} diff --git a/dk.gov.oiosi.examples.service/.idea/.name b/dk.gov.oiosi.examples.service/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..c1a2e93973e30b885002c9adcb26d3b08b10fcc5 --- /dev/null +++ b/dk.gov.oiosi.examples.service/.idea/.name @@ -0,0 +1 @@ +RASP Java Example Service \ No newline at end of file diff --git a/dk.gov.oiosi.examples.service/.idea/dk.gov.oiosi.examples.service.iml b/dk.gov.oiosi.examples.service/.idea/dk.gov.oiosi.examples.service.iml new file mode 100644 index 0000000000000000000000000000000000000000..9a2de570234a382c227a3b916c86ca76d79abc9b --- /dev/null +++ b/dk.gov.oiosi.examples.service/.idea/dk.gov.oiosi.examples.service.iml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.service/.idea/misc.xml b/dk.gov.oiosi.examples.service/.idea/misc.xml index 5ff7766e0d7f9ed2f21b35ed595e9e01d97b75ef..caf51dd68c5e37c85db153fd022bf853f2a2cd9e 100644 --- a/dk.gov.oiosi.examples.service/.idea/misc.xml +++ b/dk.gov.oiosi.examples.service/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.service/.idea/modules.xml b/dk.gov.oiosi.examples.service/.idea/modules.xml index ce714b0f747bd29f2a29b7d922ccc4cf755c517c..dfa9d2cbfaac2b3e16a452ae9bda1e26192f3af4 100644 --- a/dk.gov.oiosi.examples.service/.idea/modules.xml +++ b/dk.gov.oiosi.examples.service/.idea/modules.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/dk.gov.oiosi.examples.service/.idea/workspace.xml b/dk.gov.oiosi.examples.service/.idea/workspace.xml deleted file mode 100644 index e4ef1455261a5b6eb82cfbdb9698e1ee82a59254..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.examples.service/.idea/workspace.xml +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1600772851462 - - - 1616067500900 - - - 1616074007858 - - - 1616077260338 - - - 1616159768893 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/conf/axis2.xml b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/conf/axis2.xml index bd854d786bd568b03a508e44664bc4478e77b0ea..902143e1e975f008451fb93d91646d16fbfa3a53 100644 --- a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/conf/axis2.xml +++ b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/conf/axis2.xml @@ -60,13 +60,21 @@ false + + false + - + @@ -76,7 +84,7 @@ - + + class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/> + class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/> + class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/> + class="org.apache.axis2.transport.http.SOAPMessageFormatter"/> + class="org.apache.axis2.transport.http.SOAPMessageFormatter"/> @@ -112,42 +120,42 @@ + class="org.apache.axis2.builder.ApplicationXMLBuilder"/> + class="org.apache.axis2.builder.ApplicationXMLBuilder"/> + class="org.apache.axis2.builder.XFormURLEncodedBuilder"/> + class="org.apache.axis2.builder.MultipartFormDataBuilder"/> - - - - - - - - - - + + + + + + + + + + @@ -175,30 +183,22 @@ - - HTTP/1.1 - chunked - + + + + + + + + - - + @@ -222,9 +222,9 @@ - - + @@ -278,9 +278,9 @@ - - + diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/LICENSE b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/LICENSE deleted file mode 100644 index 6b0b1270ff0ca8f03867efcd09ba6ddb6392b1e1..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/LICENSE +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/avalon-framework-avalon-framework-4.1.5.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/avalon-framework-avalon-framework-4.1.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..a24b1c70dc904d8beee92e953b009d73c3c751b2 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/avalon-framework-avalon-framework-4.1.5.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcpkix-jdk15on-1.68.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcpkix-jdk15on-1.68.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b6385d894b21701b7e8704cca66c6904f33c2ab Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcpkix-jdk15on-1.68.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcpkix-jdk15on-147.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcpkix-jdk15on-147.jar deleted file mode 100644 index 50f289e8b93c75fe96ebc552eb5df27e615b0c9f..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcpkix-jdk15on-147.jar and /dev/null differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcprov-jdk15on-1.68.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcprov-jdk15on-1.68.jar new file mode 100644 index 0000000000000000000000000000000000000000..84ae48522ee97388cda33aee39de434f984276a5 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcprov-jdk15on-1.68.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcprov-jdk15on-147.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcprov-jdk15on-147.jar deleted file mode 100644 index d7f54c8e7417771a44198f8232e7bf2c7af25bb9..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/bcprov-jdk15on-147.jar and /dev/null differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/commons-logging-1.1.1.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/commons-logging-1.1.1.jar deleted file mode 100644 index 1deef144cb17ed2c11c6cdcdcb2d9530fa8d0b47..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/commons-logging-1.1.1.jar and /dev/null differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/commons-logging-commons-logging-1.2.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/commons-logging-commons-logging-1.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..93a3b9f6db406c84e270e19b9a5e70f2e27ca513 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/commons-logging-commons-logging-1.2.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dk.gov.oiosi.library-2.1.0.33856.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dk.gov.oiosi.library-2.1.0.33856.jar deleted file mode 100644 index 96370f05efb28cc929ab21ac2eb523a8063562af..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dk.gov.oiosi.library-2.1.0.33856.jar and /dev/null differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dk.gov.oiosi.library-3.0.0.beta4.81cde762.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dk.gov.oiosi.library-3.0.0.beta4.81cde762.jar new file mode 100644 index 0000000000000000000000000000000000000000..40fee3fbda7d6e53049680c3ad59325c90fa3268 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dk.gov.oiosi.library-3.0.0.beta4.81cde762.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dom4j-dom4j-1.6.1.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dom4j-dom4j-1.6.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..c8c4dbb92d6c23a7fbb2813eb721eb4cce91750c Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/dom4j-dom4j-1.6.1.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jaxen-1.1.1.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jaxen-1.1.1.jar deleted file mode 100644 index b63363113f53cf145abcaa6cc44057cf13ae4f72..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jaxen-1.1.1.jar and /dev/null differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jaxen-jaxen-1.2.0.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jaxen-jaxen-1.2.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..c819d63b6a3fa8467d998643127386c127ead1bb Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jaxen-jaxen-1.2.0.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jdom-jdom-1.0.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jdom-jdom-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..288e64cb5c435f34499a58b234c2106f9d9f0783 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/jdom-jdom-1.0.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/log4j-api-2.14.1.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/log4j-api-2.14.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..52a9aeeb67a4a7c3d3ae9027d80e863f45db815a Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/log4j-api-2.14.1.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/log4j-jcl-2.14.1.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/log4j-jcl-2.14.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..dbfb7051e63081accbacd0b51e62eed08f394e28 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/log4j-jcl-2.14.1.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/net.sf.saxon-Saxon-HE-10.3.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/net.sf.saxon-Saxon-HE-10.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..cd197fe7271dce3acfbdcea6eb0a3385cc8b25e1 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/net.sf.saxon-Saxon-HE-10.3.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/org.jdom-jdom-1.1.3.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/org.jdom-jdom-1.1.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..a287727868572178c408ef6ffad0a5f27baed34b Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/org.jdom-jdom-1.1.3.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/org.jdom-jdom2-2.0.6.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/org.jdom-jdom2-2.0.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..2850ca10cf9c97e9aed8cf35751d1448030a84c3 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/org.jdom-jdom2-2.0.6.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/saxon9he.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/saxon9he.jar deleted file mode 100644 index ebc2d29d3e1f715da5b763949d7199a30d0fdced..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/saxon9he.jar and /dev/null differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xercesImpl-2.6.2.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xerces-xercesImpl-2.6.2.jar similarity index 100% rename from dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xercesImpl-2.6.2.jar rename to dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xerces-xercesImpl-2.6.2.jar diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xerces-xmlParserAPIs-2.6.2.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xerces-xmlParserAPIs-2.6.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..2dd83771445c00b3f11ece7aa2cb7dc947a8e2c1 Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xerces-xmlParserAPIs-2.6.2.jar differ diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-apis-1.3.02.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-apis-xml-apis-1.3.02.jar similarity index 100% rename from dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-apis-1.3.02.jar rename to dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-apis-xml-apis-1.3.02.jar diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-resolver-1.2.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-resolver-xml-resolver-1.2.jar similarity index 100% rename from dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-resolver-1.2.jar rename to dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xml-resolver-xml-resolver-1.2.jar diff --git a/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xom-xom-1.0.jar b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xom-xom-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..22cd958b6ea4d4c0c6c6ad2848a6839e9048b85f Binary files /dev/null and b/dk.gov.oiosi.examples.service/WebContent/WEB-INF/lib/xom-xom-1.0.jar differ diff --git a/dk.gov.oiosi.examples.service/bin/buildAndDeploy.sh b/dk.gov.oiosi.examples.service/bin/buildAndDeploy.sh index efbe99f347952ca4eeccc6f780d908b1d569a006..02f07e489079e8598099b49872c2d207a3a881a7 100755 --- a/dk.gov.oiosi.examples.service/bin/buildAndDeploy.sh +++ b/dk.gov.oiosi.examples.service/bin/buildAndDeploy.sh @@ -26,7 +26,8 @@ rm -rf $CATALINA_HOME/webapps/Rasp* #cp common/jaxws-ri/lib/jaxws-rt.jar $CATALINA_HOME/endorsed #cp test/config-test.properties $CATALINA_HOME/lib/config.properties -cp cfg/log4j.xml $CATALINA_HOME/lib +#cp cfg/log4j2.xml $CATALINA_HOME/lib +cp cfg/log4j2.xml $CATALINA_HOME/shared/classes cp target/*.war $CATALINA_HOME/webapps/rasp.war diff --git a/dk.gov.oiosi.examples.service/build.xml b/dk.gov.oiosi.examples.service/build.xml index a4f9ebccb5a1813a6b7684ed63981dbbe5d3f237..53b6ceefff0955f0644cf0a3ce85025ba327bc35 100644 --- a/dk.gov.oiosi.examples.service/build.xml +++ b/dk.gov.oiosi.examples.service/build.xml @@ -1,9 +1,8 @@ - - + @@ -66,7 +65,7 @@ - + @@ -87,11 +86,7 @@ - - - - - + - - - + @@ -126,9 +119,9 @@ - - - + + + diff --git a/dk.gov.oiosi.examples.service/cfg/log4j.xml b/dk.gov.oiosi.examples.service/cfg/log4j.xml deleted file mode 100644 index 8392af9d49d2d659a948fc8066f164d04a792fff..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.examples.service/cfg/log4j.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dk.gov.oiosi.examples.service/cfg/log4j2.xml b/dk.gov.oiosi.examples.service/cfg/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..eccc71bb9fda934afab4639bbef54cb5061c1971 --- /dev/null +++ b/dk.gov.oiosi.examples.service/cfg/log4j2.xml @@ -0,0 +1,85 @@ + + + + ${sys:catalina.base}/logs + %d{yyyy-MM-dd HH:mm:ss z}{CET} %5p: %m [%c{1}:%L]%n + + + + + + ${layout} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dk.gov.oiosi.examples.service/common b/dk.gov.oiosi.examples.service/common index eadc55672ca15a89cbe95a246676ea654035c4e0..f94252a3e53741c934a0cddc893c7333cff91275 160000 --- a/dk.gov.oiosi.examples.service/common +++ b/dk.gov.oiosi.examples.service/common @@ -1 +1 @@ -Subproject commit eadc55672ca15a89cbe95a246676ea654035c4e0 +Subproject commit f94252a3e53741c934a0cddc893c7333cff91275 diff --git a/dk.gov.oiosi.examples.service/doc/HowToDeploy.txt b/dk.gov.oiosi.examples.service/doc/HowToDeploy.txt index 47006ebc0cf080fac153441066d601d9e77afff0..592e05991764f08eb1a145cb13d32af88d0c8202 100644 --- a/dk.gov.oiosi.examples.service/doc/HowToDeploy.txt +++ b/dk.gov.oiosi.examples.service/doc/HowToDeploy.txt @@ -3,7 +3,7 @@ Reminder - how to deploy 1: Upload the the war file to the Apache Tomcat server http://demo.nemhandel.dk:8080 -2: Inside the WAR, replace WEB-INF/keys/oces_digst_live.jks with the oces_digst_live.jks file on the demo-server +2: Inside the WAR, replace WEB-INF/classes/keys/oces_digst_live.jks with the oces_digst_live.jks file on the demo-server (this file contains the receiver FOCES for demo - NOT present here in GIT). 3: When deployed, stop Tomcat diff --git a/dk.gov.oiosi.examples.service/src/dk/firma/webservice/InitServlet.java b/dk.gov.oiosi.examples.service/src/dk/firma/webservice/InitServlet.java index 504dc235b9d807a9d6423bdb834e98b51de837b6..a784bb6235d223a4e5675fc06bcc4a26ff7591e3 100644 --- a/dk.gov.oiosi.examples.service/src/dk/firma/webservice/InitServlet.java +++ b/dk.gov.oiosi.examples.service/src/dk/firma/webservice/InitServlet.java @@ -15,17 +15,18 @@ import javax.servlet.http.HttpServlet; */ public class InitServlet extends HttpServlet { - private static final long serialVersionUID = -4515457543862567508L; - private final Log log = LogFactory.getLog(InitServlet.class); + @Override public void init(ServletConfig arg0) throws ServletException { super.init(arg0); + log.info("Servlet started."); + try { ConfigurationHandler.getInstance().executeStartupTasks(); - } catch (Throwable e) { - log.error("OIORASP ConfigurationHandler failed to execute startup tasks", e); + } catch (Exception e) { + log.error("OIORASP ConfigurationHandler failed to execute startup tasks: " + e.getMessage(), e); } } } diff --git a/dk.gov.oiosi.examples.service/src/dk/firma/webservice/MyWebService.java b/dk.gov.oiosi.examples.service/src/dk/firma/webservice/MyWebService.java index a3ad10ce42a373aa2ba308cd777088da70a6f003..fb50a92e6167d9326d8a7dedf2b8483d38ef73e5 100644 --- a/dk.gov.oiosi.examples.service/src/dk/firma/webservice/MyWebService.java +++ b/dk.gov.oiosi.examples.service/src/dk/firma/webservice/MyWebService.java @@ -71,7 +71,7 @@ public class MyWebService implements IServiceContract { * In a real world scenario received message ids should be persisted, * so that they are not lost if the web service is restarted. */ - private static final Set receivedGUIDs = new HashSet(); + private static final Set receivedGUIDs = new HashSet<>(); public OiosiMessage requestRespond(OiosiMessage message) throws MainException { diff --git a/dk.gov.oiosi.library/.idea/ant.xml b/dk.gov.oiosi.library/.idea/ant.xml new file mode 100644 index 0000000000000000000000000000000000000000..a2a47698279d3066c062d5472c43634c644f6334 --- /dev/null +++ b/dk.gov.oiosi.library/.idea/ant.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.library/.idea/libraries/libs.xml b/dk.gov.oiosi.library/.idea/libraries/libs.xml index b43f3483157c0b8d6c7723206f5cb0e3b37d5f3e..6ecc0acf6c9f43cd57067083c944c7ac1ebf399a 100644 --- a/dk.gov.oiosi.library/.idea/libraries/libs.xml +++ b/dk.gov.oiosi.library/.idea/libraries/libs.xml @@ -1,24 +1,22 @@ - - + - - + diff --git a/dk.gov.oiosi.library/.idea/misc.xml b/dk.gov.oiosi.library/.idea/misc.xml index 2e017e2df6879cfab12ead63a9db54217035c34a..6300ca8043bc92cc9cae5a872d6611926a25f0ad 100644 --- a/dk.gov.oiosi.library/.idea/misc.xml +++ b/dk.gov.oiosi.library/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/dk.gov.oiosi.library/Jenkinsfile b/dk.gov.oiosi.library/Jenkinsfile deleted file mode 100644 index f88c0da8f8e77707893834f4e687977135e2ce9b..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/Jenkinsfile +++ /dev/null @@ -1,41 +0,0 @@ - -pipeline { - agent any - options { timestamps() } - stages { -// stage('checkout'){ -// checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'PathRestriction', excludedRegions: '', includedRegions: 'admin/**.*']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ERST-Gitlab', url: 'https://rep.erst.dk/git/nemhandelinternal/kode/java/fakturablanketten.git']]]) -// } - stage('build'){ - steps { - dir('dk.gov.oiosi.library') { - withAnt(installation: 'ANT-1.9.14', jdk: 'JDK_8') { - bat "ant build-all" - } - } - } - } - } - post { - always { - script { - COMMITTER_EMAIL = bat( - script: "git --no-pager show -s --format='%%ae'", - returnStdout: true).split('\r\n')[2].trim().replace("'","") - echo "COMMITTER_EMAIL: ${COMMITTER_EMAIL}" - } - junit '**/target/test-results/**/*.xml' - } - success { - echo 'This will run only if successful' - archiveArtifacts 'dk.gov.oiosi.library/target/dk.gov.oiosi.library-*.jar' - archiveArtifacts 'dk.gov.oiosi.library/target/dk.gov.oiosi.library-*-src.zip' - } - failure { - mail to:"${COMMITTER_EMAIL}", subject:"FAILURE: ${currentBuild.fullDisplayName}", body: "Something is wrong with ${env.BUILD_URL}" - } - unstable { - mail to:"${COMMITTER_EMAIL}", subject:"UNSTABLE: ${currentBuild.fullDisplayName}", body: "Something is wrong with ${env.BUILD_URL}" - } - } -} diff --git a/dk.gov.oiosi.library/Jenkinsfile.groovy b/dk.gov.oiosi.library/Jenkinsfile.groovy new file mode 100644 index 0000000000000000000000000000000000000000..06c8ea1c37072666faa1162539a08f1182790f95 --- /dev/null +++ b/dk.gov.oiosi.library/Jenkinsfile.groovy @@ -0,0 +1,4 @@ +@Library(value='nemhandel', changelog=false) _ +// code in https://rep.erst.dk/git/nemhandelinternal/nemhandelsinfrastruktur/-/tree/master/vars + +oioraspJava() diff --git a/dk.gov.oiosi.library/RaspConfiguration.Live.xml b/dk.gov.oiosi.library/RaspConfiguration.Live.xml index fc25a883951de4315137dd39116e6c61a245b28f..6316f74c21e228259521ecb58652853d831e489b 100644 --- a/dk.gov.oiosi.library/RaspConfiguration.Live.xml +++ b/dk.gov.oiosi.library/RaspConfiguration.Live.xml @@ -43,7 +43,8 @@ - dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + @@ -74,10 +75,15 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + - /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') + ='fakturering']/com:Name + /root:Invoice/com:SellerParty/com:PartyName/com:Name @@ -90,30 +96,6 @@ /root:Invoice/com:BuyersReferenceID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -125,30 +107,6 @@ EndpointKeyType /root:Invoice/com:SellerParty/com:ID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -166,7 +124,7 @@ - string('OIOXML elektronisk handel') + string('OIOXML elektronisk handel') /root:Invoice/com:ID @@ -196,10 +154,17 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response + - /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') + ='fakturering']/com:Name + /root:Invoice/com:SellerParty/com:PartyName/com:Name @@ -211,30 +176,6 @@ EndpointKeyType /root:Invoice/com:BuyersReferenceID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -246,30 +187,6 @@ EndpointKeyType /root:Invoice/com:SellerParty/com:ID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -287,7 +204,7 @@ - string('OIOXML elektronisk handel') + string('OIOXML elektronisk handel') /root:Invoice/com:ID @@ -334,8 +251,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name @@ -349,30 +270,6 @@ EndpointKeyType /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -384,30 +281,6 @@ EndpointKeyType /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -416,7 +289,8 @@ - Resources/Schematrons/OIOUBL/OIOUBL_ApplicationResponse_Schematron.xsl + Resources/Schematrons/OIOUBL/OIOUBL_ApplicationResponse_Schematron.xsl + /Schematron/Error /Schematron/Error/Description @@ -472,8 +346,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name @@ -487,30 +365,6 @@ EndpointKeyType /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -522,30 +376,6 @@ EndpointKeyType /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -610,8 +440,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse + /root:CatalogueRequest/cac:ProviderParty/cac:PartyName/cbc:Name @@ -625,30 +459,6 @@ EndpointKeyType /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -660,30 +470,6 @@ EndpointKeyType /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -748,8 +534,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name @@ -761,32 +551,9 @@ EndpointKeyType - /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -798,30 +565,6 @@ EndpointKeyType /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -886,8 +629,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse + /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name @@ -901,30 +648,6 @@ EndpointKeyType /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -936,30 +659,6 @@ EndpointKeyType /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -968,7 +667,8 @@ - Resources/Schematrons/OIOUBL/OIOUBL_CataloguePricingUpdate_Schematron.xsl + Resources/Schematrons/OIOUBL/OIOUBL_CataloguePricingUpdate_Schematron.xsl + /Schematron/Error /Schematron/Error/Description @@ -1015,7 +715,8 @@ sdt - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt @@ -1024,8 +725,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse + /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name @@ -1039,30 +744,6 @@ EndpointKeyType /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1074,30 +755,6 @@ EndpointKeyType /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1106,7 +763,8 @@ - Resources/Schematrons/OIOUBL/OIOUBL_CatalogueDeletion_Schematron.xsl + Resources/Schematrons/OIOUBL/OIOUBL_CatalogueDeletion_Schematron.xsl + /Schematron/Error /Schematron/Error/Description @@ -1162,8 +820,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name @@ -1177,30 +839,6 @@ EndpointKeyType /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1210,32 +848,9 @@ EndpointKeyType - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1300,8 +915,10 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name @@ -1313,33 +930,10 @@ EndpointKeyType - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1349,32 +943,9 @@ EndpointKeyType - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1439,8 +1010,10 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name @@ -1454,30 +1027,6 @@ EndpointKeyType /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1489,30 +1038,6 @@ EndpointKeyType /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1577,8 +1102,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name @@ -1590,32 +1119,9 @@ EndpointKeyType - /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1625,32 +1131,9 @@ EndpointKeyType - /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1659,7 +1142,8 @@ - Resources/Schematrons/OIOUBL/OIOUBL_OrderCancellation_Schematron.xsl + Resources/Schematrons/OIOUBL/OIOUBL_OrderCancellation_Schematron.xsl + /Schematron/Error /Schematron/Error/Description @@ -1715,8 +1199,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name @@ -1728,32 +1216,9 @@ EndpointKeyType - /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1763,32 +1228,9 @@ EndpointKeyType - /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1853,8 +1295,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name @@ -1866,32 +1312,9 @@ EndpointKeyType - /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1901,32 +1324,9 @@ EndpointKeyType - /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -1991,8 +1391,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name @@ -2004,32 +1408,9 @@ EndpointKeyType - /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2039,32 +1420,9 @@ EndpointKeyType - /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2073,7 +1431,8 @@ - Resources/Schematrons/OIOUBL/OIOUBL_OrderResponseSimple_Schematron.xsl + Resources/Schematrons/OIOUBL/OIOUBL_OrderResponseSimple_Schematron.xsl + /Schematron/Error /Schematron/Error/Description @@ -2129,8 +1488,11 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name @@ -2142,32 +1504,9 @@ EndpointKeyType - /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2177,32 +1516,9 @@ EndpointKeyType - /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2267,8 +1583,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse + /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name @@ -2280,32 +1600,9 @@ EndpointKeyType - /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2315,32 +1612,9 @@ EndpointKeyType - /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2405,8 +1679,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse + /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name @@ -2420,30 +1698,6 @@ EndpointKeyType /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2455,30 +1709,6 @@ EndpointKeyType /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - @@ -2503,132 +1733,62 @@ - + + - 24750a44-9a18-46f4-85ef-50f00c90068b - Katalog (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 - Catalogue - - - /root:Catalogue/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver4.0 - - - - uddi:6c917ef1-5143-4123-879a-471215dbd373 - Resources/Schemas/UBL_v2.1/maindoc/UBL-Catalogue-2.1.xsd + 4873431b-fa84-4579-b789-2e3162d06038 + NKS Betalings Ordre + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSPayment + + uddi:f283bd90-a247-11dc-a80b-bfc65441a808 + + - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ root - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCataloguRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCatalogueResponse + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderResponse - /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + //ebms:To/ebms:PartyId[1] - /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + //ebms:From/ebms:PartyId[1] - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - + string('EAN') + - /root:Catalogue/cac:ProviderParty/cbc:EndpointID + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType - /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - + string('EAN') + @@ -2636,166 +1796,76 @@ - - Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T19.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T19.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T19.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description - /root:Catalogue/cbc:ProfileID + string('NKS2.0') - /root:Catalogue/cbc:ID + - + + - 551e8437-f543-46cf-bd56-492a25e723fc - Applikationsmeddelse (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 - ApplicationResponse - - - /root:ApplicationResponse/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns058:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 - - - - uddi:e79dd402-8f60-4811-9f59-1acb0c036d05 - Resources/Schemas/UBL_v2.1/maindoc/UBL-ApplicationResponse-2.1.xsd - Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + 0e765453-7422-4d90-b13f-850fc0e5b309 + NKS Kvittering 0 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt0 + + uddi:9910d270-a242-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt0.xsd + - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ root - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseResponse + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Response - /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + //ebms:To/ebms:PartyId[1] - /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + //ebms:From/ebms:PartyId[1] - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - + string('EAN') + - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - + string('EAN') + @@ -2803,1212 +1873,51 @@ - - Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T58.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T58.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T58.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description - /root:ApplicationResponse/cbc:ProfileID + string('NKS2.0') - /root:ApplicationResponse/cbc:ID + - - 21671b33-58a2-4ab5-96bd-42f6c4f22af6 - Kreditnota (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - CreditNote - - - /root:CreditNote/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 - - - - uddi:4db3f358-6184-4979-bbc9-5d65aee27132 - Resources/Schemas/UBL_v2.1/maindoc/UBL-CreditNote-2.1.xsd - Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + 363237e6-dafc-4103-901a-36b499d0eeaa + NKS Kvittering 1 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt1 + + uddi:8df531b0-a242-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt1.xsd + - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteResponse - - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/BIIRULES-UBL-T14.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOLCORE-UBL-T14.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOL-UBL-T14.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:CreditNote/cbc:ProfileID - - - /root:CreditNote/cbc:ID - - - - - c9f45e05-8cc0-44df-ab1e-111c5167b0b5 - Faktura (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - - - /root:Invoice/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 - - - - uddi:ea27f0c4-cb68-4e39-b0eb-5c96af8c1759 - Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd - Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:Invoice/cbc:ProfileID - - - /root:Invoice/cbc:ID - - - - - 9e8b18e5-416e-4c41-9b9f-adadc3de6598 - Forsendelsesadvis - urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 - DespatchAdvice - - - /root:DespatchAdvice/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns016:ver1.0:extended:urn:www.peppol.eu:bis:peppol30a:ver1.0 - - - - uddi:96dbec86-aa58-4f1e-ae03-ebb13079ce61 - Resources/Schemas/UBL_v2.1/maindoc/UBL-DespatchAdvice-2.1.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceResponse - - - /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/BIIRULES-UBL-T16.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOLCORE-UBL-T16.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOL-UBL-T16.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:DespatchAdvice/cbc:ProfileID - - - /root:DespatchAdvice/cbc:ID - - - - - c1061668-0549-452c-b0cb-7d6428fdc5f7 - Faktura (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - - - /root:Invoice/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol4a:ver2.0 - - - - uddi:e956ca42-0be2-487a-8573-580b523c248d - Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd - Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:Invoice/cbc:ProfileID - - - /root:Invoice/cbc:ID - - - - - db2f9050-2adb-49c2-8f05-af9e440d12ca - Ordre (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - Order - - - /root:Order/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol3a:ver2.0 - - - - uddi:873c25f6-23d2-4019-830e-89cc89386930 - Resources/Schemas/UBL_v2.1/maindoc/UBL-Order-2.1.xsd - Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderResponse - - - /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/BIIRULES-UBL-T01.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOLCORE-UBL-T01.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOL-UBL-T01.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:Order/cbc:ProfileID - - - /root:Order/cbc:ID - - - - - bab5613e-6360-4e84-84a3-61838a77590c - Faktura (PEPPOL BIS Billing) - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - - - /root:Invoice/cbc:CustomizationID - - urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 - - - - uddi:678befa8-ae31-437a-8e52-1139162698df - Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd - Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ root - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Response - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - Resources/Schematrons/PEPPOL/BIS3.0-Billing/CEN-EN16931-UBL.xsl - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - Resources/Schematrons/PEPPOL/BIS3.0-Billing/PEPPOL-EN16931-UBL.xsl - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - /root:Invoice/cbc:ProfileID - - - /root:Invoice/cbc:ID - - - - - - - 4873431b-fa84-4579-b789-2e3162d06038 - NKS Betalings Ordre - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSPayment - - uddi:f283bd90-a247-11dc-a80b-bfc65441a808 - - - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderResponse - - //ebms:To/ebms:PartyId[1] - - - //ebms:From/ebms:PartyId[1] - - - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - - - - Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - - - 0e765453-7422-4d90-b13f-850fc0e5b309 - NKS Kvittering 0 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSReceipt0 - - uddi:9910d270-a242-11dc-a80a-bfc65441a808 - Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt0.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Response - - //ebms:To/ebms:PartyId[1] - - - //ebms:From/ebms:PartyId[1] - - - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - - - - Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - 363237e6-dafc-4103-901a-36b499d0eeaa - NKS Kvittering 1 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSReceipt1 - - uddi:8df531b0-a242-11dc-a80a-bfc65441a808 - Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt1.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Response //ebms:To/ebms:PartyId[1] @@ -4051,7 +1960,7 @@ string('NKS2.0') - + @@ -4078,8 +1987,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Response + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Response + //ebms:To/ebms:PartyId[1] @@ -4087,7 +2000,7 @@ //ebms:From/ebms:PartyId[1] - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType @@ -4097,7 +2010,7 @@ - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType @@ -4122,7 +2035,7 @@ string('NKS2.0') - + @@ -4149,8 +2062,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Response + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Response + //ebms:To/ebms:PartyId[1] @@ -4158,7 +2075,7 @@ //ebms:From/ebms:PartyId[1] - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType @@ -4168,7 +2085,7 @@ - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] EndpointKeyType @@ -4193,7 +2110,7 @@ string('NKS2.0') - + @@ -4220,8 +2137,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Response + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Response + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr @@ -4264,7 +2185,7 @@ string('NKS2.0') - + @@ -4291,8 +2212,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Response + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Response + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr @@ -4335,7 +2260,7 @@ string('NKS2.0') - + @@ -4362,8 +2287,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Response + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Response + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr @@ -4406,7 +2335,7 @@ string('NKS2.0') - + @@ -4441,8 +2370,10 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPURequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPUResponse + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPURequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPUResponse + @@ -4450,7 +2381,9 @@ - /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/nkspu:VansNemkontoEnvironmentCode + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/nkspu:VansNemkontoEnvironmentCode + EndpointKeyType @@ -4460,7 +2393,9 @@ - /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/ean:EAN13Identifier + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/ean:EAN13Identifier + EndpointKeyType @@ -4485,7 +2420,7 @@ string('NKS-PU') - + @@ -4519,8 +2454,12 @@ - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseResponse + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseResponse + @@ -4528,8 +2467,10 @@ - /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/ean:EAN13Identifier - + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/ean:EAN13Identifier + + EndpointKeyType string('EAN') @@ -4538,7 +2479,9 @@ - /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/nkspu:VansNemkontoEnvironmentCode + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/nkspu:VansNemkontoEnvironmentCode + EndpointKeyType @@ -4563,7 +2506,7 @@ string('NKS-PU') - + @@ -4575,12 +2518,12 @@ OIOXML elektronisk handel uddi:c001daa0-8ba3-11dd-894e-770465b08940 - - + + OIOXML elektronisk handel - læs ind uddi:cac79330-8ba3-11dd-894e-770465b08940 - - + + Catalogue-CatBas-1.0 uddi:4697A391-741F-4534-A21E-8F0A460013BB @@ -4787,14 +2730,20 @@ dk.gov.oiosi.security.ldap.LdapCertificateLookup + - crtdir.certifikat.dk - 389 - 5000 - 5000 - 5000 - 1 + + crtdir.certifikat.dk + 389 + + + ldap.ca1.gov.dk + 389 + + 5000 + 5000 + @@ -4814,17 +2763,18 @@ dk.gov.oiosi.uddi.RegistryLookupClient + - 15 - noMoreThanOneSetOrFail + 30 http://discoverypublic.nemhandel.dk/uddi/services/inquiry http://discoverybackup.nemhandel-backup.dk/uddi/services/inquiry + @@ -4930,18 +2880,12 @@ ./common/resources/Certificates/Live/Root/OCES_root_Prod.jks Test1234 - ca + prod - - PID - - - RID - UID diff --git a/dk.gov.oiosi.library/RaspConfiguration.Test.xml b/dk.gov.oiosi.library/RaspConfiguration.Test.xml index a30fe87764241e3c5a5d7416bb92e1811f8adc1a..075fb389b9cf0453025eb88e90c8b208376a2c7c 100644 --- a/dk.gov.oiosi.library/RaspConfiguration.Test.xml +++ b/dk.gov.oiosi.library/RaspConfiguration.Test.xml @@ -1,5205 +1,3013 @@ - - - - - - - dk.gov.oiosi.common.startup.SchematronPreloadStartupTask - - - - initDocumentTypeFriendlyName - Faktura - - - initDocumentTypeFriendlyName - Kreditnota - - - - - - dk.gov.oiosi.common.startup.DownloadCRLStartupTask - - - - - - - - - - downloadCrlUrl - http://crl.systemtest8.trust2408.com/systemtest8.crl - - - - downloadCrlUrl - http://crl.systemtest7.trust2408.com/systemtest7.crl - - - - - dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask - - - - scheduleJobRunInterval - 30 - - - scheduleJobRunIntervalTimeUnit - SECONDS - - - - - - - - - - 5a15a880-eef8-40c0-80f2-bb65226f50c2 - Faktura v0.7 - http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ - Invoice - - uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 - common/Resources/Schemas/OIOXML_v0.7/pieStrict.xsd - common/Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl - - - http://rep.oio.dk/ubl/xml/schemas/0p71/common/ - com - - - http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ - main - - - http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response - - - /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or - translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or - translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name - - - - /root:Invoice/com:SellerParty/com:PartyName/com:Name - - - /root:Invoice/com:BuyersReferenceID - - - EndpointKeyType - /root:Invoice/com:BuyersReferenceID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/com:SellerParty/com:ID - - - EndpointKeyType - /root:Invoice/com:SellerParty/com:ID/@schemeID - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl - - /schematron/error - /schematron/error - - - - - - - string('OIOXML elektronisk handel') - - - /root:Invoice/com:ID - - - - 7bd520d7-6ae5-4a3c-8604-082e69414092 - Kreditnota v0.7 - http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ - Invoice - - uddi:3bbc9cf0-3c4c-11dc-98be-6976502198bd - common/Resources/Schemas/OIOXML_v0.7/pcmStrict.xsd - common/Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl - - - http://rep.oio.dk/ubl/xml/schemas/0p71/common/ - com - - - http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ - main - - - http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response - - - /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or - translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or - translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name - - - - /root:Invoice/com:SellerParty/com:PartyName/com:Name - - - /root:Invoice/com:BuyersReferenceID - - - EndpointKeyType - /root:Invoice/com:BuyersReferenceID/@schemeID - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/com:SellerParty/com:ID - - - EndpointKeyType - /root:Invoice/com:SellerParty/com:ID/@schemeID - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl - - /schematron/error - /schematron/error - - - - - - - string('OIOXML elektronisk handel') - - - /root:Invoice/com:ID - - - - 40c9fbee-ad39-48ed-9e04-c28cbbf8a38c - Applikationsmeddelse - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 - ApplicationResponse - - - /root:ApplicationResponse/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-ApplicationResponse-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse - - - /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name - - - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID - - - EndpointKeyType - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_ApplicationResponse_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:ApplicationResponse/cbc:ProfileID - - - /root:ApplicationResponse/cbc:ID - - - - 68db0c6f-ec2c-44ad-b1c3-bdfae65ee5f0 - Katalog - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 - Catalogue - - - /root:Catalogue/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:b8a5a5d0-df9f-11dc-889a-1a827c218899 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Catalogue-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse - - - /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Catalogue/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_Catalogue_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:Catalogue/cbc:ProfileID - - - /root:Catalogue/cbc:ID - - - - 463984d1-4ba5-44d6-8903-565cc56dd4cb - Katalogforespørgsel - urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 - CatalogueRequest - - - /root:CatalogueRequest/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:0cb0ff80-dfa0-11dc-889a-1a827c218899 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueRequest-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse - - - /root:CatalogueRequest/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:CatalogueRequest/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueRequest_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:CatalogueRequest/cbc:ProfileID - - - /root:CatalogueRequest/cbc:ID - - - - fb3034ea-eaaf-434b-8798-0433db497e66 - Opdatering af katalogelement - urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 - - CatalogueItemSpecificationUpdate - - - /root:CatalogueItemSpecificationUpdate/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:63eab5c0-dfa0-11dc-889b-1a827c218899 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueItemSpecificationUpdate-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 - - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse - - - /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - - /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - - /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueItemSpecificationUpdate_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:CatalogueItemSpecificationUpdate/cbc:ProfileID - - - /root:CatalogueItemSpecificationUpdate/cbc:ID - - - - 02092e85-c2e4-4bb2-b22d-3eec04007a36 - Opdatering af katalogpriser - urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 - CataloguePricingUpdate - - - /root:CataloguePricingUpdate/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:abdb2720-dfa0-11dc-889b-1a827c218899 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CataloguePricingUpdate-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse - - - /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CataloguePricingUpdate/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - - /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - - /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_CataloguePricingUpdate_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:CataloguePricingUpdate/cbc:ProfileID - - - /root:CataloguePricingUpdate/cbc:ID - - - - 0efa1c48-b5e3-4eb8-bc5f-3fbd78daba10 - Sletning af katalog - urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 - CatalogueDeletion - - - /root:CatalogueDeletion/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:40e5cbd0-dfa2-11dc-889b-1a827c218899 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueDeletion-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse - - - /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CatalogueDeletion/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueDeletion_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:CatalogueDeletion/cbc:ProfileID - - - /root:CatalogueDeletion/cbc:ID - - - - a25f2c30-cb5b-404d-886a-9030621f7eea - Kreditnota - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - CreditNote - - - /root:CreditNote/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:E4EC9613-4830-4bab-AFEE-C37AB1C67AEC - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CreditNote-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse - - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_CreditNote_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:CreditNote/cbc:ProfileID - - - /root:CreditNote/cbc:ID - - - - c0220657-c101-4d7d-9670-c9463e1559d5 - Faktura - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - - - /root:Invoice/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Invoice-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_Invoice_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:Invoice/cbc:ProfileID - - - /root:Invoice/cbc:ID - - - - 5b84d1f6-f315-4a2c-a84d-095b10cc5a2c - Ordre - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - Order - - - /root:Order/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Order-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse - - - /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_Order_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:Order/cbc:ProfileID - - - /root:Order/cbc:ID - - - - c4a09991-d038-4e51-bb06-2cdffe6c1b77 - Ordreannulering - urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 - OrderCancellation - - - /root:OrderCancellation/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:7ba80590-dfa1-11dc-889b-1a827c218899 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderCancellation-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/OrderCancellationHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse - - - /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_OrderCancellation_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:OrderCancellation/cbc:ProfileID - - - /root:OrderCancellation/cbc:ID - - - - ba652e7d-e8bd-4926-8bd8-9e19a5ca23e6 - Ordrebekræftelse - urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 - OrderResponse - - - /root:OrderResponse/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:ed6d3c40-dfa1-11dc-889b-1a827c218899 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponse-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/OrderResponseHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse - - - /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_OrderResponse_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:OrderResponse/cbc:ProfileID - - - /root:OrderResponse/cbc:ID - - - - 0412fdc2-5f07-4e6f-a8fd-c0dc7d780dce - Ordreændring - urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 - OrderChange - - - /root:OrderChange/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:ea4bc88f-9479-4f9b-a354-4acabdb99336 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderChange-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/OrderChangeHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse - - - /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_OrderChange_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:OrderChange/cbc:ProfileID - - - /root:OrderChange/cbc:ID - - - - c8577e35-7de6-49f6-926c-c061f5a7d1b6 - Simpel ordrebekræftelse - urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 - OrderResponseSimple - - - /root:OrderResponseSimple/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:3B0B1309-B575-4d69-9C8F-4126C53CD7B0 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponseSimple-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/OrderResponseSimpleHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse - - - /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - - /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_OrderResponseSimple_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:OrderResponseSimple/cbc:ProfileID - - - /root:OrderResponseSimple/cbc:ID - - - - b552710b-e4c2-44f6-a89e-1b158375b5f3 - Rykker - urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 - Reminder - - - /root:Reminder/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:4FBBBDEF-0A8E-4d5e-9B9D-23C8FD98E9CE - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Reminder-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/ReminderHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse - - - /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Reminder/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_Reminder_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:Reminder/cbc:ProfileID - - - /root:Reminder/cbc:ID - - - - 76c4f0fa-e969-4360-9a04-8de3c675d4f2 - KontoUdtog - urn:oasis:names:specification:ubl:schema:xsd:Statement-2 - Statement - - - /root:Statement/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:4e383840-bcfc-11dc-a81b-bfc65441a808 - common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Statement-2.0.xsd - common/Resources/UI/OIOUBL/Stylesheets/StatementHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Statement-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse - - - /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Statement/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_Statement_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:Statement/cbc:ProfileID - - - /root:Statement/cbc:ID - - - - eee3da84-27b7-4b37-81b1-cfb9d2942a00 - Forsynings Specifikation - urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 - UtilityStatement - - - /root:UtilityStatement/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - uddi:236f277d-a786-4724-a16e-26398b685a07 - common/Resources/Schemas/OIOUBL_v2.1-b/maindoc/UBL-UtilityStatement-2.1.xsd - common/Resources/UI/OIOUBL/Stylesheets/UtilityStatementHTML.xsl - - - urn:oioubl:names:specification:oioubl:schema:xsd:CommonAggregateComponents-2 - - cac - - - urn:oioubl:names:specification:oioubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oioubl:names:specification:oioubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse - - - /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:UtilityStatement/cac:SenderParty/cac:PartyName/cbc:Name - - - /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:UtilityStatement/cac:SenderParty/cbc:EndpointID - - - EndpointKeyType - /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/OIOUBL/OIOUBL_UtilityStatement_Schematron.xsl - - /Schematron/Error - /Schematron/Error/Description - - - - - - - /root:UtilityStatement/cbc:ProfileID - - - /root:UtilityStatement/cbc:ID - - - - - - 24750a44-9a18-46f4-85ef-50f00c90068b - Katalog (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 - Catalogue - - - /root:Catalogue/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver4.0 - - - - uddi:6c917ef1-5143-4123-879a-471215dbd373 - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Catalogue-2.1.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCataloguRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCatalogueResponse - - - /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Catalogue/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T19.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T19.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T19.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:Catalogue/cbc:ProfileID - - - /root:Catalogue/cbc:ID - - - - - 551e8437-f543-46cf-bd56-492a25e723fc - Applikationsmeddelse (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 - ApplicationResponse - - - /root:ApplicationResponse/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns058:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 - - - - uddi:e79dd402-8f60-4811-9f59-1acb0c036d05 - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-ApplicationResponse-2.1.xsd - common/Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseResponse - - - /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name - - - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID - - - EndpointKeyType - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T58.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T58.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T58.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:ApplicationResponse/cbc:ProfileID - - - /root:ApplicationResponse/cbc:ID - - - - - 21671b33-58a2-4ab5-96bd-42f6c4f22af6 - Kreditnota (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - CreditNote - - - /root:CreditNote/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 - - - - uddi:4db3f358-6184-4979-bbc9-5d65aee27132 - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-CreditNote-2.1.xsd - common/Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteResponse - - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/BIIRULES-UBL-T14.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOLCORE-UBL-T14.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOL-UBL-T14.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:CreditNote/cbc:ProfileID - - - /root:CreditNote/cbc:ID - - - - - c9f45e05-8cc0-44df-ab1e-111c5167b0b5 - Faktura (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - - - /root:Invoice/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 - - - - uddi:ea27f0c4-cb68-4e39-b0eb-5c96af8c1759 - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd - common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:Invoice/cbc:ProfileID - - - /root:Invoice/cbc:ID - - - - - 9e8b18e5-416e-4c41-9b9f-adadc3de6598 - Forsendelsesadvis - urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 - DespatchAdvice - - - /root:DespatchAdvice/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns016:ver1.0:extended:urn:www.peppol.eu:bis:peppol30a:ver1.0 - - - - uddi:96dbec86-aa58-4f1e-ae03-ebb13079ce61 - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-DespatchAdvice-2.1.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceResponse - - - /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/BIIRULES-UBL-T16.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOLCORE-UBL-T16.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOL-UBL-T16.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:DespatchAdvice/cbc:ProfileID - - - /root:DespatchAdvice/cbc:ID - - - - - c1061668-0549-452c-b0cb-7d6428fdc5f7 - Faktura (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - - - /root:Invoice/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol4a:ver2.0 - - - - uddi:e956ca42-0be2-487a-8573-580b523c248d - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd - common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:Invoice/cbc:ProfileID - - - /root:Invoice/cbc:ID - - - - - db2f9050-2adb-49c2-8f05-af9e440d12ca - Ordre (PEPPOL) - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - Order - - - /root:Order/cbc:CustomizationID - - urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol3a:ver2.0 - - - - uddi:873c25f6-23d2-4019-830e-89cc89386930 - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Order-2.1.xsd - common/Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderResponse - - - /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/BIIRULES-UBL-T01.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOLCORE-UBL-T01.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - common/Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOL-UBL-T01.xsl - - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - - /root:Order/cbc:ProfileID - - - /root:Order/cbc:ID - - - - - bab5613e-6360-4e84-84a3-61838a77590c - Faktura (PEPPOL BIS Billing) - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - - - /root:Invoice/cbc:CustomizationID - - urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 - - - - uddi:678befa8-ae31-437a-8e52-1139162698df - common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd - common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - - GLN - ean - - - DK:CVR - cvr - - - DK:CPR - cpr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - - - - - - - - common/Resources/Schematrons/PEPPOL/BIS3.0-Billing/CEN-EN16931-UBL.xsl - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - common/Resources/Schematrons/PEPPOL/BIS3.0-Billing/PEPPOL-EN16931-UBL.xsl - /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] - /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text - - - - - - - /root:Invoice/cbc:ProfileID - - - /root:Invoice/cbc:ID - - - - - - - 4873431b-fa84-4579-b789-2e3162d06038 - NKS Betalings Ordre - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSPayment - - uddi:f283bd90-a247-11dc-a80b-bfc65441a808 - - - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderResponse - - - //ebms:To/ebms:PartyId[1] - - - //ebms:From/ebms:PartyId[1] - - - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - - - 0e765453-7422-4d90-b13f-850fc0e5b309 - NKS Kvittering 0 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSReceipt0 - - uddi:9910d270-a242-11dc-a80a-bfc65441a808 - common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt0.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Response - - - //ebms:To/ebms:PartyId[1] - - - //ebms:From/ebms:PartyId[1] - - - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - 363237e6-dafc-4103-901a-36b499d0eeaa - NKS Kvittering 1 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSReceipt1 - - uddi:8df531b0-a242-11dc-a80a-bfc65441a808 - common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt1.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Response - - - //ebms:To/ebms:PartyId[1] - - - //ebms:From/ebms:PartyId[1] - - - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - 688df9d0-e564-44a1-8028-617ab625a724 - NKS Retursvar 2 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSResponse2 - - uddi:41a37720-a244-11dc-a80a-bfc65441a808 - common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse2.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Response - - - //ebms:To/ebms:PartyId[1] - - - //ebms:From/ebms:PartyId[1] - - - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - 3d2b9c5b-5790-4aee-999b-c26a1d66a887 - NKS Retursvar 5 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSResponse5 - - uddi:65ee1590-a244-11dc-a80a-bfc65441a808 - common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse5.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Response - - - //ebms:To/ebms:PartyId[1] - - - //ebms:From/ebms:PartyId[1] - - - //ebms:To/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - //ebms:From/ebms:PartyId[count(../ebms:PartyId)] - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - 2cd298b8-eb8c-4f06-b7e8-6562cb54bc4e - NKS Retursvar 7 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSResponse7 - - uddi:ec1ece70-a244-11dc-a80a-bfc65441a808 - common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse7.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Response - - - /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr - - - - /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp - - - /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id - - - EndpointKeyType - string('EAN') - - - - - - /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:GrpId - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - 6ba94fca-368d-49d0-9976-ae497c85eb37 - NKS Retursvar 8 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSResponse8 - - uddi:0bc62390-a245-11dc-a80a-bfc65441a808 - common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse8.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Response - - - /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr - - - - /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp - - - /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id - - - EndpointKeyType - string('EAN') - - - - - - /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:GrpId - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - 1e780d55-1779-46dc-b438-b023c5e91183 - NKS Retursvar 9 - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - NKSResponse9 - - uddi:2dd3ca50-a245-11dc-a80b-bfc65441a808 - common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse9.xsd - - - - http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ - swift - - - http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ - ebms - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ - root - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Request - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Response - - - /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr - - - - /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp - - - /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id - - - EndpointKeyType - string('EAN') - - - - - - /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:GrpId - - - EndpointKeyType - string('EAN') - - - - - - - - - common/Resources/NemKonto/Schematrons/NemKonto.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - - string('NKS2.0') - - - - - - - - - - 76e3b26b-28a2-4cfd-bf67-27c5ee41014d - NKS PU Request - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ - NemkontoPrivatUdbetalerTransporterRequest - - uddi:6b5fc8cb-5ec9-42bf-9a6f-1b3762f011ed - - - - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ - nkspu - - - http://rep.oio.dk/ean/xml/schemas/2005/01/10/ - ean - - - http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ - cvr - - - http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ - cpr - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPURequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPUResponse - - - - - - - - - - /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/nkspu:VansNemkontoEnvironmentCode - - - - EndpointKeyType - string('DK:VANS') - - - - - - - /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/ean:EAN13Identifier - - - - EndpointKeyType - string('EAN') - - - - - - - - - - - - - - - - - - string('NKS-PU') - - - - - - - - - 1985c136-96df-4a04-add2-ca95b9de3371 - NKS PU Response - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ - NemkontoPrivatUdbetalerTransporterResponse - - uddi:34c56e2a-f920-439b-80c7-831cc4ac523b - - - - - - http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ - nkspu - - - http://rep.oio.dk/ean/xml/schemas/2005/01/10/ - ean - - - http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ - cvr - - - http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ - cpr - - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseRequest - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseResponse - - - - - - - - - - /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/ean:EAN13Identifier - - - - EndpointKeyType - string('EAN') - - - - - - - /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/nkspu:VansNemkontoEnvironmentCode - - - - EndpointKeyType - string('DK:VANS') - - - - - - - - - - - - - - - - - - string('NKS-PU') - - - - - - - - - - - - - OIOXML elektronisk handel - uddi:c001daa0-8ba3-11dd-894e-770465b08940 - - - OIOXML elektronisk handel - læs ind - uddi:cac79330-8ba3-11dd-894e-770465b08940 - - - Catalogue-CatBas-1.0 - uddi:4697A391-741F-4534-A21E-8F0A460013BB - - - Catalogue-CatBasR-1.0 - uddi:03717C45-27A8-453f-833C-BD4D8AAB9675 - - - Catalogue-CatSim-1.0 - uddi:BE9F86E6-03C0-4d00-A3EE-44FC29EB3882 - - - Catalogue-CatSimR-1.0 - uddi:48277C4B-489F-498d-8246-303A9867C081 - - - Catalogue-CatExt-1.0 - uddi:1C8E9102-6711-42e8-A35A-997C56A35BFE - - - Catalogue-CatExtR-1.0 - uddi:0B864A5A-5E1E-47da-AD3B-A3932F82DA37 - - - Catalogue-CatAdv-1.0 - uddi:7B7909C1-5DE4-4630-A741-C74A9DDDC6AB - - - Catalogue-CatAdvR-1.0 - uddi:EE7F4AEA-BFDC-4886-8C5E-319596E46DA5 - - - Procurement-BilSim-1.0 - uddi:362229ac-b657-452a-b8f8-c93e62c670ff - - - Procurement-BilSimR-1.0 - uddi:98070e14-ee30-4b10-84ef-986cde3b8116 - - - Procurement-PayBas-1.0 - uddi:E5D505C0-4B52-4485-8169-4AB5343559A5 - - - Procurement-PayBasR-1.0 - uddi:FED5F809-64EC-4523-BC57-4A57D5680DA9 - - - Procurement-OrdSim-BilSim-1.0 - uddi:142C4188-3D53-440d-A64F-68D7C3B9A59B - - - Procurement-OrdSimR-BilSimR-1.0 - uddi:1e1b209e-7b8d-4f1e-8f2a-f3d9a94d1086 - - - Procurement-OrdSim-BilSimR-1.0 - uddi:7A638D35-3E08-432e-B558-74CB85889905 - - - Procurement-OrdSimR-BilSim-1.0 - uddi:EBABEE8B-A5D3-4dc9-B976-3AAFF9A4E855 - - - Procurement-OrdAdv-BilSim-1.0 - uddi:88FBD6D5-6A25-4c08-91CC-5344C73C4D69 - - - Procurement-OrdAdv-BilSimR-1.0 - uddi:76897296-08aa-4848-a933-ae068b4c604e - - - Procurement-OrdAdvR-BilSim-1.0 - uddi:1d01dd98-a302-4897-92d8-fd501447c450 - - - Procurement-OrdAdvR-BilSimR-1.0 - uddi:b23940b1-d571-4640-8830-9b7f34809fbc - - - Procurement-OrdSel-BilSim-1.0 - uddi:46D94D6B-E835-4916-BBB5-F27DC655876A - - - Procurement-OrdSel-BilSimR-1.0 - uddi:42AD3EDE-BBD4-434d-AAE6-044CE3EF8D1F - - - urn:www.nesubl.eu:profiles:profile1:ver2.0 - uddi:FC1D4A1C-1538-4bdb-A718-2EFD712256C5 - - - urn:www.nesubl.eu:profiles:profile2:ver2.0 - uddi:3A3BFE67-AD35-43f0-9AE7-CDF268AE221D - - - urn:www.nesubl.eu:profiles:profile3:ver2.0 - uddi:F5231EDB-FBB4-4a3b-A46C-3BCF1B3C3F35 - - - - - - - urn:www.nesubl.eu:profiles:profile5:ver2.0 - uddi:aee8b6de-298f-4cbc-a96d-9ae8aed0ac31 - - - - - - - urn:www.nesubl.eu:profiles:profile7:ver2.0 - uddi:BB0B4FD4-F6AF-489f-98D9-7130424E7F8D - - - urn:www.nesubl.eu:profiles:profile8:ver2.0 - uddi:F4240370-CCA6-401e-9B5B-4531F413421D - - - Reference-Utility-1.0 - uddi:570b3009-3f9f-46d2-b533-31d0bb4a37a0 - - - Reference-UtilityR-1.0 - uddi:1bfd82e6-0eca-47df-9230-37b97c9788c6 - - - Catalogue-CatPriUpd-1.0 - uddi:a7f4c627-d459-4ef2-a132-fc6df0971db1 - - - Catalogue-CatPriUpdR-1.0 - uddi:fc5313f8-19e0-408b-85ca-87c364f2a41c - - - Procurement-OrdSim-1.0 - uddi:5f2d93a7-bdb7-4543-b667-ba71192e5c5f - - - Procurement-OrdSimR-1.0 - uddi:7fe5938c-1b3a-403c-8155-039b49a06cef - - - Procurement-TecRes-1.0 - uddi:ce80ccce-3ef9-47ea-8cf4-120913a87dc2 - - - Reference-Attachment-1.0 - uddi:10faffb1-1303-485e-924a-e8b551f31949 - - - urn:www.cenbii.eu:profile:bii04:ver2.0 - uddi:553e78e6-7de4-4926-8384-53ef82566560 - - - - - - - urn:www.cenbii.eu:profile:bii01:ver2.0 - uddi:c7cb8dd0-af00-42c6-a8b7-48204aa7b30f - - - urn:www.cenbii.eu:profile:bii30:ver2.0 - uddi:19ec7bb2-a39b-438c-a6ce-2124d6148f8f - - - urn:www.cenbii.eu:profile:bii05:ver2.0 - uddi:8dde0481-9055-41fe-94f7-5102ce3672e7 - - - urn:www.cenbii.eu:profile:bii03:ver2.0 - uddi:90043120-5eab-468c-be4a-5562d95a73a7 - - - - - urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 - uddi:1d193a6a-23a2-425f-bb19-a864b2415c1a - - - - NS-urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 - uddi:417c3aac-4bbb-46d6-86d1-a44f757fb326 - - - - - - - - NKS2.0 - uddi:fbc05a80-bde5-11dc-a81d-bfc65441a808 - - - NKS-PU - uddi:736eed0e-b698-4b2c-946e-7b996009c345 - - - - - - dk.gov.oiosi.security.ldap.LdapCertificateLookup - - - - crtdir.pp.certifikat.dk - 389 - 5000 - 5000 - 5000 - 1 - - - - - dk.gov.oiosi.security.revocation.ocsp.OcspLookup - - - - 20000 - - - dk.gov.oiosi.uddi.UddiLookupClient - - - dk.gov.oiosi.uddi.RegistryLookupClient - - - 15 - noMoreThanOneSetOrFail - - - - - - - http://discoverypublic-test.nemhandel.dk/uddi/services/inquiry - - - - - - - - - - - - - - - - dk.gov.oiosi.common.cache.TimedCache - dk.gov.oiosi.RaspLibrary - - - validityTimeInHours - 4 - - - frequencyInMinutes - 60 - - - - - - dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache - - dk.gov.oiosi.RaspLibrary - - - maxSize - 100 - - - onFailureRetryIntervalMinutes - 1 - - - - - - dk.gov.oiosi.common.cache.TimedCache - dk.gov.oiosi.RaspLibrary - - - validityTimeInHours - 4 - - - frequencyInMinutes - 60 - - - - - - dk.gov.oiosi.common.cache.TimedCache - dk.gov.oiosi.RaspLibrary - - - validityTimeInHours - 24 - - - frequencyInHours - 1 - - - - - - dk.gov.oiosi.common.cache.TimedCache - dk.gov.oiosi.RaspLibrary - - - validityTimeInHours - 24 - - - frequencyInHours - 1 - - - - - - dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache - - dk.gov.oiosi.RaspLibrary - - - maxSize - 100 - - - - - - - - - - - - ./test/src/keys/OCES_Test.jks - Test1234 - ca - - - - - - - PID - - - RID - - - UID - - - FID - - - - - ./cfg/policy.Test.xml - ./cfg/axis2.Test.xml - ./repository - - - - - - false - 5000 - 5 - - - - - - + + + + + + + dk.gov.oiosi.common.startup.SchematronPreloadStartupTask + + + + initDocumentTypeFriendlyName + Faktura + + + initDocumentTypeFriendlyName + Kreditnota + + + + + + dk.gov.oiosi.common.startup.DownloadCRLStartupTask + + + + + + + + + + downloadCrlUrl + http://crl.systemtest8.trust2408.com/systemtest8.crl + + + + downloadCrlUrl + http://crl.systemtest7.trust2408.com/systemtest7.crl + + + + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + + scheduleJobRunInterval + 30 + + + scheduleJobRunIntervalTimeUnit + SECONDS + + + + + + + + + + 5a15a880-eef8-40c0-80f2-bb65226f50c2 + Faktura v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + Invoice + + uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 + common/Resources/Schemas/OIOXML_v0.7/pieStrict.xsd + common/Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + + + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + + + + + + + common/Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 7bd520d7-6ae5-4a3c-8604-082e69414092 + Kreditnota v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + Invoice + + uddi:3bbc9cf0-3c4c-11dc-98be-6976502198bd + common/Resources/Schemas/OIOXML_v0.7/pcmStrict.xsd + common/Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + + + + + + + common/Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 40c9fbee-ad39-48ed-9e04-c28cbbf8a38c + Applikationsmeddelse + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-ApplicationResponse-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_ApplicationResponse_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + + 68db0c6f-ec2c-44ad-b1c3-bdfae65ee5f0 + Katalog + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b8a5a5d0-df9f-11dc-889a-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Catalogue-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Catalogue_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + + 463984d1-4ba5-44d6-8903-565cc56dd4cb + Katalogforespørgsel + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + CatalogueRequest + + + /root:CatalogueRequest/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:0cb0ff80-dfa0-11dc-889a-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueRequest-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse + + + /root:CatalogueRequest/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueRequest_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueRequest/cbc:ProfileID + + + /root:CatalogueRequest/cbc:ID + + + + fb3034ea-eaaf-434b-8798-0433db497e66 + Opdatering af katalogelement + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + + CatalogueItemSpecificationUpdate + + + /root:CatalogueItemSpecificationUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:63eab5c0-dfa0-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueItemSpecificationUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueItemSpecificationUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueItemSpecificationUpdate/cbc:ProfileID + + + /root:CatalogueItemSpecificationUpdate/cbc:ID + + + + 02092e85-c2e4-4bb2-b22d-3eec04007a36 + Opdatering af katalogpriser + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + CataloguePricingUpdate + + + /root:CataloguePricingUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:abdb2720-dfa0-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CataloguePricingUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CataloguePricingUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CataloguePricingUpdate/cbc:ProfileID + + + /root:CataloguePricingUpdate/cbc:ID + + + + 0efa1c48-b5e3-4eb8-bc5f-3fbd78daba10 + Sletning af katalog + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + CatalogueDeletion + + + /root:CatalogueDeletion/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:40e5cbd0-dfa2-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueDeletion-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse + + + /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueDeletion_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueDeletion/cbc:ProfileID + + + /root:CatalogueDeletion/cbc:ID + + + + a25f2c30-cb5b-404d-886a-9030621f7eea + Kreditnota + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:E4EC9613-4830-4bab-AFEE-C37AB1C67AEC + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CreditNote-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CreditNote_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + + c0220657-c101-4d7d-9670-c9463e1559d5 + Faktura + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Invoice-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Invoice_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + 5b84d1f6-f315-4a2c-a84d-095b10cc5a2c + Ordre + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Order-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Order_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + + c4a09991-d038-4e51-bb06-2cdffe6c1b77 + Ordreannulering + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + OrderCancellation + + + /root:OrderCancellation/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:7ba80590-dfa1-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderCancellation-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderCancellationHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderCancellation_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderCancellation/cbc:ProfileID + + + /root:OrderCancellation/cbc:ID + + + + ba652e7d-e8bd-4926-8bd8-9e19a5ca23e6 + Ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + OrderResponse + + + /root:OrderResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ed6d3c40-dfa1-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponse-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderResponse_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponse/cbc:ProfileID + + + /root:OrderResponse/cbc:ID + + + + 0412fdc2-5f07-4e6f-a8fd-c0dc7d780dce + Ordreændring + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + OrderChange + + + /root:OrderChange/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ea4bc88f-9479-4f9b-a354-4acabdb99336 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderChange-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderChangeHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderChange_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderChange/cbc:ProfileID + + + /root:OrderChange/cbc:ID + + + + c8577e35-7de6-49f6-926c-c061f5a7d1b6 + Simpel ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + OrderResponseSimple + + + /root:OrderResponseSimple/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:3B0B1309-B575-4d69-9C8F-4126C53CD7B0 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponseSimple-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderResponseSimpleHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderResponseSimple_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponseSimple/cbc:ProfileID + + + /root:OrderResponseSimple/cbc:ID + + + + b552710b-e4c2-44f6-a89e-1b158375b5f3 + Rykker + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + Reminder + + + /root:Reminder/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4FBBBDEF-0A8E-4d5e-9B9D-23C8FD98E9CE + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Reminder-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/ReminderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Reminder_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Reminder/cbc:ProfileID + + + /root:Reminder/cbc:ID + + + + 76c4f0fa-e969-4360-9a04-8de3c675d4f2 + KontoUdtog + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + Statement + + + /root:Statement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4e383840-bcfc-11dc-a81b-bfc65441a808 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Statement-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/StatementHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Statement_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Statement/cbc:ProfileID + + + /root:Statement/cbc:ID + + + + eee3da84-27b7-4b37-81b1-cfb9d2942a00 + Forsynings Specifikation + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + UtilityStatement + + + /root:UtilityStatement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:236f277d-a786-4724-a16e-26398b685a07 + common/Resources/Schemas/OIOUBL_v2.1-b/maindoc/UBL-UtilityStatement-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/UtilityStatementHTML.xsl + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonAggregateComponents-2 + + cac + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oioubl:names:specification:oioubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse + + + /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_UtilityStatement_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:UtilityStatement/cbc:ProfileID + + + /root:UtilityStatement/cbc:ID + + + + + + + 4873431b-fa84-4579-b789-2e3162d06038 + NKS Betalings Ordre + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSPayment + + uddi:f283bd90-a247-11dc-a80b-bfc65441a808 + + + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderResponse + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + 0e765453-7422-4d90-b13f-850fc0e5b309 + NKS Kvittering 0 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt0 + + uddi:9910d270-a242-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt0.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 363237e6-dafc-4103-901a-36b499d0eeaa + NKS Kvittering 1 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt1 + + uddi:8df531b0-a242-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt1.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 688df9d0-e564-44a1-8028-617ab625a724 + NKS Retursvar 2 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse2 + + uddi:41a37720-a244-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse2.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 3d2b9c5b-5790-4aee-999b-c26a1d66a887 + NKS Retursvar 5 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse5 + + uddi:65ee1590-a244-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse5.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 2cd298b8-eb8c-4f06-b7e8-6562cb54bc4e + NKS Retursvar 7 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse7 + + uddi:ec1ece70-a244-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse7.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Response + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 6ba94fca-368d-49d0-9976-ae497c85eb37 + NKS Retursvar 8 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse8 + + uddi:0bc62390-a245-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse8.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Response + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 1e780d55-1779-46dc-b438-b023c5e91183 + NKS Retursvar 9 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse9 + + uddi:2dd3ca50-a245-11dc-a80b-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse9.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Response + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + + 76e3b26b-28a2-4cfd-bf67-27c5ee41014d + NKS PU Request + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterRequest + + uddi:6b5fc8cb-5ec9-42bf-9a6f-1b3762f011ed + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPURequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPUResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + 1985c136-96df-4a04-add2-ca95b9de3371 + NKS PU Response + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterResponse + + uddi:34c56e2a-f920-439b-80c7-831cc4ac523b + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + + + + + OIOXML elektronisk handel + uddi:c001daa0-8ba3-11dd-894e-770465b08940 + + + OIOXML elektronisk handel - læs ind + uddi:cac79330-8ba3-11dd-894e-770465b08940 + + + Catalogue-CatBas-1.0 + uddi:4697A391-741F-4534-A21E-8F0A460013BB + + + Catalogue-CatBasR-1.0 + uddi:03717C45-27A8-453f-833C-BD4D8AAB9675 + + + Catalogue-CatSim-1.0 + uddi:BE9F86E6-03C0-4d00-A3EE-44FC29EB3882 + + + Catalogue-CatSimR-1.0 + uddi:48277C4B-489F-498d-8246-303A9867C081 + + + Catalogue-CatExt-1.0 + uddi:1C8E9102-6711-42e8-A35A-997C56A35BFE + + + Catalogue-CatExtR-1.0 + uddi:0B864A5A-5E1E-47da-AD3B-A3932F82DA37 + + + Catalogue-CatAdv-1.0 + uddi:7B7909C1-5DE4-4630-A741-C74A9DDDC6AB + + + Catalogue-CatAdvR-1.0 + uddi:EE7F4AEA-BFDC-4886-8C5E-319596E46DA5 + + + Procurement-BilSim-1.0 + uddi:362229ac-b657-452a-b8f8-c93e62c670ff + + + Procurement-BilSimR-1.0 + uddi:98070e14-ee30-4b10-84ef-986cde3b8116 + + + Procurement-PayBas-1.0 + uddi:E5D505C0-4B52-4485-8169-4AB5343559A5 + + + Procurement-PayBasR-1.0 + uddi:FED5F809-64EC-4523-BC57-4A57D5680DA9 + + + Procurement-OrdSim-BilSim-1.0 + uddi:142C4188-3D53-440d-A64F-68D7C3B9A59B + + + Procurement-OrdSimR-BilSimR-1.0 + uddi:1e1b209e-7b8d-4f1e-8f2a-f3d9a94d1086 + + + Procurement-OrdSim-BilSimR-1.0 + uddi:7A638D35-3E08-432e-B558-74CB85889905 + + + Procurement-OrdSimR-BilSim-1.0 + uddi:EBABEE8B-A5D3-4dc9-B976-3AAFF9A4E855 + + + Procurement-OrdAdv-BilSim-1.0 + uddi:88FBD6D5-6A25-4c08-91CC-5344C73C4D69 + + + Procurement-OrdAdv-BilSimR-1.0 + uddi:76897296-08aa-4848-a933-ae068b4c604e + + + Procurement-OrdAdvR-BilSim-1.0 + uddi:1d01dd98-a302-4897-92d8-fd501447c450 + + + Procurement-OrdAdvR-BilSimR-1.0 + uddi:b23940b1-d571-4640-8830-9b7f34809fbc + + + Procurement-OrdSel-BilSim-1.0 + uddi:46D94D6B-E835-4916-BBB5-F27DC655876A + + + Procurement-OrdSel-BilSimR-1.0 + uddi:42AD3EDE-BBD4-434d-AAE6-044CE3EF8D1F + + + urn:www.nesubl.eu:profiles:profile1:ver2.0 + uddi:FC1D4A1C-1538-4bdb-A718-2EFD712256C5 + + + urn:www.nesubl.eu:profiles:profile2:ver2.0 + uddi:3A3BFE67-AD35-43f0-9AE7-CDF268AE221D + + + urn:www.nesubl.eu:profiles:profile3:ver2.0 + uddi:F5231EDB-FBB4-4a3b-A46C-3BCF1B3C3F35 + + + + + + + urn:www.nesubl.eu:profiles:profile5:ver2.0 + uddi:aee8b6de-298f-4cbc-a96d-9ae8aed0ac31 + + + + + + + urn:www.nesubl.eu:profiles:profile7:ver2.0 + uddi:BB0B4FD4-F6AF-489f-98D9-7130424E7F8D + + + urn:www.nesubl.eu:profiles:profile8:ver2.0 + uddi:F4240370-CCA6-401e-9B5B-4531F413421D + + + Reference-Utility-1.0 + uddi:570b3009-3f9f-46d2-b533-31d0bb4a37a0 + + + Reference-UtilityR-1.0 + uddi:1bfd82e6-0eca-47df-9230-37b97c9788c6 + + + Catalogue-CatPriUpd-1.0 + uddi:a7f4c627-d459-4ef2-a132-fc6df0971db1 + + + Catalogue-CatPriUpdR-1.0 + uddi:fc5313f8-19e0-408b-85ca-87c364f2a41c + + + Procurement-OrdSim-1.0 + uddi:5f2d93a7-bdb7-4543-b667-ba71192e5c5f + + + Procurement-OrdSimR-1.0 + uddi:7fe5938c-1b3a-403c-8155-039b49a06cef + + + Procurement-TecRes-1.0 + uddi:ce80ccce-3ef9-47ea-8cf4-120913a87dc2 + + + Reference-Attachment-1.0 + uddi:10faffb1-1303-485e-924a-e8b551f31949 + + + urn:www.cenbii.eu:profile:bii04:ver2.0 + uddi:553e78e6-7de4-4926-8384-53ef82566560 + + + + + + + urn:www.cenbii.eu:profile:bii01:ver2.0 + uddi:c7cb8dd0-af00-42c6-a8b7-48204aa7b30f + + + urn:www.cenbii.eu:profile:bii30:ver2.0 + uddi:19ec7bb2-a39b-438c-a6ce-2124d6148f8f + + + urn:www.cenbii.eu:profile:bii05:ver2.0 + uddi:8dde0481-9055-41fe-94f7-5102ce3672e7 + + + urn:www.cenbii.eu:profile:bii03:ver2.0 + uddi:90043120-5eab-468c-be4a-5562d95a73a7 + + + + + urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:1d193a6a-23a2-425f-bb19-a864b2415c1a + + + + NS-urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:417c3aac-4bbb-46d6-86d1-a44f757fb326 + + + + + + + + NKS2.0 + uddi:fbc05a80-bde5-11dc-a81d-bfc65441a808 + + + NKS-PU + uddi:736eed0e-b698-4b2c-946e-7b996009c345 + + + + + + dk.gov.oiosi.security.ldap.LdapCertificateLookup + + + + + crtdir.pp.certifikat.dk + 389 + + + ca1.cti-gov.dk + 389 + + 4000 + 5000 + + + + + dk.gov.oiosi.security.revocation.ocsp.OcspLookup + + + + 20000 + + + dk.gov.oiosi.uddi.UddiLookupClient + + + dk.gov.oiosi.uddi.RegistryLookupClient + + + + + + + 30 + + + + http://discoverypublic-test.nemhandel.dk/uddi/services/inquiry + + + + + + + + + + + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + onFailureRetryIntervalMinutes + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + + + + + + + + + + ./test/src/keys/OCES_Test.jks + Test1234 + ca + + + + + + + + + + + + + UID + + + FID + + + + + ./cfg/policy.Test.xml + ./cfg/axis2.Test.xml + ./repository + + + + + + false + 5000 + 5 + + + + + + diff --git a/dk.gov.oiosi.library/RaspConfiguration_Extended.Live.xml b/dk.gov.oiosi.library/RaspConfiguration_Extended.Live.xml new file mode 100644 index 0000000000000000000000000000000000000000..26268db30decab95ad244543cf8d150f96bfd573 --- /dev/null +++ b/dk.gov.oiosi.library/RaspConfiguration_Extended.Live.xml @@ -0,0 +1,3958 @@ + + + + + + + dk.gov.oiosi.common.startup.SchematronPreloadStartupTask + + + + initDocumentTypeFriendlyName + Faktura + + + initDocumentTypeFriendlyName + Kreditnota + + + + + + + dk.gov.oiosi.common.startup.DownloadCRLStartupTask + + + + + + + + + + downloadCrlUrl + http://crl.systemtest8.trust2408.com/systemtest8.crl + + + + downloadCrlUrl + http://crl.systemtest7.trust2408.com/systemtest7.crl + + + + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + + + + + + + 5a15a880-eef8-40c0-80f2-bb65226f50c2 + Faktura v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + Invoice + + uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 + Resources/Schemas/OIOXML_v0.7/pieStrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or + translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', + 'faktureing') + ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 7bd520d7-6ae5-4a3c-8604-082e69414092 + Kreditnota v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + Invoice + + uddi:3bbc9cf0-3c4c-11dc-98be-6976502198bd + Resources/Schemas/OIOXML_v0.7/pcmStrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or + translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', + 'faktureing') + ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 40c9fbee-ad39-48ed-9e04-c28cbbf8a38c + Applikationsmeddelse + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5 + Resources/Schemas/UBL_v2.0/maindoc/UBL-ApplicationResponse-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_ApplicationResponse_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + + 68db0c6f-ec2c-44ad-b1c3-bdfae65ee5f0 + Katalog + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b8a5a5d0-df9f-11dc-889a-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-Catalogue-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Catalogue_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + + 463984d1-4ba5-44d6-8903-565cc56dd4cb + Katalogforespørgsel + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + CatalogueRequest + + + /root:CatalogueRequest/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:0cb0ff80-dfa0-11dc-889a-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueRequest-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse + + + /root:CatalogueRequest/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CatalogueRequest_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueRequest/cbc:ProfileID + + + /root:CatalogueRequest/cbc:ID + + + + fb3034ea-eaaf-434b-8798-0433db497e66 + Opdatering af katalogelement + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + + CatalogueItemSpecificationUpdate + + + /root:CatalogueItemSpecificationUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:63eab5c0-dfa0-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueItemSpecificationUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CatalogueItemSpecificationUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueItemSpecificationUpdate/cbc:ProfileID + + + /root:CatalogueItemSpecificationUpdate/cbc:ID + + + + 02092e85-c2e4-4bb2-b22d-3eec04007a36 + Opdatering af katalogpriser + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + CataloguePricingUpdate + + + /root:CataloguePricingUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:abdb2720-dfa0-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CataloguePricingUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CataloguePricingUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CataloguePricingUpdate/cbc:ProfileID + + + /root:CataloguePricingUpdate/cbc:ID + + + + 0efa1c48-b5e3-4eb8-bc5f-3fbd78daba10 + Sletning af katalog + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + CatalogueDeletion + + + /root:CatalogueDeletion/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:40e5cbd0-dfa2-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueDeletion-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse + + + /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CatalogueDeletion_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueDeletion/cbc:ProfileID + + + /root:CatalogueDeletion/cbc:ID + + + + a25f2c30-cb5b-404d-886a-9030621f7eea + Kreditnota + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:E4EC9613-4830-4bab-AFEE-C37AB1C67AEC + Resources/Schemas/UBL_v2.0/maindoc/UBL-CreditNote-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_CreditNote_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + + c0220657-c101-4d7d-9670-c9463e1559d5 + Faktura + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 + Resources/Schemas/UBL_v2.0/maindoc/UBL-Invoice-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Invoice_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + 5b84d1f6-f315-4a2c-a84d-095b10cc5a2c + Ordre + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a + Resources/Schemas/UBL_v2.0/maindoc/UBL-Order-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Order_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + + c4a09991-d038-4e51-bb06-2cdffe6c1b77 + Ordreannulering + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + OrderCancellation + + + /root:OrderCancellation/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:7ba80590-dfa1-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderCancellation-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderCancellationHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderCancellation_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderCancellation/cbc:ProfileID + + + /root:OrderCancellation/cbc:ID + + + + ba652e7d-e8bd-4926-8bd8-9e19a5ca23e6 + Ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + OrderResponse + + + /root:OrderResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ed6d3c40-dfa1-11dc-889b-1a827c218899 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponse-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderResponse_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponse/cbc:ProfileID + + + /root:OrderResponse/cbc:ID + + + + 0412fdc2-5f07-4e6f-a8fd-c0dc7d780dce + Ordreændring + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + OrderChange + + + /root:OrderChange/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ea4bc88f-9479-4f9b-a354-4acabdb99336 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderChange-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderChangeHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderChange_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderChange/cbc:ProfileID + + + /root:OrderChange/cbc:ID + + + + c8577e35-7de6-49f6-926c-c061f5a7d1b6 + Simpel ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + OrderResponseSimple + + + /root:OrderResponseSimple/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:3B0B1309-B575-4d69-9C8F-4126C53CD7B0 + Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponseSimple-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/OrderResponseSimpleHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_OrderResponseSimple_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponseSimple/cbc:ProfileID + + + /root:OrderResponseSimple/cbc:ID + + + + b552710b-e4c2-44f6-a89e-1b158375b5f3 + Rykker + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + Reminder + + + /root:Reminder/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4FBBBDEF-0A8E-4d5e-9B9D-23C8FD98E9CE + Resources/Schemas/UBL_v2.0/maindoc/UBL-Reminder-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/ReminderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Reminder_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Reminder/cbc:ProfileID + + + /root:Reminder/cbc:ID + + + + 76c4f0fa-e969-4360-9a04-8de3c675d4f2 + KontoUdtog + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + Statement + + + /root:Statement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4e383840-bcfc-11dc-a81b-bfc65441a808 + Resources/Schemas/UBL_v2.0/maindoc/UBL-Statement-2.0.xsd + Resources/UI/OIOUBL/Stylesheets/StatementHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_Statement_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Statement/cbc:ProfileID + + + /root:Statement/cbc:ID + + + + eee3da84-27b7-4b37-81b1-cfb9d2942a00 + Forsynings Specifikation + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + UtilityStatement + + + /root:UtilityStatement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:236f277d-a786-4724-a16e-26398b685a07 + Resources/Schemas/OIOUBL_v2.1-b/maindoc/UBL-UtilityStatement-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/UtilityStatementHTML.xsl + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonAggregateComponents-2 + + cac + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oioubl:names:specification:oioubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse + + + /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOUBL/OIOUBL_UtilityStatement_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:UtilityStatement/cbc:ProfileID + + + /root:UtilityStatement/cbc:ID + + + + + + 24750a44-9a18-46f4-85ef-50f00c90068b + Katalog (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver4.0 + + + + uddi:6c917ef1-5143-4123-879a-471215dbd373 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Catalogue-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCataloguRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCatalogueResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + + + 551e8437-f543-46cf-bd56-492a25e723fc + Applikationsmeddelse (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns058:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 + + + + uddi:e79dd402-8f60-4811-9f59-1acb0c036d05 + Resources/Schemas/UBL_v2.1/maindoc/UBL-ApplicationResponse-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + + + 21671b33-58a2-4ab5-96bd-42f6c4f22af6 + Kreditnota (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 + + + + uddi:4db3f358-6184-4979-bbc9-5d65aee27132 + Resources/Schemas/UBL_v2.1/maindoc/UBL-CreditNote-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteResponse + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/BIIRULES-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOLCORE-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOL-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + + + c9f45e05-8cc0-44df-ab1e-111c5167b0b5 + Faktura (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 + + + + uddi:ea27f0c4-cb68-4e39-b0eb-5c96af8c1759 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + 9e8b18e5-416e-4c41-9b9f-adadc3de6598 + Forsendelsesadvis + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + DespatchAdvice + + + /root:DespatchAdvice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns016:ver1.0:extended:urn:www.peppol.eu:bis:peppol30a:ver1.0 + + + + uddi:96dbec86-aa58-4f1e-ae03-ebb13079ce61 + Resources/Schemas/UBL_v2.1/maindoc/UBL-DespatchAdvice-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceResponse + + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/BIIRULES-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOLCORE-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOL-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:DespatchAdvice/cbc:ProfileID + + + /root:DespatchAdvice/cbc:ID + + + + + c1061668-0549-452c-b0cb-7d6428fdc5f7 + Faktura (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol4a:ver2.0 + + + + uddi:e956ca42-0be2-487a-8573-580b523c248d + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + db2f9050-2adb-49c2-8f05-af9e440d12ca + Ordre (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol3a:ver2.0 + + + + uddi:873c25f6-23d2-4019-830e-89cc89386930 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Order-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/BIIRULES-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOLCORE-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOL-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + + + bab5613e-6360-4e84-84a3-61838a77590c + Faktura (PEPPOL BIS Billing) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 + + + + uddi:678befa8-ae31-437a-8e52-1139162698df + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + Resources/Schematrons/PEPPOL/BIS3.0-Billing/CEN-EN16931-UBL.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + Resources/Schematrons/PEPPOL/BIS3.0-Billing/PEPPOL-EN16931-UBL.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + + + 4873431b-fa84-4579-b789-2e3162d06038 + NKS Betalings Ordre + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSPayment + + uddi:f283bd90-a247-11dc-a80b-bfc65441a808 + + + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderResponse + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + 0e765453-7422-4d90-b13f-850fc0e5b309 + NKS Kvittering 0 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt0 + + uddi:9910d270-a242-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt0.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 363237e6-dafc-4103-901a-36b499d0eeaa + NKS Kvittering 1 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt1 + + uddi:8df531b0-a242-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt1.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 688df9d0-e564-44a1-8028-617ab625a724 + NKS Retursvar 2 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse2 + + uddi:41a37720-a244-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse2.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 3d2b9c5b-5790-4aee-999b-c26a1d66a887 + NKS Retursvar 5 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse5 + + uddi:65ee1590-a244-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse5.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 2cd298b8-eb8c-4f06-b7e8-6562cb54bc4e + NKS Retursvar 7 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse7 + + uddi:ec1ece70-a244-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse7.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Response + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 6ba94fca-368d-49d0-9976-ae497c85eb37 + NKS Retursvar 8 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse8 + + uddi:0bc62390-a245-11dc-a80a-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse8.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Response + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 1e780d55-1779-46dc-b438-b023c5e91183 + NKS Retursvar 9 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse9 + + uddi:2dd3ca50-a245-11dc-a80b-bfc65441a808 + Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse9.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Response + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + + 76e3b26b-28a2-4cfd-bf67-27c5ee41014d + NKS PU Request + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterRequest + + uddi:6b5fc8cb-5ec9-42bf-9a6f-1b3762f011ed + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPURequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPUResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + 1985c136-96df-4a04-add2-ca95b9de3371 + NKS PU Response + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterResponse + + uddi:34c56e2a-f920-439b-80c7-831cc4ac523b + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + + + + + OIOXML elektronisk handel + uddi:c001daa0-8ba3-11dd-894e-770465b08940 + + + OIOXML elektronisk handel - læs ind + uddi:cac79330-8ba3-11dd-894e-770465b08940 + + + Catalogue-CatBas-1.0 + uddi:4697A391-741F-4534-A21E-8F0A460013BB + + + Catalogue-CatBasR-1.0 + uddi:03717C45-27A8-453f-833C-BD4D8AAB9675 + + + Catalogue-CatSim-1.0 + uddi:BE9F86E6-03C0-4d00-A3EE-44FC29EB3882 + + + Catalogue-CatSimR-1.0 + uddi:48277C4B-489F-498d-8246-303A9867C081 + + + Catalogue-CatExt-1.0 + uddi:1C8E9102-6711-42e8-A35A-997C56A35BFE + + + Catalogue-CatExtR-1.0 + uddi:0B864A5A-5E1E-47da-AD3B-A3932F82DA37 + + + Catalogue-CatAdv-1.0 + uddi:7B7909C1-5DE4-4630-A741-C74A9DDDC6AB + + + Catalogue-CatAdvR-1.0 + uddi:EE7F4AEA-BFDC-4886-8C5E-319596E46DA5 + + + Procurement-BilSim-1.0 + uddi:362229ac-b657-452a-b8f8-c93e62c670ff + + + Procurement-BilSimR-1.0 + uddi:98070e14-ee30-4b10-84ef-986cde3b8116 + + + Procurement-PayBas-1.0 + uddi:E5D505C0-4B52-4485-8169-4AB5343559A5 + + + Procurement-PayBasR-1.0 + uddi:FED5F809-64EC-4523-BC57-4A57D5680DA9 + + + Procurement-OrdSim-BilSim-1.0 + uddi:142C4188-3D53-440d-A64F-68D7C3B9A59B + + + Procurement-OrdSimR-BilSimR-1.0 + uddi:1e1b209e-7b8d-4f1e-8f2a-f3d9a94d1086 + + + Procurement-OrdSim-BilSimR-1.0 + uddi:7A638D35-3E08-432e-B558-74CB85889905 + + + Procurement-OrdSimR-BilSim-1.0 + uddi:EBABEE8B-A5D3-4dc9-B976-3AAFF9A4E855 + + + Procurement-OrdAdv-BilSim-1.0 + uddi:88FBD6D5-6A25-4c08-91CC-5344C73C4D69 + + + Procurement-OrdAdv-BilSimR-1.0 + uddi:76897296-08aa-4848-a933-ae068b4c604e + + + Procurement-OrdAdvR-BilSim-1.0 + uddi:1d01dd98-a302-4897-92d8-fd501447c450 + + + Procurement-OrdAdvR-BilSimR-1.0 + uddi:b23940b1-d571-4640-8830-9b7f34809fbc + + + Procurement-OrdSel-BilSim-1.0 + uddi:46D94D6B-E835-4916-BBB5-F27DC655876A + + + Procurement-OrdSel-BilSimR-1.0 + uddi:42AD3EDE-BBD4-434d-AAE6-044CE3EF8D1F + + + urn:www.nesubl.eu:profiles:profile1:ver2.0 + uddi:FC1D4A1C-1538-4bdb-A718-2EFD712256C5 + + + urn:www.nesubl.eu:profiles:profile2:ver2.0 + uddi:3A3BFE67-AD35-43f0-9AE7-CDF268AE221D + + + urn:www.nesubl.eu:profiles:profile3:ver2.0 + uddi:F5231EDB-FBB4-4a3b-A46C-3BCF1B3C3F35 + + + + + + + urn:www.nesubl.eu:profiles:profile5:ver2.0 + uddi:aee8b6de-298f-4cbc-a96d-9ae8aed0ac31 + + + + + + + urn:www.nesubl.eu:profiles:profile7:ver2.0 + uddi:BB0B4FD4-F6AF-489f-98D9-7130424E7F8D + + + urn:www.nesubl.eu:profiles:profile8:ver2.0 + uddi:F4240370-CCA6-401e-9B5B-4531F413421D + + + Reference-Utility-1.0 + uddi:570b3009-3f9f-46d2-b533-31d0bb4a37a0 + + + Reference-UtilityR-1.0 + uddi:1bfd82e6-0eca-47df-9230-37b97c9788c6 + + + Catalogue-CatPriUpd-1.0 + uddi:a7f4c627-d459-4ef2-a132-fc6df0971db1 + + + Catalogue-CatPriUpdR-1.0 + uddi:fc5313f8-19e0-408b-85ca-87c364f2a41c + + + Procurement-OrdSim-1.0 + uddi:5f2d93a7-bdb7-4543-b667-ba71192e5c5f + + + Procurement-OrdSimR-1.0 + uddi:7fe5938c-1b3a-403c-8155-039b49a06cef + + + Procurement-TecRes-1.0 + uddi:ce80ccce-3ef9-47ea-8cf4-120913a87dc2 + + + Reference-Attachment-1.0 + uddi:10faffb1-1303-485e-924a-e8b551f31949 + + + urn:www.cenbii.eu:profile:bii04:ver2.0 + uddi:553e78e6-7de4-4926-8384-53ef82566560 + + + + + + + urn:www.cenbii.eu:profile:bii01:ver2.0 + uddi:c7cb8dd0-af00-42c6-a8b7-48204aa7b30f + + + urn:www.cenbii.eu:profile:bii30:ver2.0 + uddi:19ec7bb2-a39b-438c-a6ce-2124d6148f8f + + + urn:www.cenbii.eu:profile:bii05:ver2.0 + uddi:8dde0481-9055-41fe-94f7-5102ce3672e7 + + + urn:www.cenbii.eu:profile:bii03:ver2.0 + uddi:90043120-5eab-468c-be4a-5562d95a73a7 + + + + + urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:1d193a6a-23a2-425f-bb19-a864b2415c1a + + + + NS-urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:417c3aac-4bbb-46d6-86d1-a44f757fb326 + + + + + + + + NKS2.0 + uddi:fbc05a80-bde5-11dc-a81d-bfc65441a808 + + + NKS-PU + uddi:736eed0e-b698-4b2c-946e-7b996009c345 + + + + + + dk.gov.oiosi.security.ldap.LdapCertificateLookup + + + + + + crtdir.certifikat.dk + 389 + + + ldap.ca1.gov.dk + 389 + + 5000 + 5000 + + + + + + dk.gov.oiosi.security.revocation.ocsp.OcspLookup + + + + + 20000 + + + + dk.gov.oiosi.uddi.UddiLookupClient + + + + dk.gov.oiosi.uddi.RegistryLookupClient + + + + + + + + 30 + + http://discoverypublic.nemhandel.dk/uddi/services/inquiry + http://discoverybackup.nemhandel-backup.dk/uddi/services/inquiry + + + + + + + + + + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + onFailureRetryIntervalMinutes + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + + + + + + + + + + ./common/resources/Certificates/Live/Root/OCES_root_Prod.jks + Test1234 + prod + + + + + + + UID + + + FID + + + + + ./cfg/policy.Live.xml + ./cfg/axis2.Live.xml + repository + + + + + + false + 5000 + 5 + + + + + + diff --git a/dk.gov.oiosi.library/RaspConfiguration_Extended.Test.xml b/dk.gov.oiosi.library/RaspConfiguration_Extended.Test.xml new file mode 100644 index 0000000000000000000000000000000000000000..5a2e779bf68e1dae36544b59312e784bd57e3276 --- /dev/null +++ b/dk.gov.oiosi.library/RaspConfiguration_Extended.Test.xml @@ -0,0 +1,3968 @@ + + + + + + + dk.gov.oiosi.common.startup.SchematronPreloadStartupTask + + + + initDocumentTypeFriendlyName + Faktura + + + initDocumentTypeFriendlyName + Kreditnota + + + + + + dk.gov.oiosi.common.startup.DownloadCRLStartupTask + + + + + + + + + + downloadCrlUrl + http://crl.systemtest8.trust2408.com/systemtest8.crl + + + + downloadCrlUrl + http://crl.systemtest7.trust2408.com/systemtest7.crl + + + + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + + scheduleJobRunInterval + 30 + + + scheduleJobRunIntervalTimeUnit + SECONDS + + + + + + + + + + 5a15a880-eef8-40c0-80f2-bb65226f50c2 + Faktura v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + Invoice + + uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 + common/Resources/Schemas/OIOXML_v0.7/pieStrict.xsd + common/Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + + + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + + + + + + + common/Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 7bd520d7-6ae5-4a3c-8604-082e69414092 + Kreditnota v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + Invoice + + uddi:3bbc9cf0-3c4c-11dc-98be-6976502198bd + common/Resources/Schemas/OIOXML_v0.7/pcmStrict.xsd + common/Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or + translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + + + + + + + common/Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + + + 40c9fbee-ad39-48ed-9e04-c28cbbf8a38c + Applikationsmeddelse + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-ApplicationResponse-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_ApplicationResponse_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + + 68db0c6f-ec2c-44ad-b1c3-bdfae65ee5f0 + Katalog + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b8a5a5d0-df9f-11dc-889a-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Catalogue-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Catalogue_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + + 463984d1-4ba5-44d6-8903-565cc56dd4cb + Katalogforespørgsel + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + CatalogueRequest + + + /root:CatalogueRequest/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:0cb0ff80-dfa0-11dc-889a-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueRequest-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse + + + /root:CatalogueRequest/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueRequest_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueRequest/cbc:ProfileID + + + /root:CatalogueRequest/cbc:ID + + + + fb3034ea-eaaf-434b-8798-0433db497e66 + Opdatering af katalogelement + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + + CatalogueItemSpecificationUpdate + + + /root:CatalogueItemSpecificationUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:63eab5c0-dfa0-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueItemSpecificationUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueItemSpecificationUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueItemSpecificationUpdate/cbc:ProfileID + + + /root:CatalogueItemSpecificationUpdate/cbc:ID + + + + 02092e85-c2e4-4bb2-b22d-3eec04007a36 + Opdatering af katalogpriser + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + CataloguePricingUpdate + + + /root:CataloguePricingUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:abdb2720-dfa0-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CataloguePricingUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CataloguePricingUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CataloguePricingUpdate/cbc:ProfileID + + + /root:CataloguePricingUpdate/cbc:ID + + + + 0efa1c48-b5e3-4eb8-bc5f-3fbd78daba10 + Sletning af katalog + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + CatalogueDeletion + + + /root:CatalogueDeletion/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:40e5cbd0-dfa2-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CatalogueDeletion-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse + + + /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CatalogueDeletion_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CatalogueDeletion/cbc:ProfileID + + + /root:CatalogueDeletion/cbc:ID + + + + a25f2c30-cb5b-404d-886a-9030621f7eea + Kreditnota + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:E4EC9613-4830-4bab-AFEE-C37AB1C67AEC + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-CreditNote-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_CreditNote_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + + c0220657-c101-4d7d-9670-c9463e1559d5 + Faktura + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Invoice-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Invoice_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + 5b84d1f6-f315-4a2c-a84d-095b10cc5a2c + Ordre + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Order-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Order_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + + c4a09991-d038-4e51-bb06-2cdffe6c1b77 + Ordreannulering + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + OrderCancellation + + + /root:OrderCancellation/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:7ba80590-dfa1-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderCancellation-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderCancellationHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderCancellation_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderCancellation/cbc:ProfileID + + + /root:OrderCancellation/cbc:ID + + + + ba652e7d-e8bd-4926-8bd8-9e19a5ca23e6 + Ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + OrderResponse + + + /root:OrderResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ed6d3c40-dfa1-11dc-889b-1a827c218899 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponse-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderResponse_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponse/cbc:ProfileID + + + /root:OrderResponse/cbc:ID + + + + 0412fdc2-5f07-4e6f-a8fd-c0dc7d780dce + Ordreændring + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + OrderChange + + + /root:OrderChange/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:ea4bc88f-9479-4f9b-a354-4acabdb99336 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderChange-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderChangeHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderChange_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderChange/cbc:ProfileID + + + /root:OrderChange/cbc:ID + + + + c8577e35-7de6-49f6-926c-c061f5a7d1b6 + Simpel ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + OrderResponseSimple + + + /root:OrderResponseSimple/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:3B0B1309-B575-4d69-9C8F-4126C53CD7B0 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-OrderResponseSimple-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderResponseSimpleHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_OrderResponseSimple_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:OrderResponseSimple/cbc:ProfileID + + + /root:OrderResponseSimple/cbc:ID + + + + b552710b-e4c2-44f6-a89e-1b158375b5f3 + Rykker + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + Reminder + + + /root:Reminder/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4FBBBDEF-0A8E-4d5e-9B9D-23C8FD98E9CE + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Reminder-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/ReminderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Reminder_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Reminder/cbc:ProfileID + + + /root:Reminder/cbc:ID + + + + 76c4f0fa-e969-4360-9a04-8de3c675d4f2 + KontoUdtog + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + Statement + + + /root:Statement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:4e383840-bcfc-11dc-a81b-bfc65441a808 + common/Resources/Schemas/UBL_v2.0/maindoc/UBL-Statement-2.0.xsd + common/Resources/UI/OIOUBL/Stylesheets/StatementHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_Statement_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:Statement/cbc:ProfileID + + + /root:Statement/cbc:ID + + + + eee3da84-27b7-4b37-81b1-cfb9d2942a00 + Forsynings Specifikation + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + UtilityStatement + + + /root:UtilityStatement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + uddi:236f277d-a786-4724-a16e-26398b685a07 + common/Resources/Schemas/OIOUBL_v2.1-b/maindoc/UBL-UtilityStatement-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/UtilityStatementHTML.xsl + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonAggregateComponents-2 + + cac + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oioubl:names:specification:oioubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse + + + /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/OIOUBL/OIOUBL_UtilityStatement_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + + /root:UtilityStatement/cbc:ProfileID + + + /root:UtilityStatement/cbc:ID + + + + + + 24750a44-9a18-46f4-85ef-50f00c90068b + Katalog (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver4.0 + + + + uddi:6c917ef1-5143-4123-879a-471215dbd373 + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Catalogue-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCataloguRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCatalogueResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T19.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + + + 551e8437-f543-46cf-bd56-492a25e723fc + Applikationsmeddelse (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns058:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 + + + + uddi:e79dd402-8f60-4811-9f59-1acb0c036d05 + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-ApplicationResponse-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOLCORE-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-catalogue1a/XSLT/OPENPEPPOL-UBL-T58.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + + + 21671b33-58a2-4ab5-96bd-42f6c4f22af6 + Kreditnota (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 + + + + uddi:4db3f358-6184-4979-bbc9-5d65aee27132 + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-CreditNote-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteResponse + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/BIIRULES-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOLCORE-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-billing5a/XSLT/OPENPEPPOL-UBL-T14.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + + + c9f45e05-8cc0-44df-ab1e-111c5167b0b5 + Faktura (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 + + + + uddi:ea27f0c4-cb68-4e39-b0eb-5c96af8c1759 + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + 9e8b18e5-416e-4c41-9b9f-adadc3de6598 + Forsendelsesadvis + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + DespatchAdvice + + + /root:DespatchAdvice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns016:ver1.0:extended:urn:www.peppol.eu:bis:peppol30a:ver1.0 + + + + uddi:96dbec86-aa58-4f1e-ae03-ebb13079ce61 + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-DespatchAdvice-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceResponse + + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/BIIRULES-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOLCORE-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-despatchadvice30a/XSLT/OPENPEPPOL-UBL-T16.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:DespatchAdvice/cbc:ProfileID + + + /root:DespatchAdvice/cbc:ID + + + + + c1061668-0549-452c-b0cb-7d6428fdc5f7 + Faktura (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol4a:ver2.0 + + + + uddi:e956ca42-0be2-487a-8573-580b523c248d + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOLCORE-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-invoice4a/XSLT/OPENPEPPOL-UBL-T10.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + db2f9050-2adb-49c2-8f05-af9e440d12ca + Ordre (PEPPOL) + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + + urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol3a:ver2.0 + + + + uddi:873c25f6-23d2-4019-830e-89cc89386930 + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Order-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/BIIRULES-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOLCORE-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS2.0-order3a/XSLT/OPENPEPPOL-UBL-T01.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + + + bab5613e-6360-4e84-84a3-61838a77590c + Faktura (PEPPOL BIS Billing) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 + + + + uddi:678befa8-ae31-437a-8e52-1139162698df + common/Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + common/Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + + + + + + + common/Resources/Schematrons/PEPPOL/BIS3.0-Billing/CEN-EN16931-UBL.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + common/Resources/Schematrons/PEPPOL/BIS3.0-Billing/PEPPOL-EN16931-UBL.xsl + + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + + + + 4873431b-fa84-4579-b789-2e3162d06038 + NKS Betalings Ordre + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSPayment + + uddi:f283bd90-a247-11dc-a80b-bfc65441a808 + + + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPaymentOrderInterface/SubmitNKSPaymentOrderResponse + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + 0e765453-7422-4d90-b13f-850fc0e5b309 + NKS Kvittering 0 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt0 + + uddi:9910d270-a242-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt0.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt0Interface/SubmitNKSReceipt0Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 363237e6-dafc-4103-901a-36b499d0eeaa + NKS Kvittering 1 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSReceipt1 + + uddi:8df531b0-a242-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSReceipt1.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSReceipt1Interface/SubmitNKSReceipt1Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 688df9d0-e564-44a1-8028-617ab625a724 + NKS Retursvar 2 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse2 + + uddi:41a37720-a244-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse2.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse2Interface/SubmitNKSResponse2Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 3d2b9c5b-5790-4aee-999b-c26a1d66a887 + NKS Retursvar 5 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse5 + + uddi:65ee1590-a244-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse5.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse5Interface/SubmitNKSResponse5Response + + + //ebms:To/ebms:PartyId[1] + + + //ebms:From/ebms:PartyId[1] + + + //ebms:To/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + //ebms:From/ebms:PartyId[count(../ebms:PartyId)] + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 2cd298b8-eb8c-4f06-b7e8-6562cb54bc4e + NKS Retursvar 7 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse7 + + uddi:ec1ece70-a244-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse7.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse7Interface/SubmitNKSResponse7Response + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse7/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse7/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 6ba94fca-368d-49d0-9976-ae497c85eb37 + NKS Retursvar 8 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse8 + + uddi:0bc62390-a245-11dc-a80a-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse8.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse8Interface/SubmitNKSResponse8Response + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse8/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse8/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + 1e780d55-1779-46dc-b438-b023c5e91183 + NKS Retursvar 9 + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + NKSResponse9 + + uddi:2dd3ca50-a245-11dc-a80b-bfc65441a808 + common/Resources/NemKonto/xsd/nemkonto/xml/schemas/2006/05/01/NKS_NKSResponse9.xsd + + + + http://rep.oio.dk/oes.dk/nemkonto.swift/xml/schemas/2006/05/01/ + swift + + + http://rep.oio.dk/oes.dk/nemkonto.ebms/xml/schemas/2006/05/01/ + ebms + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2006/05/01/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSResponse9Interface/SubmitNKSResponse9Response + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Issr + + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:OrgnlMsgTp + + + /root:NKSResponse9/root:GnlInf/swift:InitgPty/swift:OrgId/swift:PrtryId/swift:Id + + + EndpointKeyType + string('EAN') + + + + + + /root:NKSResponse9/root:OrgnlGrpRefInfAndSts/swift:GrpId + + + EndpointKeyType + string('EAN') + + + + + + + + + common/Resources/NemKonto/Schematrons/NemKonto.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + + string('NKS2.0') + + + + + + + + + + 76e3b26b-28a2-4cfd-bf67-27c5ee41014d + NKS PU Request + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterRequest + + uddi:6b5fc8cb-5ec9-42bf-9a6f-1b3762f011ed + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPURequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPURequestInterface/SubmitNKSPUResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterRequest/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + 1985c136-96df-4a04-add2-ca95b9de3371 + NKS PU Response + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + NemkontoPrivatUdbetalerTransporterResponse + + uddi:34c56e2a-f920-439b-80c7-831cc4ac523b + + + + + + http://rep.oio.dk/oes.dk/nemkonto/xml/schemas/2007/10/01/ + nkspu + + + http://rep.oio.dk/ean/xml/schemas/2005/01/10/ + ean + + + http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/ + cvr + + + http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/ + cpr + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/NKSPUResponseInterface/SubmitNKSPUResponseResponse + + + + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansRecipientAddress/ean:EAN13Identifier + + + + EndpointKeyType + string('EAN') + + + + + + + /nkspu:NemkontoPrivatUdbetalerTransporterResponse/nkspu:TransporterHeader/nkspu:VansHeader/nkspu:VansSenderAddress/nkspu:VansNemkontoEnvironmentCode + + + + EndpointKeyType + string('DK:VANS') + + + + + + + + + + + + + + + + + + string('NKS-PU') + + + + + + + + + + + + + OIOXML elektronisk handel + uddi:c001daa0-8ba3-11dd-894e-770465b08940 + + + OIOXML elektronisk handel - læs ind + uddi:cac79330-8ba3-11dd-894e-770465b08940 + + + Catalogue-CatBas-1.0 + uddi:4697A391-741F-4534-A21E-8F0A460013BB + + + Catalogue-CatBasR-1.0 + uddi:03717C45-27A8-453f-833C-BD4D8AAB9675 + + + Catalogue-CatSim-1.0 + uddi:BE9F86E6-03C0-4d00-A3EE-44FC29EB3882 + + + Catalogue-CatSimR-1.0 + uddi:48277C4B-489F-498d-8246-303A9867C081 + + + Catalogue-CatExt-1.0 + uddi:1C8E9102-6711-42e8-A35A-997C56A35BFE + + + Catalogue-CatExtR-1.0 + uddi:0B864A5A-5E1E-47da-AD3B-A3932F82DA37 + + + Catalogue-CatAdv-1.0 + uddi:7B7909C1-5DE4-4630-A741-C74A9DDDC6AB + + + Catalogue-CatAdvR-1.0 + uddi:EE7F4AEA-BFDC-4886-8C5E-319596E46DA5 + + + Procurement-BilSim-1.0 + uddi:362229ac-b657-452a-b8f8-c93e62c670ff + + + Procurement-BilSimR-1.0 + uddi:98070e14-ee30-4b10-84ef-986cde3b8116 + + + Procurement-PayBas-1.0 + uddi:E5D505C0-4B52-4485-8169-4AB5343559A5 + + + Procurement-PayBasR-1.0 + uddi:FED5F809-64EC-4523-BC57-4A57D5680DA9 + + + Procurement-OrdSim-BilSim-1.0 + uddi:142C4188-3D53-440d-A64F-68D7C3B9A59B + + + Procurement-OrdSimR-BilSimR-1.0 + uddi:1e1b209e-7b8d-4f1e-8f2a-f3d9a94d1086 + + + Procurement-OrdSim-BilSimR-1.0 + uddi:7A638D35-3E08-432e-B558-74CB85889905 + + + Procurement-OrdSimR-BilSim-1.0 + uddi:EBABEE8B-A5D3-4dc9-B976-3AAFF9A4E855 + + + Procurement-OrdAdv-BilSim-1.0 + uddi:88FBD6D5-6A25-4c08-91CC-5344C73C4D69 + + + Procurement-OrdAdv-BilSimR-1.0 + uddi:76897296-08aa-4848-a933-ae068b4c604e + + + Procurement-OrdAdvR-BilSim-1.0 + uddi:1d01dd98-a302-4897-92d8-fd501447c450 + + + Procurement-OrdAdvR-BilSimR-1.0 + uddi:b23940b1-d571-4640-8830-9b7f34809fbc + + + Procurement-OrdSel-BilSim-1.0 + uddi:46D94D6B-E835-4916-BBB5-F27DC655876A + + + Procurement-OrdSel-BilSimR-1.0 + uddi:42AD3EDE-BBD4-434d-AAE6-044CE3EF8D1F + + + urn:www.nesubl.eu:profiles:profile1:ver2.0 + uddi:FC1D4A1C-1538-4bdb-A718-2EFD712256C5 + + + urn:www.nesubl.eu:profiles:profile2:ver2.0 + uddi:3A3BFE67-AD35-43f0-9AE7-CDF268AE221D + + + urn:www.nesubl.eu:profiles:profile3:ver2.0 + uddi:F5231EDB-FBB4-4a3b-A46C-3BCF1B3C3F35 + + + + + + + urn:www.nesubl.eu:profiles:profile5:ver2.0 + uddi:aee8b6de-298f-4cbc-a96d-9ae8aed0ac31 + + + + + + + urn:www.nesubl.eu:profiles:profile7:ver2.0 + uddi:BB0B4FD4-F6AF-489f-98D9-7130424E7F8D + + + urn:www.nesubl.eu:profiles:profile8:ver2.0 + uddi:F4240370-CCA6-401e-9B5B-4531F413421D + + + Reference-Utility-1.0 + uddi:570b3009-3f9f-46d2-b533-31d0bb4a37a0 + + + Reference-UtilityR-1.0 + uddi:1bfd82e6-0eca-47df-9230-37b97c9788c6 + + + Catalogue-CatPriUpd-1.0 + uddi:a7f4c627-d459-4ef2-a132-fc6df0971db1 + + + Catalogue-CatPriUpdR-1.0 + uddi:fc5313f8-19e0-408b-85ca-87c364f2a41c + + + Procurement-OrdSim-1.0 + uddi:5f2d93a7-bdb7-4543-b667-ba71192e5c5f + + + Procurement-OrdSimR-1.0 + uddi:7fe5938c-1b3a-403c-8155-039b49a06cef + + + Procurement-TecRes-1.0 + uddi:ce80ccce-3ef9-47ea-8cf4-120913a87dc2 + + + Reference-Attachment-1.0 + uddi:10faffb1-1303-485e-924a-e8b551f31949 + + + urn:www.cenbii.eu:profile:bii04:ver2.0 + uddi:553e78e6-7de4-4926-8384-53ef82566560 + + + + + + + urn:www.cenbii.eu:profile:bii01:ver2.0 + uddi:c7cb8dd0-af00-42c6-a8b7-48204aa7b30f + + + urn:www.cenbii.eu:profile:bii30:ver2.0 + uddi:19ec7bb2-a39b-438c-a6ce-2124d6148f8f + + + urn:www.cenbii.eu:profile:bii05:ver2.0 + uddi:8dde0481-9055-41fe-94f7-5102ce3672e7 + + + urn:www.cenbii.eu:profile:bii03:ver2.0 + uddi:90043120-5eab-468c-be4a-5562d95a73a7 + + + + + urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:1d193a6a-23a2-425f-bb19-a864b2415c1a + + + + NS-urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + uddi:417c3aac-4bbb-46d6-86d1-a44f757fb326 + + + + + + + + NKS2.0 + uddi:fbc05a80-bde5-11dc-a81d-bfc65441a808 + + + NKS-PU + uddi:736eed0e-b698-4b2c-946e-7b996009c345 + + + + + + dk.gov.oiosi.security.ldap.LdapCertificateLookup + + + + + crtdir.pp.certifikat.dk + 389 + + + ca1.cti-gov.dk + 389 + + 4000 + 5000 + + + + + dk.gov.oiosi.security.revocation.ocsp.OcspLookup + + + + 20000 + + + dk.gov.oiosi.uddi.UddiLookupClient + + + dk.gov.oiosi.uddi.RegistryLookupClient + + + + + + + 30 + + + + http://discoverypublic-test.nemhandel.dk/uddi/services/inquiry + + + + + + + + + + + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + onFailureRetryIntervalMinutes + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 4 + + + frequencyInMinutes + 60 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 24 + + + frequencyInHours + 1 + + + + + + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache + + dk.gov.oiosi.RaspLibrary + + + maxSize + 100 + + + + + + + + + + + + ./test/src/keys/OCES_Test.jks + Test1234 + ca + + + + + + + + + + + + + UID + + + FID + + + + + ./cfg/policy.Test.xml + ./cfg/axis2.Test.xml + ./repository + + + + + + false + 5000 + 5 + + + + + + diff --git a/dk.gov.oiosi.library/build.xml b/dk.gov.oiosi.library/build.xml index 1003dfa3034da57a9cd7cccd5232409049021eff..fc420c9f2027cdf14281ea80713a4e7d88f353f4 100644 --- a/dk.gov.oiosi.library/build.xml +++ b/dk.gov.oiosi.library/build.xml @@ -1,16 +1,22 @@ - + + - + + + + + + @@ -25,10 +31,16 @@ + + + + + @@ -53,6 +65,14 @@ + + + + + + + + @@ -65,14 +85,29 @@ + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Danish Agency for Digitisation
RASP Java
Version ${version.number}
]]> - NemHandel Support or at digitaliser.dk]]> + Nemhandel Support or at digitaliser.dk]]> @@ -244,7 +348,7 @@
- + @@ -258,7 +362,7 @@ - + @@ -268,6 +372,7 @@ + @@ -302,7 +407,7 @@ - + @@ -312,6 +417,19 @@ + + + + + + + + + + + + + diff --git a/dk.gov.oiosi.library/common b/dk.gov.oiosi.library/common index eadc55672ca15a89cbe95a246676ea654035c4e0..f76f794a0357c63e01aac9c01476037d131bb290 160000 --- a/dk.gov.oiosi.library/common +++ b/dk.gov.oiosi.library/common @@ -1 +1 @@ -Subproject commit eadc55672ca15a89cbe95a246676ea654035c4e0 +Subproject commit f76f794a0357c63e01aac9c01476037d131bb290 diff --git a/dk.gov.oiosi.library/dk.gov.oiosi.library.iml b/dk.gov.oiosi.library/dk.gov.oiosi.library.iml index da28da5aacd19103538742119d77f0360e7f55b9..5fae87b7910ac4b22ccff26f5a4e2cc643531f5a 100644 --- a/dk.gov.oiosi.library/dk.gov.oiosi.library.iml +++ b/dk.gov.oiosi.library/dk.gov.oiosi.library.iml @@ -88,6 +88,13 @@ + + + + + + @@ -96,6 +103,8 @@ + + @@ -104,4 +113,4 @@ - + \ No newline at end of file diff --git a/dk.gov.oiosi.library/doc/Git-readme.txt b/dk.gov.oiosi.library/doc/Git-readme.txt index 7ff112cfe715af3970fa2d8c5ddb99b8bbd8c836..08d5010616ba84d1ae871111e8d076efabb8be7f 100644 --- a/dk.gov.oiosi.library/doc/Git-readme.txt +++ b/dk.gov.oiosi.library/doc/Git-readme.txt @@ -2,12 +2,14 @@ Git tricks ---------- -ISSUE: +ISSUE +----- The Git project https://rep.erst.dk/git/openebusiness/common holds a set of common files, -shared between multiple NemHandel projects. +shared between multiple Nemhandel projects. In the past, this has linked to the respective projects using SVN Externals. -LINK IN GIT: +LINK IN GIT +----------- In Git this can be done by utilizing the Git submodule function: http://blog.joncairns.com/2011/10/how-to-use-git-submodules/ @@ -20,5 +22,7 @@ $ git submodule init to init the submodule(s) after first checkout. +GIT CLONE / CHECKOUT +-------------------- If you already have cloned the repository and now want to load it’s submodules you have to use submodule update. git submodule update --init diff --git a/dk.gov.oiosi.library/doc/OIORASP_Java_InstallationGuide.adoc b/dk.gov.oiosi.library/doc/OIORASP_Java_InstallationGuide.adoc new file mode 100644 index 0000000000000000000000000000000000000000..6223f1841f24b17c039d21b69c2fd39610135ebe --- /dev/null +++ b/dk.gov.oiosi.library/doc/OIORASP_Java_InstallationGuide.adoc @@ -0,0 +1,88 @@ +include::_common-settings.adoc[] + += OIORASP Java - Installation Guide +{author} +Version {versionNumber} + + +== Introduction +The OIORASP Library for Java is a Java based toolkit for implementation of OIORASP business applications. + +This distribution is version {versionNumber} + +The distribution is part of the OIORASP work for exchanging business documents in a secure and reliable way using the internet. + +The framework can be downloaded from http://digitaliser.dk/group/405442/resources and read more at https://nemhandel.dk/netvaerk-og-standarder. + +== System requirements +- JDK 8 or later +- The java runtime environment must have Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files installed to support strong encryption. + +JDKs and JCE package can be found here (installation instructions are included in the downloaded packages): +http://java.sun.com/javase/downloads/index.jsp + +- Apache Axis2: http://ws.apache.org/axis2/download/1_5_1/download.cgi + +- Apache Rampart - WS-Security implementation for Axis2: +http://ws.apache.org/rampart/download/1.4/download.cgi + +- WSO2 Commons – Mercury – WS-ReliableMessaging implementation for Axis2: +http://maven.wso2.org/nexus/content/repositories/wso2maven2/org/wso2/mercury/ + +- Apache Commons – Configuration, Lang, Collections, JxPath: +http://commons.apache.org/ + +- BouncyCastle: http://www.bouncycastle.org/ + +- JUnit: http://www.junit.org/ + +- OpenUddi: http://sourceforge.net/projects/openuddi/ + +The requirements can also be found in the code release of OIORASP. + +Recommendations for development: +- Ant 1.10.x, with JUnit: http://ant.apache.org + +- Apache Tomcat 9.0.x: http://tomcat.apache.org + + +== Installation +.Binary release + +The binary release is located at https://digitaliser.dk/group/405442/resources or https://nemhandel.dk/opdateringer-releases + +To use this binary jar file one must have all dependencies present on the classpath. The OIORASP library depends on a wide range of external libraries. These jar files can either be found in the code release zip file or downloaded manually. + +.Code release + +The code is also located in GitLab at https://rep.erst.dk/git/openebusiness/library/java/-/tree/master/dk.gov.oiosi.library + + +== Checkout from online source repository +The OIORASP library code is kept in a GIT repository on the address +https://rep.erst.dk/git/openebusiness/library/java + + +== Verifying your Setup +.Library code release + +To verify that your eclipse project has been set up properly you can run the main method located in the RaspEnvironmentCheck.java file. + +The output should look similar to, + +[source, console] +Checking OS - Check OK... +Checking Axis2 - Check OK... +Checking Mercury - Check OK... +Checking Rampart - Check OK... +Checking encryption - Check OK... +Checking for Ant - Check OK... +Checking for Bouncy-castle - Check OK... + +The first line simply tests that you are running on a tested operating system. + +The next three lines indicate whether Axis2 and Mercury can be found. +[NOTE] +Note that for these tests to pass, all .jar files that come with Axis2 1.5.1, Rampart 1.6 and Mercury 0.91 (in those exact versions) need to be present in the /lib directory. + +After that three lines check the Java environment, to make sure you have the correct version of Java installed, and with Java cryptography extensions, and that Ant is accessible from the command line prompt. diff --git a/dk.gov.oiosi.library/doc/OIORASP_Java_ReleaseNotes.adoc b/dk.gov.oiosi.library/doc/OIORASP_Java_ReleaseNotes.adoc new file mode 100644 index 0000000000000000000000000000000000000000..791c6ab91d3851859a21f51514676de346f357f8 --- /dev/null +++ b/dk.gov.oiosi.library/doc/OIORASP_Java_ReleaseNotes.adoc @@ -0,0 +1,84 @@ +include::_common-settings.adoc[] + += OIORASP Java - Release Notes +{author} +Version {versionNumber} + + +== Introduction +The OIORASP Library for Java is a Java based toolkit for implementation of OIORASP business applications. + +This distribution is version {versionNumber} + +The distribution is part of the OIOSI work for exchanging business documents in a secure and reliable way using the internet. See https://nemhandel.dk/netvaerk-og-standarder. + +The framework can be downloaded from http://digitaliser.dk/group/405442/resources or https://nemhandel.dk/opdateringer-releases + +== Release Content +This release comprises the following artifacts: + +Documentation: + +* OIORASP_Java_ReleaseNotes.pdf (this document) +* OIORASP_Java_InstallationGuide.pdf +* OIORASP_Java_Tutorials.pdf + +Samples in GIT repository: https://rep.erst.dk/git/openebusiness/library/java/-/tree/master/dk.gov.oiosi.examples.client : + +* dk.firma.klient.webservice.TestCertificate Test certificates using RASP functionality +* dk.firma.klient.webservice.OiosiRaspClient Send a test document +* dk.firma.klient.webservice.TestUddiLookup Test UDDI lookup + + +Source code and binary release (jar file). + +[#what_is_changed] +== What is changed? +In the following part of the document, some issue numbers are mentioned these numbers are internal numbers used by Nemhandel and Danish Business Authority, so please ignore these as external developer. + +include::release-notes-3.0.0.adoc[leveloffset=+1] + +include::release-notes-2.1.x.adoc[leveloffset=+1] + +// include::release-notes-1.x.x.adoc[leveloffset=+1] + + +== System Requirements +See OIORASP_Java_InstallationGuide.adoc + + +== Installation +See OIORASP_Java_InstallationGuide.adoc + +== Compatibility +This OIORASP {versionNumber} release has been tested OK with OIORASP 2.1.x for both Java and .NET when running with Foces2 certificates on both sender and receiver side. + + +== Known issues +Processing large sized documents will consume large size of RAM and CPU. The RASP library itself should no longer be the obstacle for sending and handling large files, but the hardware must be well-equipped, as well as internet connection speed between sender and receiver. + +== Licenses +Some source code is licensed under the Mozilla Public License Version 1.1. The used license is stated below. + +[source] +/* +* The contents of this file are subject to the Mozilla Public +* License Version 1.1 (the "License"); you may not use this +* file except in compliance with the License. You may obtain +* a copy of the License at http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an +* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express +* or implied. See the License for the specific language governing +* rights and limitations under the License. +* +* +* The Original Code is OIORASP Java toolkit. +* +* The Initial Developer of the Original Code is Lenio. Portions +* created by Lenio are Copyright (C) 2007 Danish National IT and +* Telecom Agency (http://www.digst.dk). All Rights Reserved. +* */ + + +Licenses for external dependencies distributed with the RASP library can be found under the /lib folder. diff --git a/dk.gov.oiosi.library/doc/OIORASP_Java_Tutorials.adoc b/dk.gov.oiosi.library/doc/OIORASP_Java_Tutorials.adoc new file mode 100644 index 0000000000000000000000000000000000000000..3b8f86de6037c8a4743f341d429952923324a4eb --- /dev/null +++ b/dk.gov.oiosi.library/doc/OIORASP_Java_Tutorials.adoc @@ -0,0 +1,126 @@ +include::_common-settings.adoc[] + += OIORASP Java - Tutorials +{author} +Version {versionNumber} + + +== Introduction +The OIORASP Library for Java is a Java based toolkit for implementation of OIORASP business applications. + +This distribution is version {versionNumber} + +The distribution is part of the OIOSI work for exchanging business documents in a secure and reliable way using the internet. + +The framework can be downloaded from http://digitaliser.dk/group/405442/resources or cloned from the open source GitLab repository: +https://rep.erst.dk/git/openebusiness/library/java + +The intended audience is developers who want to integrate the OIORASP framework into their own application. + +Before reading this document, please take the time to read the following documents: + +* OIORASP_Java_ReleaseNotes.pdf +* OIORASP_Java_InstallationGuide.pdf + +== Prerequisites +These tutorials suppose you are working with IntelliJ IDEA, Tomcat 9 or later and are running Ant from within IDEA. + +Before starting, make sure you have gone through the installation document for the OIORASP library. + +== Lesson: Create a RASP client and service +This tutorial assumes that the examples projects have been imported into IDEA. + +=== The example clients +The example client project has the following structure: +image:tutorials_1.jpg[] + +The source folder of the client examples contains two applications, the Local test client, and a full OIORASP client. + +Our local test client sends a UBL document to a service deployed locally by simply giving the RASP framework the correct address and server side certificate to use. + +The full RASP client however, fetches a test document, finds the endpoint reference within it, looks it up in the UDDI registry, downloads the server side certificate and then sends the document according to the data just found. By default, the test document has an GLN that is registered to an official Nemhandel demo server. + +The full client runs through the following steps: + +. Load a document, +. Validate the document, +. Wrap the document in a SOAP message and add the custom RASP headers, +. Make an UDDI lookup to find the service address, +. Use information from the UDDI response to download the server certificate via LDAP, +. Validate the certificate downloaded against an OCSP server, +. Sends it to a service. + +All of these steps are explained in further detail as comments within the code. + +It is strongly recommended that you read these comments before implementing your own + +RASP client application, since they describe what SOAP headers to add, and what validation to make to ensure a truly secure communication. + +=== The service example +The example service project structure is shown below: +image:tutorials_2.jpg[] + +The service example is set up as a simple web service, which validates the incoming document and replies with an empty message. + +The service can be started directly from IDEA by choosing “Run On Server”, or it can be exported as an WAR file. The WAR file can be deployed on a Tomcat server by copying it into the Tomcat home/webapps folder, and it should automatically be deployed. + +To test the service out, enter the following address into your web browser + + http://localhost:8080/dk.gov.oiosi.examples.service/ + +(assuming you have set up Tomcat to run on port 8080, and the webapp name is dk.gov.oiosi.examples.service). + +On this page one can click "List Axis services", and a presentation of the operations offered by the service will be shown: +image:tutorials_3.jpg[] + +To further test the service, run the LocalTestClient application as described above. The client should send documents to the following address: + +http://localhost:8080/dk.gov.oiosi.examples.service/services/TestService/nemhandel + +Lesson: Adapting the code for your own use + +To use Nemhandel you will need a function certificate. A guide (in Danish) for requesting one can be found here http://nemhandel.dk/vejledninger + + +=== Creating a Java key store for your Nemhandel certificates + +.MitID certificate +_To do_ + +.Function certificate +To make your own keystore, you’ll need to import the complete certificate chain, which means that for a function certificate store you will also have to import the “TRUST2408 OCES Primary CA” root certificate. You can find the root certificate here: + +https://www.nets.eu/dk-da/kundeservice/NemID-Til-Private/Pages/Repository.aspx + +When you have your own certificate, and the root, rename the root cert to have a filename ending .cer, and run the following commands: +[source, console] +keytool -importcert -keystore keyStore.jks -alias ocesca -file ocesca.cer +keytool –importcert –keystore keyStore.jks –alias func –file functional.cer + +=== Configuring the examples to run on your own key store +Start by running the following command: + +[source, console] +keytool –list –keystore keyStore.jks + +to list the certificates in your store. Your certificate has been assigned an alias (the name given in the output). Remember this alias for later use. + +The keystore used is set up in the dk.gov.oiosi.examples.service/WebContent/WEB-INF/services/TestService/META-INF/services.xml and dk.gov.oiosi.examples.client/cfg/policy.xml for the service and client respectively. + +In each of these files, find the configuration element. Rampart is the WS-Security implementation we are using, so we will tell it where to find our store by altering + + + +to our alias from above + + + + +To the path were our key store can be found + + + + + + +Whenever Rampart is in need of a private key, it will call the dk.firma.klient.webservice.PWCallback class found in both the client and the service examples. Alter the code in this class to return the password for your private key. diff --git a/dk.gov.oiosi.library/doc/_common-settings.adoc b/dk.gov.oiosi.library/doc/_common-settings.adoc new file mode 100644 index 0000000000000000000000000000000000000000..113c78861670dc3d9054415c6157ce83cfafa7f8 --- /dev/null +++ b/dk.gov.oiosi.library/doc/_common-settings.adoc @@ -0,0 +1,23 @@ +// Layout stuff: +:title-page: +:doctype: article +:toc: +:toc: left +:toclevels: 3 +:sectnums: +:sectnumlevels: 5 +:xrefstyle: full +:icons: font +:imagesdir: images +// Avoid the "Chapter" keyword in output: +:chapter-label: + + +// Variables: +:name-erst-en: Danish Business Authority +:author: {name-erst-en} + + +// Følgende linje opdateres automatisk af build-script, og variablen {versionNumber} kan benyttes over alt: +:versionNumber: 3.0.0.RC2 +:versionNumberTagged: 3.0.0.RC2.825726bc diff --git a/dk.gov.oiosi.library/doc/images/import_projects.jpg b/dk.gov.oiosi.library/doc/images/import_projects.jpg new file mode 100644 index 0000000000000000000000000000000000000000..038acf4175d0eaa9d212e9009c1c4621a1ee2495 Binary files /dev/null and b/dk.gov.oiosi.library/doc/images/import_projects.jpg differ diff --git a/dk.gov.oiosi.library/doc/images/projectexplorer_import.jpg b/dk.gov.oiosi.library/doc/images/projectexplorer_import.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ab3cdb3aa97bef657d7a228ccd1fbf6c8a85096 Binary files /dev/null and b/dk.gov.oiosi.library/doc/images/projectexplorer_import.jpg differ diff --git a/dk.gov.oiosi.library/doc/images/showview_other.jpg b/dk.gov.oiosi.library/doc/images/showview_other.jpg new file mode 100644 index 0000000000000000000000000000000000000000..860f7776eef027d14b550eb9137daec79b9fef5f Binary files /dev/null and b/dk.gov.oiosi.library/doc/images/showview_other.jpg differ diff --git a/dk.gov.oiosi.library/doc/images/tutorials_1.jpg b/dk.gov.oiosi.library/doc/images/tutorials_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68ac4ffb7ecdff408deb63acf1d318c9d04fc7f3 Binary files /dev/null and b/dk.gov.oiosi.library/doc/images/tutorials_1.jpg differ diff --git a/dk.gov.oiosi.library/doc/images/tutorials_2.jpg b/dk.gov.oiosi.library/doc/images/tutorials_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..667e674206ad051a724e34ed555ab682199c157e Binary files /dev/null and b/dk.gov.oiosi.library/doc/images/tutorials_2.jpg differ diff --git a/dk.gov.oiosi.library/doc/images/tutorials_3.jpg b/dk.gov.oiosi.library/doc/images/tutorials_3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5f6b93d24effe9254ba18be5bdd6833c9232224 Binary files /dev/null and b/dk.gov.oiosi.library/doc/images/tutorials_3.jpg differ diff --git a/dk.gov.oiosi.library/doc/links.txt b/dk.gov.oiosi.library/doc/links.txt deleted file mode 100644 index acb36e5bdf091e6929bf5ce1a20abc426d71f63c..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/doc/links.txt +++ /dev/null @@ -1,3 +0,0 @@ - -Oces(2) links: -- http://www.nets.eu/dk-da/Service/kundeservice/nemid-tu/NemID-tjenesteudbyderpakken-okt-2014/Pages/default.aspx#tab4 diff --git a/dk.gov.oiosi.library/doc/OIORASP Error Messages.txt b/dk.gov.oiosi.library/doc/old/OIORASP Error Messages.txt similarity index 98% rename from dk.gov.oiosi.library/doc/OIORASP Error Messages.txt rename to dk.gov.oiosi.library/doc/old/OIORASP Error Messages.txt index 8f5c4032b15ed7c77d2203c8d162411a943a4716..47f02d3dea2b7091bfb4233eb0d39e3771c16955 100644 --- a/dk.gov.oiosi.library/doc/OIORASP Error Messages.txt +++ b/dk.gov.oiosi.library/doc/old/OIORASP Error Messages.txt @@ -1,8 +1,8 @@ - -OIORASP Error Messages tager udgangspunkt i de SOAP Faults som er beskrevet p side 20 i dokumentet: http://www.itst.dk/it-arkitektur-og-standarder/standardisering/standarder-for-serviceorienteret-infrastruktur/standarder-for-webservices/filer-til-standarder-for-webservices/OIO%20Reliable%20Asynchronous%20Secure%20Profile%201.1.pdf - -Hver fault/error er nu tildelt et 4-cifret nummer, og identificeres som [RASP-xxxx]. - -Selve nummeret har en semantik: -- Frste ciffer identificerer som fejl skyldes afsender (1) eller modtager (2). -- Anden ciffer grupperer fejlene efter de Faults som er beskrevet p side 20. + +OIORASP Error Messages tager udgangspunkt i de SOAP Faults som er beskrevet p side 20 i dokumentet: http://www.itst.dk/it-arkitektur-og-standarder/standardisering/standarder-for-serviceorienteret-infrastruktur/standarder-for-webservices/filer-til-standarder-for-webservices/OIO%20Reliable%20Asynchronous%20Secure%20Profile%201.1.pdf + +Hver fault/error er nu tildelt et 4-cifret nummer, og identificeres som [RASP-xxxx]. + +Selve nummeret har en semantik: +- Frste ciffer identificerer som fejl skyldes afsender (1) eller modtager (2). +- Anden ciffer grupperer fejlene efter de Faults som er beskrevet p side 20. diff --git a/dk.gov.oiosi.library/doc/OIORASP Error Messages.xls b/dk.gov.oiosi.library/doc/old/OIORASP Error Messages.xls similarity index 98% rename from dk.gov.oiosi.library/doc/OIORASP Error Messages.xls rename to dk.gov.oiosi.library/doc/old/OIORASP Error Messages.xls index 870a093fd36aea965e54d963fd442909db67cc36..f15c518ef49dbf08887fb9406b7851742365189f 100644 Binary files a/dk.gov.oiosi.library/doc/OIORASP Error Messages.xls and b/dk.gov.oiosi.library/doc/old/OIORASP Error Messages.xls differ diff --git a/dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Release Notes.docx b/dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Release Notes.docx similarity index 100% rename from dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Release Notes.docx rename to dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Release Notes.docx diff --git a/dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Release Notes.pdf b/dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Release Notes.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Release Notes.pdf rename to dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Release Notes.pdf diff --git a/dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Source - Installation Guide.docx b/dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Source - Installation Guide.docx similarity index 100% rename from dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Source - Installation Guide.docx rename to dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Source - Installation Guide.docx diff --git a/dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Source - Installation Guide.pdf b/dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Source - Installation Guide.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Source - Installation Guide.pdf rename to dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Source - Installation Guide.pdf diff --git a/dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Tutorials.docx b/dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Tutorials.docx similarity index 100% rename from dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Tutorials.docx rename to dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Tutorials.docx diff --git a/dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Tutorials.pdf b/dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Tutorials.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIOSI RASP Library for Java Tutorials.pdf rename to dk.gov.oiosi.library/doc/old/OIOSI RASP Library for Java Tutorials.pdf diff --git a/dk.gov.oiosi.library/doc/RaspConfiguration-update-2.1.0.docx b/dk.gov.oiosi.library/doc/old/RaspConfiguration-update-2.1.0.docx similarity index 100% rename from dk.gov.oiosi.library/doc/RaspConfiguration-update-2.1.0.docx rename to dk.gov.oiosi.library/doc/old/RaspConfiguration-update-2.1.0.docx diff --git a/dk.gov.oiosi.library/doc/RaspConfiguration-update-2.1.0.pdf b/dk.gov.oiosi.library/doc/old/RaspConfiguration-update-2.1.0.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/RaspConfiguration-update-2.1.0.pdf rename to dk.gov.oiosi.library/doc/old/RaspConfiguration-update-2.1.0.pdf diff --git a/dk.gov.oiosi.library/doc/RaspConfiguration-update-NHR-UDDI-lookup.docx b/dk.gov.oiosi.library/doc/old/RaspConfiguration-update-NHR-UDDI-lookup.docx similarity index 100% rename from dk.gov.oiosi.library/doc/RaspConfiguration-update-NHR-UDDI-lookup.docx rename to dk.gov.oiosi.library/doc/old/RaspConfiguration-update-NHR-UDDI-lookup.docx diff --git a/dk.gov.oiosi.library/doc/readme-bin.txt b/dk.gov.oiosi.library/doc/old/readme-bin.txt similarity index 98% rename from dk.gov.oiosi.library/doc/readme-bin.txt rename to dk.gov.oiosi.library/doc/old/readme-bin.txt index 1812558eaffe579cade6d87fc2d8ea9d1a9b72e8..bb7fa67571e0db53f85a79f8c7544ad253fa31c5 100644 --- a/dk.gov.oiosi.library/doc/readme-bin.txt +++ b/dk.gov.oiosi.library/doc/old/readme-bin.txt @@ -1,23 +1,23 @@ -This packed contain the binary code for RASP 2.1.0. - - ---------------------------------------------------------------------------- -| Files ---------------------------------------------------------------------------- -| Names | Description ---------------------------------------------------------------------------- -| dk.gov.oiosi.library-x.x.x.jar | The compile binary code for RASP Java -| license.txt | The license for RASP Java -=========================================================================== - ---------------------------------------------------------------------------- -| Folders ---------------------------------------------------------------------------- -| Names | Description ---------------------------------------------------------------------------- -| ./lib | Contain external required binaries -| ./javadoc | Java documentation of Rasp Java -=========================================================================== - -Source can be downloaded from -https://svn.softwareborsen.dk/openebusiness/dk.gov.oiosi/library/java +This packed contain the binary code for RASP 2.1.0. + + +--------------------------------------------------------------------------- +| Files +--------------------------------------------------------------------------- +| Names | Description +--------------------------------------------------------------------------- +| dk.gov.oiosi.library-x.x.x.jar | The compile binary code for RASP Java +| license.txt | The license for RASP Java +=========================================================================== + +--------------------------------------------------------------------------- +| Folders +--------------------------------------------------------------------------- +| Names | Description +--------------------------------------------------------------------------- +| ./lib | Contain external required binaries +| ./javadoc | Java documentation of Rasp Java +=========================================================================== + +Source can be downloaded from +https://svn.softwareborsen.dk/openebusiness/dk.gov.oiosi/library/java diff --git a/dk.gov.oiosi.library/doc/readme-src.txt b/dk.gov.oiosi.library/doc/old/readme-src.txt similarity index 97% rename from dk.gov.oiosi.library/doc/readme-src.txt rename to dk.gov.oiosi.library/doc/old/readme-src.txt index 1bcfc0b5a9c4b6e4d36064c39bc518aa456cbc75..5977a1e89e8f0d904355b8fb4d8ca71a5a7dd4c9 100644 --- a/dk.gov.oiosi.library/doc/readme-src.txt +++ b/dk.gov.oiosi.library/doc/old/readme-src.txt @@ -1,27 +1,27 @@ -This packed contain the source code for RASP 2.0.1. - - ---------------------------------------------------------------------------- -| Files ---------------------------------------------------------------------------- -| Names | Description ---------------------------------------------------------------------------- -| .classpath | Eclipse project file -| .project | Eclipse project file -| license.txt | License file for RASP Java -=========================================================================== - ---------------------------------------------------------------------------- -| Folders ---------------------------------------------------------------------------- -| Names | Description ---------------------------------------------------------------------------- -| ./axis2 | axis2 -| ./doc | Documentation -| ./lib | External libraries -| ./resources| Resource for Rasp (Schema and schematron) -| ./src | Source code -=========================================================================== - -Source can be downloaded from -https://svn.softwareborsen.dk/openebusiness/dk.gov.oiosi/library/java +This packed contain the source code for RASP 2.0.1. + + +--------------------------------------------------------------------------- +| Files +--------------------------------------------------------------------------- +| Names | Description +--------------------------------------------------------------------------- +| .classpath | Eclipse project file +| .project | Eclipse project file +| license.txt | License file for RASP Java +=========================================================================== + +--------------------------------------------------------------------------- +| Folders +--------------------------------------------------------------------------- +| Names | Description +--------------------------------------------------------------------------- +| ./axis2 | axis2 +| ./doc | Documentation +| ./lib | External libraries +| ./resources| Resource for Rasp (Schema and schematron) +| ./src | Source code +=========================================================================== + +Source can be downloaded from +https://svn.softwareborsen.dk/openebusiness/dk.gov.oiosi/library/java diff --git a/dk.gov.oiosi.library/doc/release-notes-1.3.0_CacheConfiguration.txt b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_CacheConfiguration.txt similarity index 98% rename from dk.gov.oiosi.library/doc/release-notes-1.3.0_CacheConfiguration.txt rename to dk.gov.oiosi.library/doc/old/release-notes-1.3.0_CacheConfiguration.txt index 3c060d73d2c33bb08065a05b5081dfa9585c2961..fecb18d4793e0f30fa8b0d4d2b2a336248d176fc 100644 --- a/dk.gov.oiosi.library/doc/release-notes-1.3.0_CacheConfiguration.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_CacheConfiguration.txt @@ -1,91 +1,91 @@ -Issue 917: Possibility to configure caches (new functionality) - -By default, after updating OIORASP library, cache configuration is changed. See "OIOSI RASP Library for Java Cache Overview 1.3.0.xlsx" for details. - -How to change cache configuration: - -1. Add new block into RaspConfiguration.xml like: - - - - dk.gov.oiosi.common.cache.TimedCache - dk.gov.oiosi.RaspLibrary - - - validityTimeInHours - 1 - - - frequencyInMinutes - 10 - - - - - -or extend existing StartupConfig configuration with new entry StartupTask. - -2. Possible nested tags inside this section are: CertificateCache, OcspLookupCache, UddiServiceCache, UddiTModelCache, SchematronCache, CrlLookupCache. -These tags should have sub-tags: - -ImplementationNamespaceClass - class name of the cache to use -ImplementationAssembly - not used in OIORASP java, optional -CacheConfigurationCollection - list of configuration parameters, which depend on cache implementation class. - - -Detailed description: - -In OIORASP 1.3.0 there are 4 configurable cache implementations: - -1) dk.gov.oiosi.common.cache.TimedCache - contains unlimited number of cached values, which are removed from cache with some expiration time. -Parameters: -validityTimeInHours or validityTimeInMinutes - integer with number of hours or minutes during which cache entry is considered as not expired -frequencyInHours or frequencyInMinutes - integer with number of hours or minutes to check expiration state of cached values. -Default values: -1 hour validity period and 10 minutes expiration check. -By default this cache is used for certificates, OCSP revocation and UDDI requests caching. - -2) dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache - limited number of cached values, no expiration, least frequently used values are removed from cache if it is overloaded. -Parameters: -maxSize - integer with maximum number of cached entries. - -3) dk.gov.oiosi.common.cache.LeastRecentlyUsedQuantityCache - similar to LeastFrequentlyUsedQuantityCache, limited number of cached values, no expiration, but least recently used values are removed from cache if it is overloaded. -Parameters: -maxSize - integer with maximum number of cached entries. - -4) dk.gov.oiosi.common.cache.ZeroCache - cache nothing, no parameters. - -Be aware, that CrlLookupCache is also configurable by additional parameter, which is not related to cache itself. - -It is parameter onFailureRetryIntervalMinutes, which defines, how often the system will try to reload CRL data in case if it failed to do it. -This parameter is used in case if during system startup there are network problems on host computer or at CRL server, so the system cannot load information about revoked certificates from given CRL source. -In case if it is first time the system tries to get it, all certificates will be considered as revoked. Attempts to get this list will be done with configured interval by parameter onFailureRetryIntervalMinutes. -If there are already some cached results for given CRL, the system will use these data, but will continue attempts to update them with configured interval by parameter onFailureRetryIntervalMinutes. -By default, this parameter has value 1 - so each 1 minute the system will try to update CRL data. - -In normal situation, next update date of CRL cached data is retrieved from actual CRL server response. -A scheduled job is created to run this update process in background - dk.gov.oiosi.security.revocation.crl.CrlCacheUpdateJob. - -To see details of CRL update, you can enable logging for CRLInstance class via log4j.xml (see examples in dk.gov.oiosi.library/test/src or dk.gov.oiosi.examples.service): - - - - - - - - - - - -In case of any problems with getting response from CRL server, log messages with level ERROR. +Issue 917: Possibility to configure caches (new functionality) + +By default, after updating OIORASP library, cache configuration is changed. See "OIOSI RASP Library for Java Cache Overview 1.3.0.xlsx" for details. + +How to change cache configuration: + +1. Add new block into RaspConfiguration.xml like: + + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 1 + + + frequencyInMinutes + 10 + + + + + +or extend existing StartupConfig configuration with new entry StartupTask. + +2. Possible nested tags inside this section are: CertificateCache, OcspLookupCache, UddiServiceCache, UddiTModelCache, SchematronCache, CrlLookupCache. +These tags should have sub-tags: + +ImplementationNamespaceClass - class name of the cache to use +ImplementationAssembly - not used in OIORASP java, optional +CacheConfigurationCollection - list of configuration parameters, which depend on cache implementation class. + + +Detailed description: + +In OIORASP 1.3.0 there are 4 configurable cache implementations: + +1) dk.gov.oiosi.common.cache.TimedCache - contains unlimited number of cached values, which are removed from cache with some expiration time. +Parameters: +validityTimeInHours or validityTimeInMinutes - integer with number of hours or minutes during which cache entry is considered as not expired +frequencyInHours or frequencyInMinutes - integer with number of hours or minutes to check expiration state of cached values. +Default values: +1 hour validity period and 10 minutes expiration check. +By default this cache is used for certificates, OCSP revocation and UDDI requests caching. + +2) dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache - limited number of cached values, no expiration, least frequently used values are removed from cache if it is overloaded. +Parameters: +maxSize - integer with maximum number of cached entries. + +3) dk.gov.oiosi.common.cache.LeastRecentlyUsedQuantityCache - similar to LeastFrequentlyUsedQuantityCache, limited number of cached values, no expiration, but least recently used values are removed from cache if it is overloaded. +Parameters: +maxSize - integer with maximum number of cached entries. + +4) dk.gov.oiosi.common.cache.ZeroCache - cache nothing, no parameters. + +Be aware, that CrlLookupCache is also configurable by additional parameter, which is not related to cache itself. + +It is parameter onFailureRetryIntervalMinutes, which defines, how often the system will try to reload CRL data in case if it failed to do it. +This parameter is used in case if during system startup there are network problems on host computer or at CRL server, so the system cannot load information about revoked certificates from given CRL source. +In case if it is first time the system tries to get it, all certificates will be considered as revoked. Attempts to get this list will be done with configured interval by parameter onFailureRetryIntervalMinutes. +If there are already some cached results for given CRL, the system will use these data, but will continue attempts to update them with configured interval by parameter onFailureRetryIntervalMinutes. +By default, this parameter has value 1 - so each 1 minute the system will try to update CRL data. + +In normal situation, next update date of CRL cached data is retrieved from actual CRL server response. +A scheduled job is created to run this update process in background - dk.gov.oiosi.security.revocation.crl.CrlCacheUpdateJob. + +To see details of CRL update, you can enable logging for CRLInstance class via log4j.xml (see examples in dk.gov.oiosi.library/test/src or dk.gov.oiosi.examples.service): + + + + + + + + + + + +In case of any problems with getting response from CRL server, log messages with level ERROR. diff --git a/dk.gov.oiosi.library/doc/release-notes-1.3.0_CrlCachePreloading.txt b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_CrlCachePreloading.txt similarity index 92% rename from dk.gov.oiosi.library/doc/release-notes-1.3.0_CrlCachePreloading.txt rename to dk.gov.oiosi.library/doc/old/release-notes-1.3.0_CrlCachePreloading.txt index 90eb1ee759d89a4c9927a4c67c86815bac041c6a..a3a8e63da93cf8cfb1a5b05efb4ec61131e867f7 100644 --- a/dk.gov.oiosi.library/doc/release-notes-1.3.0_CrlCachePreloading.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_CrlCachePreloading.txt @@ -1,130 +1,130 @@ -Issue 919: Initialize CRL revocation cache during startup (new functionality) - -Important: - -The new startup task DownloadCRLStartupTask is recommended to use only in case if CrlLookup is configured in "RevocationLookupFactoryConfig" section of RaspConfiguration. -If OcspLookup is used instead, it has no sense to load CRL list at all, because in this case OIORASP checks certificates revocation by making a call to OCSP server for each certificate separately. -For CRL-revocation style it is done once per some period of time, and OIORASP gets the list of ALL EVER revoked but not yet expired certificates by publisher, which owns this CRL. -E.g. http://crl.oces.certifikat.dk/oces.crl now provides 189215 certificates (earliest from 2008), which requires 50 MB of memory for java application to store it. - -OCSP is good for very moderate sending/receiving, when not that many documents/certificates are processed. -+ lower memory requirements -+ potentially a little better security - if certificate is revoked, OIORASP will cache it maximum 1 hour and make a new call if such certificate is found in response from other party, so it will not wait until next CRL revocation update time (usually circa 12 hours) -+ much faster to validate one certificate -- slower in case of high load (because at least now ALL certificates for NemHandel use the same CRL URL, so OIORASP has to check each certificate separately instead of CRL way - get everything once) - -CRL is recommended for usage in case of many different certificates and high load for sending/receiving process. -+ CRL list is cached for a long time, depending on what CRL server asked to wait, so actually it depends on a CRL server in this instead of OIORASP own configuration -+ much faster for many different certificates to process -- slow loading of CRL list (5-15 seconds) -- much bigger memory consumption - -How to start: - -1. Add new block into RaspConfiguration.xml like: - - - - - dk.gov.oiosi.common.startup.DownloadCRLStartupTask - - - downloadCrlUrl - http://crl.oces.certifikat.dk/oces.crl - - - - - - -or extend existing StartupConfig configuration with new entry StartupTask. - -This startup task has only one configuration option - downloadCrlUrl, which can be used several times. It defines HTTP URL to CRL source to make call for getting list of revoked certificates during system startup to speed up first document processing. - -2. Add call of the method - -ConfigurationHandler.getInstance().executeStartupTasks(); - -which will walk through defined startup tasks and execute them. - -3. How to get the list of used CRL URLs. - -OIORASP 1.3.0 was extended with a new functionality - possibility to see cache states. The name of related cache is CrlLookupCache. - -Log record for it looks like this: - CrlLookupCache - toString(): name=CrlLookupCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=5, curSize=2, list(first 10)=[{http://crl.oces.certifikat.dk/oces.crl=used=650, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@1de582aa}, {http://crl.oces.certifikat.dk/oces.crl=used=634, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@37b66948}], maxEqual=1 - Statistics: tryGet(match/miss)=650/4 remove/set/add=0/0/2 checkExpired(total/removedCount)=2/0 - -In the line which starts with toString() you can see contents of CrlLookupCache with first 10 cached values, e.g. in this example it is http://crl.oces.certifikat.dk/oces.crl which was taken from cache 650 times. - -Usual OCSP certificates are using next CRL url: - - http://crl.oces.certifikat.dk/oces.crl - -so it is recommended to specify it. - -DanID is starting the new types of certificates, called OCES2, which suppose to have different CRL URLs (this - -Detailed description - -CRL revocation data loading is quite slow process, so it influences performance of sending/receiving first document via NemHandel. -In case of server side of NemHandel, it is important to generate server response for received document as soon as possible, because sender side resend the same document after some timeout, defined in its Reliable Messaging configuration. -That is why it is recommended to initialize as much as possible of required resources before server starts to accept requests. - -Some details - -- CRL cache loading is done via scheduled job, which starts immediately when startup task is started. If it fails to download CRL list, it will retry to do it each 1 minute until success (it can be changed by reconfiguring CrlLookup). -It means, that CRL cache loading does not prevent system to start, because loading is done in a separate thread. - -- If RaspConfiguration contains both "RevocationLookupFactoryConfig" set to "dk.gov.oiosi.security.revocation.ocsp.OcspLookup" instead of "dk.gov.oiosi.security.revocation.crl.CrlLookup" or "dk.gov.oiosi.security.revocation.crl.SimpleCrlLookup", but startup task DownloadCRLStartupTask is anyway configured, it shows warning message: - -DownloadCRLStartupTask: startup task to pre-load CRL data is configured, but RevocationLookup implementation does not use CRL as revocation source. Please either change implementation or remove this startup task as it has no sense. Task is skipped. - -and skips to work. - -- In order to see what happens during initialization, you can enable logging of startup tasks via log4j.xml: - - - - - -- In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: - - - - - -- It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. - -- See release notes for 920 regarding another startup task - dk.gov.oiosi.common.startup.SchematronPreloadStartupTask, which initializes schematron validation. - -- If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. - -- See example of startup tasks invocation at dk.gov.oiosi.examples.service. - -- Be aware, that in order to avoid multiple threads collisions during CRL data reloading, at some moment in system memory there can be 2 CrlInstance objects - one with cached result, another with just loaded. - -So minimal memory requirements for CRL are increased by 2, at least 100 MB memory should be available for this. - -Object Bytes Megabytes -Other expensive objects -CrlInstance 49.646.464 47,35 - -Please check that your server/client have at least 256MB of memory for usage (for HotSpot Java it is parameter -Xmx256m), but it is recommended to have at least 512m. - -- Be aware, that in case if you do not validate certificates by revocation server, there is no reason to start this task. - -- OIORASP 1.3.0 contains 2 implementations for CrlLookup - "dk.gov.oiosi.security.revocation.crl.CrlLookup" and "dk.gov.oiosi.security.revocation.crl.SimpleCrlLookup". -The last one does not support OCES2 certificates (which are going to be used in production by DanID in 2012). -If you have problems with CrlLookup, you can try to switch to SimpleCrlLookup, which has simplified implementation. - -- Example of status logging for http://crl.oces.certifikat.dk/oces.crl URL: - -CrlInstance: it took 8453 ms to lookup into http://crl.oces.certifikat.dk/oces.crl -CrlInstance: CRL next update date: Wed Apr 25 20:38:04 CEST 2012 -CrlInstance: CRL this update date: Wed Apr 25 08:38:04 CEST 2012 -CrlInstance: Local last update date: Wed Apr 25 08:42:34 CEST 2012 -CrlInstance: Revoked certificates size: 189215 -CrlInstance: Revoked records count by year: {2009=28152, 2010=49486, 2012=29728, 2011=78739, 2008=3110} -CrlInstance: Latest revocation date: Wed Apr 25 08:37:43 CEST 2012 +Issue 919: Initialize CRL revocation cache during startup (new functionality) + +Important: + +The new startup task DownloadCRLStartupTask is recommended to use only in case if CrlLookup is configured in "RevocationLookupFactoryConfig" section of RaspConfiguration. +If OcspLookup is used instead, it has no sense to load CRL list at all, because in this case OIORASP checks certificates revocation by making a call to OCSP server for each certificate separately. +For CRL-revocation style it is done once per some period of time, and OIORASP gets the list of ALL EVER revoked but not yet expired certificates by publisher, which owns this CRL. +E.g. http://crl.oces.certifikat.dk/oces.crl now provides 189215 certificates (earliest from 2008), which requires 50 MB of memory for java application to store it. + +OCSP is good for very moderate sending/receiving, when not that many documents/certificates are processed. ++ lower memory requirements ++ potentially a little better security - if certificate is revoked, OIORASP will cache it maximum 1 hour and make a new call if such certificate is found in response from other party, so it will not wait until next CRL revocation update time (usually circa 12 hours) ++ much faster to validate one certificate +- slower in case of high load (because at least now ALL certificates for Nemhandel use the same CRL URL, so OIORASP has to check each certificate separately instead of CRL way - get everything once) + +CRL is recommended for usage in case of many different certificates and high load for sending/receiving process. ++ CRL list is cached for a long time, depending on what CRL server asked to wait, so actually it depends on a CRL server in this instead of OIORASP own configuration ++ much faster for many different certificates to process +- slow loading of CRL list (5-15 seconds) +- much bigger memory consumption + +How to start: + +1. Add new block into RaspConfiguration.xml like: + + + + + dk.gov.oiosi.common.startup.DownloadCRLStartupTask + + + downloadCrlUrl + http://crl.oces.certifikat.dk/oces.crl + + + + + + +or extend existing StartupConfig configuration with new entry StartupTask. + +This startup task has only one configuration option - downloadCrlUrl, which can be used several times. It defines HTTP URL to CRL source to make call for getting list of revoked certificates during system startup to speed up first document processing. + +2. Add call of the method + +ConfigurationHandler.getInstance().executeStartupTasks(); + +which will walk through defined startup tasks and execute them. + +3. How to get the list of used CRL URLs. + +OIORASP 1.3.0 was extended with a new functionality - possibility to see cache states. The name of related cache is CrlLookupCache. + +Log record for it looks like this: + CrlLookupCache + toString(): name=CrlLookupCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=5, curSize=2, list(first 10)=[{http://crl.oces.certifikat.dk/oces.crl=used=650, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@1de582aa}, {http://crl.oces.certifikat.dk/oces.crl=used=634, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@37b66948}], maxEqual=1 + Statistics: tryGet(match/miss)=650/4 remove/set/add=0/0/2 checkExpired(total/removedCount)=2/0 + +In the line which starts with toString() you can see contents of CrlLookupCache with first 10 cached values, e.g. in this example it is http://crl.oces.certifikat.dk/oces.crl which was taken from cache 650 times. + +Usual OCSP certificates are using next CRL url: + + http://crl.oces.certifikat.dk/oces.crl + +so it is recommended to specify it. + +DanID is starting the new types of certificates, called OCES2, which suppose to have different CRL URLs (this + +Detailed description + +CRL revocation data loading is quite slow process, so it influences performance of sending/receiving first document via Nemhandel. +In case of server side of Nemhandel, it is important to generate server response for received document as soon as possible, because sender side resend the same document after some timeout, defined in its Reliable Messaging configuration. +That is why it is recommended to initialize as much as possible of required resources before server starts to accept requests. + +Some details + +- CRL cache loading is done via scheduled job, which starts immediately when startup task is started. If it fails to download CRL list, it will retry to do it each 1 minute until success (it can be changed by reconfiguring CrlLookup). +It means, that CRL cache loading does not prevent system to start, because loading is done in a separate thread. + +- If RaspConfiguration contains both "RevocationLookupFactoryConfig" set to "dk.gov.oiosi.security.revocation.ocsp.OcspLookup" instead of "dk.gov.oiosi.security.revocation.crl.CrlLookup" or "dk.gov.oiosi.security.revocation.crl.SimpleCrlLookup", but startup task DownloadCRLStartupTask is anyway configured, it shows warning message: + +DownloadCRLStartupTask: startup task to pre-load CRL data is configured, but RevocationLookup implementation does not use CRL as revocation source. Please either change implementation or remove this startup task as it has no sense. Task is skipped. + +and skips to work. + +- In order to see what happens during initialization, you can enable logging of startup tasks via log4j.xml: + + + + + +- In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: + + + + + +- It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. + +- See release notes for 920 regarding another startup task - dk.gov.oiosi.common.startup.SchematronPreloadStartupTask, which initializes schematron validation. + +- If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. + +- See example of startup tasks invocation at dk.gov.oiosi.examples.service. + +- Be aware, that in order to avoid multiple threads collisions during CRL data reloading, at some moment in system memory there can be 2 CrlInstance objects - one with cached result, another with just loaded. + +So minimal memory requirements for CRL are increased by 2, at least 100 MB memory should be available for this. + +Object Bytes Megabytes +Other expensive objects +CrlInstance 49.646.464 47,35 + +Please check that your server/client have at least 256MB of memory for usage (for HotSpot Java it is parameter -Xmx256m), but it is recommended to have at least 512m. + +- Be aware, that in case if you do not validate certificates by revocation server, there is no reason to start this task. + +- OIORASP 1.3.0 contains 2 implementations for CrlLookup - "dk.gov.oiosi.security.revocation.crl.CrlLookup" and "dk.gov.oiosi.security.revocation.crl.SimpleCrlLookup". +The last one does not support OCES2 certificates (which are going to be used in production by DanID in 2012). +If you have problems with CrlLookup, you can try to switch to SimpleCrlLookup, which has simplified implementation. + +- Example of status logging for http://crl.oces.certifikat.dk/oces.crl URL: + +CrlInstance: it took 8453 ms to lookup into http://crl.oces.certifikat.dk/oces.crl +CrlInstance: CRL next update date: Wed Apr 25 20:38:04 CEST 2012 +CrlInstance: CRL this update date: Wed Apr 25 08:38:04 CEST 2012 +CrlInstance: Local last update date: Wed Apr 25 08:42:34 CEST 2012 +CrlInstance: Revoked certificates size: 189215 +CrlInstance: Revoked records count by year: {2009=28152, 2010=49486, 2012=29728, 2011=78739, 2008=3110} +CrlInstance: Latest revocation date: Wed Apr 25 08:37:43 CEST 2012 diff --git a/dk.gov.oiosi.library/doc/release-notes-1.3.0_HowToUpgrade.txt b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_HowToUpgrade.txt similarity index 97% rename from dk.gov.oiosi.library/doc/release-notes-1.3.0_HowToUpgrade.txt rename to dk.gov.oiosi.library/doc/old/release-notes-1.3.0_HowToUpgrade.txt index 20d2a45ec0b21df25ee6502296f313e42045916b..80811618cdb542ceda2c0ef69bd667f64e0fb40c 100644 --- a/dk.gov.oiosi.library/doc/release-notes-1.3.0_HowToUpgrade.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_HowToUpgrade.txt @@ -1,28 +1,28 @@ -How to upgrade project from Java 1.2.3 to version 1.3.0 - -This file should be seen as a guide for migrating own code to OIORASP library 1.3.0 -The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! - -Steps ------ - -1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 - -2. Replace your old JAR file with the new (dk.gov.oiosi.library-1.3.0.xxxx.jar) - -3. Remove "scripting-1.5.mar" and update "modules.list" according to release-notes-1.3.0_Removed_Axis2_Module.txt - -4. Remove bcprov-jdk16-141.jar and replace with/add bcprov-jdk15on-147.jar + bcpkix-jdk15on-147.jar - -5. Remove ocsp-client.jar from lib. - -6. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files). - -7. It is recommended to setup log4j in your Java project. RASP library now log details about configuration, cache sizes, etc. - Check the log file for WARN/ERROR messages after system startup. - - -That should be it..! - -It you meet problems, that should be included in this guide, please post your comments to the following email address: - support@nemhandel.dk +How to upgrade project from Java 1.2.3 to version 1.3.0 + +This file should be seen as a guide for migrating own code to OIORASP library 1.3.0 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps +----- + +1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 + +2. Replace your old JAR file with the new (dk.gov.oiosi.library-1.3.0.xxxx.jar) + +3. Remove "scripting-1.5.mar" and update "modules.list" according to release-notes-1.3.0_Removed_Axis2_Module.txt + +4. Remove bcprov-jdk16-141.jar and replace with/add bcprov-jdk15on-147.jar + bcpkix-jdk15on-147.jar + +5. Remove ocsp-client.jar from lib. + +6. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files). + +7. It is recommended to setup log4j in your Java project. RASP library now log details about configuration, cache sizes, etc. + Check the log file for WARN/ERROR messages after system startup. + + +That should be it..! + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk diff --git a/dk.gov.oiosi.library/doc/release-notes-1.3.0_MonitorCacheStates.txt b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_MonitorCacheStates.txt similarity index 99% rename from dk.gov.oiosi.library/doc/release-notes-1.3.0_MonitorCacheStates.txt rename to dk.gov.oiosi.library/doc/old/release-notes-1.3.0_MonitorCacheStates.txt index d73f56b2e51868ae7f93d8744d70983b3f8354e9..0a51410b322ed0cd1e5afa3ea83c492637625667 100644 --- a/dk.gov.oiosi.library/doc/release-notes-1.3.0_MonitorCacheStates.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_MonitorCacheStates.txt @@ -1,95 +1,95 @@ -Issue 993: Monitor cache states (new functionality) - -How to start: - -1. Add new block into RaspConfiguration.xml like: - - - - - dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask - - - - -2. Add call of the method - -ConfigurationHandler.getInstance().executeStartupTasks(); - -which will walk through defined startup tasks and execute them. - - -Detailed description - -In OIORASP java 1.3.0 a new functionality is implemented - configurable caches. But in order to be able to find the optimal cache configuration, it is imported to be able to see current status of cache usage and its side. -For this purpose a new scheduled job is created - dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob, which dumps statistics of cache usage to logger, configured to this class, with info level. -This scheduled job is not started by default, to request the system to start it, you need to specify new startup task - dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask. - -This task has 2 configuration parameters: - -scheduleJobRunInterval - integer, period of time, with which scheduled task should be executed, -scheduleJobRunIntervalTimeUnit - time unit, in which scheduleJobRunInterval is defined. Possible values: HOURS, MINUTES, SECONDS, MILLISECONDS (actually, any value from enumeration java.util.concurrent.TimeUnit can be used) - -By default it is set to 1 hour (1 HOURS). - -Example of custom period of cache states logging: - - - dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask - - - scheduleJobRunInterval - 30 - - - scheduleJobRunIntervalTimeUnit - SECONDS - - - - -Startup task will not schedule the job, if log level for dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob is not set to INFO, warning message will be logged: - - Startup task StartCacheStateLogScheduledJobStartupTask is configured, but logging level for category dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob is not set to 'info', so the task is skipped. - -- In order to set logging level for this logger, you can do it via log4j.xml: - - - - - -- In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: - - - - - -- It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. - -- See release notes for 919 regarding another startup task - dk.gov.oiosi.common.startup.DownloadCRLStartupTask, which initializes certificates revocation cache. - -- If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. - -- See example of startup tasks invocation at dk.gov.oiosi.examples.service. - -- Example of logging of data: - -2012-04-07 14:53:56,865 Caches state: - CertificateCache - toString(): name=CertificateCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=10, list(first 10)=[{OID.2.5.4.5=CVR:31937175-FID:1291907324861 + CN=hedeboe test (funktionscertifikat), O=HEDEBOE HOLDING ApS // CVR:31937175, C=DK=[timeOut=Sun Apr 08 10:59:03 EEST 2012, value=[ [ Versio...(5129 more)}, {OID.2.5.4.5=CVR:33265735-FID:1293812813127 + CN=TL Nemhandel (funktionscertifikat), O=TRUELINK NEMHANDEL ApS // CVR:33265735, C=DK=[timeOut=Sun Apr 08 10:59:24 EEST 2012, value=[ [ Ver...(5135 more)}, {OID.2.5.4.5=CVR:29190909-FID:1201276360859 + CN=RSD NemHandel (funktionscertifikat), O=Region Syddanmark // CVR:29190909, C=DK=[timeOut=Sun Apr 08 11:13:14 EEST 2012, value=[ [ Version...(5127 more)}, {OID.2.5.4.5=CVR:26911745-FID:1200662306791 + CN=KMD OIOSI Gateway 2 (funktionscertifikat), O=KMD A/S // CVR:26911745, C=DK=[timeOut=Sun Apr 08 11:13:17 EEST 2012, value=[ [ Version: V3...(5217 more)}, {CN=FO NemHandel Produktion (funktionscertifikat), OID.2.5.4.5=CVR:26911745-FID:1300089978680, O=KMD A/S // CVR:26911745, C=DK=[timeOut=Sun Apr 08 11:13:19 EEST 2012, value=[ [ Version:...(5126 more)}, {CN=OIOUBL (funktionscertifikat) + OID.2.5.4.5=CVR:16316296-FID:1300804878484 + CN=OIOUBL, O=OLYMPUS DANMARK A/S // CVR:16316296, C=DK=[timeOut=Sun Apr 08 11:13:27 EEST 2012, value=[ [ ...(5133 more)}, {CN=PGT (funktionscertifikat) + OID.2.5.4.5=CVR:10352282-FID:1252481142679, O=MACH ApS // CVR:10352282, C=DK=[timeOut=Sun Apr 08 11:13:28 EEST 2012, value=[ [ Version: V3 Subject: CN=...(5093 more)}, {OID.2.5.4.5=CVR:65305216-FID:1301996347276 + CN=UDDI Nemhandel Prod (funktionscertifikat), O=IBM DANMARK A/S // CVR:65305216, C=DK=[timeOut=Sun Apr 08 11:13:38 EEST 2012, value=[ [ Ver...(5139 more)}, {OID.2.5.4.5=CVR:15231599-FID:1299510243552 + CN=CSC Nemhandel (funktionscertifikat), O=CSC DANMARK A/S // CVR:15231599, C=DK=[timeOut=Sun Apr 08 11:13:41 EEST 2012, value=[ [ Version: ...(5123 more)}, {OID.2.5.4.5=CVR:27135781-FID:1262859991996 + CN=DIGITAXI NemHandel 20100107 (funktionscertifikat), O=DIGITAL CAB ApS // CVR:27135781, C=DK=[timeOut=Sun Apr 08 11:13:42 EEST 2012, value=[...(5150 more)}] - Statistics: tryGet(match/miss)=11/10 remove/set/add=10/10/10 checkExpired(total/removedCount)=3/0 - CrlLookupCache - toString(): name=CrlLookupCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=5, curSize=2, list(first 10)=[{http://crl.oces.certifikat.dk/oces.crl=used=650, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@1de582aa}, {http://crl.oces.certifikat.dk/oces.crl=used=634, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@37b66948}], maxEqual=1 - Statistics: tryGet(match/miss)=650/4 remove/set/add=0/0/2 checkExpired(total/removedCount)=2/0 - OcspLookupCache - toString(): name=OcspLookupCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=1 HOURS, curSize=0 - Statistics: checkExpired(total/removedCount)=23/0 - SchematronStoreCache - toString(): name=SchematronCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=20, curSize=3, list(first 10)=[{resources/schematronstylesheets/OIOUBL v2.0/OIOUBL_Invoice_Schematron.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@46e5763b}, {resources/schematronstylesheets/OIOUBL v2.0/OIOUBL_CreditNote_Schematron.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@2b53fda}, {resources/schematronstylesheets/OIOXML v0.7/ublinvoice.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@49730299}], maxEqual=1 - Statistics: tryGet(match/miss)=0/3 remove/set/add=0/0/3 checkExpired(total/removedCount)=3/0 - UddiServiceCache - toString(): name=UddiServiceCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=21, list(first 10)=[{http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001968502: null=[timeOut=Sun Apr 08 10:59:03 EEST 2012, value=[uddi:nemhandel.dk:daf7129a-ef5a-48e8-81d0-08a25b50400...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001968519: null=[timeOut=Sun Apr 08 10:59:24 EEST 2012, value=[uddi:nemhandel.dk:194696ec-27fa-4c47-9726-9aab8138de2...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798002569599: null=[timeOut=Sun Apr 08 11:13:14 EEST 2012, value=[uddi:ee9ee240-7eb3-11df-b943-4e5ea0b0b83c, uddi:ef0b5...(405 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798009780447: null=[timeOut=Sun Apr 08 11:13:17 EEST 2012, value=[uddi:nemhandel.dk:78345bec-fadb-4f8a-8895-0bcec439946...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798005439899: null=[timeOut=Sun Apr 08 11:13:19 EEST 2012, value=[uddi:nemhandel.dk:e44e6273-17fa-4fd3-af68-16e9def14df...(470 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 33265735: null=[timeOut=Sun Apr 08 11:13:22 EEST 2012, value=[uddi:nemhandel.dk:25a6389f-4876-476d-b5ad-d431439098ac, ud...(521 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 31937175: null=[timeOut=Sun Apr 08 11:13:24 EEST 2012, value=[uddi:nemhandel.dk:64186867-faca-4859-abb9-fa0824c8c6cb, ud...(521 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 27988954: null=[timeOut=Sun Apr 08 11:13:25 EEST 2012, value=[uddi:nemhandel.dk:5d7a7c58-d7a4-441b-ac6f-1529b2d4092c, ud...(241 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001266264: null=[timeOut=Sun Apr 08 11:13:27 EEST 2012, value=[uddi:nemhandel.dk:2ec52e8a-aa0d-413b-9a1c-e59044f0ae7...(358 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790000705719: null=[timeOut=Sun Apr 08 11:13:28 EEST 2012, value=[uddi:nemhandel.dk:ff6c0c1f-0fa0-488c-b13c-c8b0268c8eb5]]}] - Statistics: tryGet(match/miss)=2/27 remove/set/add=21/21/21 checkExpired(total/removedCount)=3/0 - UddiTModelCache - toString(): name=UddiTModelCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=0 - Statistics: checkExpired(total/removedCount)=3/0 +Issue 993: Monitor cache states (new functionality) + +How to start: + +1. Add new block into RaspConfiguration.xml like: + + + + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + + +2. Add call of the method + +ConfigurationHandler.getInstance().executeStartupTasks(); + +which will walk through defined startup tasks and execute them. + + +Detailed description + +In OIORASP java 1.3.0 a new functionality is implemented - configurable caches. But in order to be able to find the optimal cache configuration, it is imported to be able to see current status of cache usage and its side. +For this purpose a new scheduled job is created - dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob, which dumps statistics of cache usage to logger, configured to this class, with info level. +This scheduled job is not started by default, to request the system to start it, you need to specify new startup task - dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask. + +This task has 2 configuration parameters: + +scheduleJobRunInterval - integer, period of time, with which scheduled task should be executed, +scheduleJobRunIntervalTimeUnit - time unit, in which scheduleJobRunInterval is defined. Possible values: HOURS, MINUTES, SECONDS, MILLISECONDS (actually, any value from enumeration java.util.concurrent.TimeUnit can be used) + +By default it is set to 1 hour (1 HOURS). + +Example of custom period of cache states logging: + + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + scheduleJobRunInterval + 30 + + + scheduleJobRunIntervalTimeUnit + SECONDS + + + + +Startup task will not schedule the job, if log level for dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob is not set to INFO, warning message will be logged: + + Startup task StartCacheStateLogScheduledJobStartupTask is configured, but logging level for category dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob is not set to 'info', so the task is skipped. + +- In order to set logging level for this logger, you can do it via log4j.xml: + + + + + +- In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: + + + + + +- It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. + +- See release notes for 919 regarding another startup task - dk.gov.oiosi.common.startup.DownloadCRLStartupTask, which initializes certificates revocation cache. + +- If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. + +- See example of startup tasks invocation at dk.gov.oiosi.examples.service. + +- Example of logging of data: + +2012-04-07 14:53:56,865 Caches state: + CertificateCache + toString(): name=CertificateCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=10, list(first 10)=[{OID.2.5.4.5=CVR:31937175-FID:1291907324861 + CN=hedeboe test (funktionscertifikat), O=HEDEBOE HOLDING ApS // CVR:31937175, C=DK=[timeOut=Sun Apr 08 10:59:03 EEST 2012, value=[ [ Versio...(5129 more)}, {OID.2.5.4.5=CVR:33265735-FID:1293812813127 + CN=TL Nemhandel (funktionscertifikat), O=TRUELINK NEMHANDEL ApS // CVR:33265735, C=DK=[timeOut=Sun Apr 08 10:59:24 EEST 2012, value=[ [ Ver...(5135 more)}, {OID.2.5.4.5=CVR:29190909-FID:1201276360859 + CN=RSD NemHandel (funktionscertifikat), O=Region Syddanmark // CVR:29190909, C=DK=[timeOut=Sun Apr 08 11:13:14 EEST 2012, value=[ [ Version...(5127 more)}, {OID.2.5.4.5=CVR:26911745-FID:1200662306791 + CN=KMD OIOSI Gateway 2 (funktionscertifikat), O=KMD A/S // CVR:26911745, C=DK=[timeOut=Sun Apr 08 11:13:17 EEST 2012, value=[ [ Version: V3...(5217 more)}, {CN=FO NemHandel Produktion (funktionscertifikat), OID.2.5.4.5=CVR:26911745-FID:1300089978680, O=KMD A/S // CVR:26911745, C=DK=[timeOut=Sun Apr 08 11:13:19 EEST 2012, value=[ [ Version:...(5126 more)}, {CN=OIOUBL (funktionscertifikat) + OID.2.5.4.5=CVR:16316296-FID:1300804878484 + CN=OIOUBL, O=OLYMPUS DANMARK A/S // CVR:16316296, C=DK=[timeOut=Sun Apr 08 11:13:27 EEST 2012, value=[ [ ...(5133 more)}, {CN=PGT (funktionscertifikat) + OID.2.5.4.5=CVR:10352282-FID:1252481142679, O=MACH ApS // CVR:10352282, C=DK=[timeOut=Sun Apr 08 11:13:28 EEST 2012, value=[ [ Version: V3 Subject: CN=...(5093 more)}, {OID.2.5.4.5=CVR:65305216-FID:1301996347276 + CN=UDDI Nemhandel Prod (funktionscertifikat), O=IBM DANMARK A/S // CVR:65305216, C=DK=[timeOut=Sun Apr 08 11:13:38 EEST 2012, value=[ [ Ver...(5139 more)}, {OID.2.5.4.5=CVR:15231599-FID:1299510243552 + CN=CSC Nemhandel (funktionscertifikat), O=CSC DANMARK A/S // CVR:15231599, C=DK=[timeOut=Sun Apr 08 11:13:41 EEST 2012, value=[ [ Version: ...(5123 more)}, {OID.2.5.4.5=CVR:27135781-FID:1262859991996 + CN=DIGITAXI NemHandel 20100107 (funktionscertifikat), O=DIGITAL CAB ApS // CVR:27135781, C=DK=[timeOut=Sun Apr 08 11:13:42 EEST 2012, value=[...(5150 more)}] + Statistics: tryGet(match/miss)=11/10 remove/set/add=10/10/10 checkExpired(total/removedCount)=3/0 + CrlLookupCache + toString(): name=CrlLookupCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=5, curSize=2, list(first 10)=[{http://crl.oces.certifikat.dk/oces.crl=used=650, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@1de582aa}, {http://crl.oces.certifikat.dk/oces.crl=used=634, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@37b66948}], maxEqual=1 + Statistics: tryGet(match/miss)=650/4 remove/set/add=0/0/2 checkExpired(total/removedCount)=2/0 + OcspLookupCache + toString(): name=OcspLookupCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=1 HOURS, curSize=0 + Statistics: checkExpired(total/removedCount)=23/0 + SchematronStoreCache + toString(): name=SchematronCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=20, curSize=3, list(first 10)=[{resources/schematronstylesheets/OIOUBL v2.0/OIOUBL_Invoice_Schematron.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@46e5763b}, {resources/schematronstylesheets/OIOUBL v2.0/OIOUBL_CreditNote_Schematron.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@2b53fda}, {resources/schematronstylesheets/OIOXML v0.7/ublinvoice.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@49730299}], maxEqual=1 + Statistics: tryGet(match/miss)=0/3 remove/set/add=0/0/3 checkExpired(total/removedCount)=3/0 + UddiServiceCache + toString(): name=UddiServiceCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=21, list(first 10)=[{http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001968502: null=[timeOut=Sun Apr 08 10:59:03 EEST 2012, value=[uddi:nemhandel.dk:daf7129a-ef5a-48e8-81d0-08a25b50400...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001968519: null=[timeOut=Sun Apr 08 10:59:24 EEST 2012, value=[uddi:nemhandel.dk:194696ec-27fa-4c47-9726-9aab8138de2...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798002569599: null=[timeOut=Sun Apr 08 11:13:14 EEST 2012, value=[uddi:ee9ee240-7eb3-11df-b943-4e5ea0b0b83c, uddi:ef0b5...(405 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798009780447: null=[timeOut=Sun Apr 08 11:13:17 EEST 2012, value=[uddi:nemhandel.dk:78345bec-fadb-4f8a-8895-0bcec439946...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798005439899: null=[timeOut=Sun Apr 08 11:13:19 EEST 2012, value=[uddi:nemhandel.dk:e44e6273-17fa-4fd3-af68-16e9def14df...(470 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 33265735: null=[timeOut=Sun Apr 08 11:13:22 EEST 2012, value=[uddi:nemhandel.dk:25a6389f-4876-476d-b5ad-d431439098ac, ud...(521 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 31937175: null=[timeOut=Sun Apr 08 11:13:24 EEST 2012, value=[uddi:nemhandel.dk:64186867-faca-4859-abb9-fa0824c8c6cb, ud...(521 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 27988954: null=[timeOut=Sun Apr 08 11:13:25 EEST 2012, value=[uddi:nemhandel.dk:5d7a7c58-d7a4-441b-ac6f-1529b2d4092c, ud...(241 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001266264: null=[timeOut=Sun Apr 08 11:13:27 EEST 2012, value=[uddi:nemhandel.dk:2ec52e8a-aa0d-413b-9a1c-e59044f0ae7...(358 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790000705719: null=[timeOut=Sun Apr 08 11:13:28 EEST 2012, value=[uddi:nemhandel.dk:ff6c0c1f-0fa0-488c-b13c-c8b0268c8eb5]]}] + Statistics: tryGet(match/miss)=2/27 remove/set/add=21/21/21 checkExpired(total/removedCount)=3/0 + UddiTModelCache + toString(): name=UddiTModelCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=0 + Statistics: checkExpired(total/removedCount)=3/0 diff --git a/dk.gov.oiosi.library/doc/release-notes-1.3.0_PreloadSchematronValidators.txt b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_PreloadSchematronValidators.txt similarity index 97% rename from dk.gov.oiosi.library/doc/release-notes-1.3.0_PreloadSchematronValidators.txt rename to dk.gov.oiosi.library/doc/old/release-notes-1.3.0_PreloadSchematronValidators.txt index 871b8dd2ab1bb7e1e558c9d1c74675e188d0a3dc..4f3f8fd93057435df49cae1909591817dc0031ef 100644 --- a/dk.gov.oiosi.library/doc/release-notes-1.3.0_PreloadSchematronValidators.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_PreloadSchematronValidators.txt @@ -1,73 +1,73 @@ -Issue 920: Preload schematron validators before actual documents validation (new functionality) - -How to start: - -1. Add new block into RaspConfiguration.xml like: - - - - - dk.gov.oiosi.common.startup.SchematronPreloadStartupTask - - - initDocumentTypeFriendlyName - Faktura - - - initDocumentTypeFriendlyName - Kreditnota - - - prevalidateXmlFolder - Resources/Documents/Examples - - - - - - -2. Add call of the method - -ConfigurationHandler.getInstance().executeStartupTasks(); - -which will walk through defined startup tasks and execute them. - - -Detailed description - -Schematron validation is one of the heaviest operations in OIORASP library. It can be executed faster if schematron validators are already loaded into system memory and ready for usage. -In case of server side of NemHandel, it is important to generate server response for received document as soon as possible, because sender side resend the same document after some timeout, defined in its Reliable Messaging configuration. -That is why it is recommended to initialize as much as possible of required resources before server starts to accept requests. - - -Some details - -- In order to see what happens during initialization, you can enable logging of startup tasks via log4j.xml: - - - - - -- In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: - - - - - -- It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. - -- See release notes for 919 regarding another startup task - dk.gov.oiosi.common.startup.DownloadCRLStartupTask, which initializes certificates revocation cache. - -- If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. - -- See example of startup tasks invocation at dk.gov.oiosi.examples.service. - -- Be aware, that if you pre-initialize schematron files during startup, you have to be sure that there is enough memory to keep them. Schematron objects are quite expensive, see next table with examples: - -Object Bytes Megabytes -OIOUBL Invoice schematron 11.542.616 11,01 -OIOUBL CreditNote schematron 8.099.200 7,72 -OIOXML schematron 294.256 0,28 - -Other expensive objects -CrlInstance 49.646.464 47,35 +Issue 920: Preload schematron validators before actual documents validation (new functionality) + +How to start: + +1. Add new block into RaspConfiguration.xml like: + + + + + dk.gov.oiosi.common.startup.SchematronPreloadStartupTask + + + initDocumentTypeFriendlyName + Faktura + + + initDocumentTypeFriendlyName + Kreditnota + + + prevalidateXmlFolder + Resources/Documents/Examples + + + + + + +2. Add call of the method + +ConfigurationHandler.getInstance().executeStartupTasks(); + +which will walk through defined startup tasks and execute them. + + +Detailed description + +Schematron validation is one of the heaviest operations in OIORASP library. It can be executed faster if schematron validators are already loaded into system memory and ready for usage. +In case of server side of NemHandel, it is important to generate server response for received document as soon as possible, because sender side resend the same document after some timeout, defined in its Reliable Messaging configuration. +That is why it is recommended to initialize as much as possible of required resources before server starts to accept requests. + + +Some details + +- In order to see what happens during initialization, you can enable logging of startup tasks via log4j.xml: + + + + + +- In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: + + + + + +- It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. + +- See release notes for 919 regarding another startup task - dk.gov.oiosi.common.startup.DownloadCRLStartupTask, which initializes certificates revocation cache. + +- If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. + +- See example of startup tasks invocation at dk.gov.oiosi.examples.service. + +- Be aware, that if you pre-initialize schematron files during startup, you have to be sure that there is enough memory to keep them. Schematron objects are quite expensive, see next table with examples: + +Object Bytes Megabytes +OIOUBL Invoice schematron 11.542.616 11,01 +OIOUBL CreditNote schematron 8.099.200 7,72 +OIOXML schematron 294.256 0,28 + +Other expensive objects +CrlInstance 49.646.464 47,35 diff --git a/dk.gov.oiosi.library/doc/release-notes-1.3.0_Removed_Axis2_Module.txt b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_Removed_Axis2_Module.txt similarity index 98% rename from dk.gov.oiosi.library/doc/release-notes-1.3.0_Removed_Axis2_Module.txt rename to dk.gov.oiosi.library/doc/old/release-notes-1.3.0_Removed_Axis2_Module.txt index 141a209520d751ee2ca8de4280910ab8cd4174af..3dae78ddad0f9399da3ca18bbe1d2b63cac3bcca 100644 --- a/dk.gov.oiosi.library/doc/release-notes-1.3.0_Removed_Axis2_Module.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_Removed_Axis2_Module.txt @@ -1,7 +1,7 @@ -Issue 1005: Removed Axis2 module scripting-1.5.mar - -Technical recommendation - -It is recommended to review the list of Axis2 modules, which are located in folder "axis2\repository\modules", for the necessity. -During testing of a new version of OIORASP library it was found out, that some modules can influence performance and even lead to OutOfMemory errors. -It is recommended to remove file scripting-1.5.mar from the folder "axis2\repository\modules", also as update file "axis2\repository\modules\modules.list" and delete a line with the name of this file. +Issue 1005: Removed Axis2 module scripting-1.5.mar + +Technical recommendation + +It is recommended to review the list of Axis2 modules, which are located in folder "axis2\repository\modules", for the necessity. +During testing of a new version of OIORASP library it was found out, that some modules can influence performance and even lead to OutOfMemory errors. +It is recommended to remove file scripting-1.5.mar from the folder "axis2\repository\modules", also as update file "axis2\repository\modules\modules.list" and delete a line with the name of this file. diff --git a/dk.gov.oiosi.library/doc/release-notes-1.3.0_TransportController_Shutdown.txt b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_TransportController_Shutdown.txt similarity index 98% rename from dk.gov.oiosi.library/doc/release-notes-1.3.0_TransportController_Shutdown.txt rename to dk.gov.oiosi.library/doc/old/release-notes-1.3.0_TransportController_Shutdown.txt index 59c1c8f14fc4967676c004f1c19e8ba964379c32..1e20446d8738f55b1040a488afd443ff5a8399f4 100644 --- a/dk.gov.oiosi.library/doc/release-notes-1.3.0_TransportController_Shutdown.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-1.3.0_TransportController_Shutdown.txt @@ -1,53 +1,53 @@ -Issue 1000: Fixed bug - OIORASP 1.2.3 does not free resources on TransportController.shutdown() - -Background - -During integration testing of OIORASP 1.3.0 it was found, that in some specific use case an invocation of this method can lead to OutOfMemory error. - - -Short description - -In order to avoid OutOfMemory errors and to force the OIORASP library to work as expected when TransportController.shutdown() is called, transport listener is started inside the constructor of the class AxisMercuryDispatcher. -This functionality can be turned off by setting parameter "disableTransportListenerStartup" to "true" in axis2.xml configuration file. -By default it is set to "false". -Also, it is recommended to clean axis2.xml on client side from unused transport configurations, e.g.: -- org.apache.axis2.transport.http.SimpleHTTPServer, -- org.apache.axis2.transport.mail.SimpleMailListener, -- org.apache.axis2.transport.tcp.TCPTransportSender. - -See file client_axis2.xml for the example of the configuration of minimal required transports: -- org.apache.axis2.transport.http.CommonsHTTPTransportSender -- org.apache.axis2.transport.local.LocalTransportSender (in case if local service is accessed) - - -Affected use case - -OIORASP at client side is integrated into some kind of scheduled procedure, which is started with some period of time and after sending some numbers of documents it calls TransportController.shutdown(); to clear memory and stop document sending. - - -Short bug description - -TransportController.shutdown(); does not work as expected – it does not free resources. - - -Short reason - -In order to finalize all modules, involved into Axis2 phases, transport listener should be started for given configuration context. -Without starting ListenerManager, when method dk.gov.oiosi.communication.client.AxisMercuryDispatcher.shutdownContext() is called, Mercury module (and actually the rest of used Axis2 modules in OIORASP) is NOT stopped properly, so occupied memory is not cleared and memory leak is introduced. - - -Short bug fix description - -The constructor of class AxisMercuryDispatcher is extended with next lines of code: - -configContext.getListenerManager().setShutdownHookRequired(false); -configContext.getListenerManager().start(); - -In case if such fix is unacceptable, such functionality can be disabled by adding a new parameter to axis2.xml (see example in dk.gov.oiosi.library client_axis2.xml): - - - false +Issue 1000: Fixed bug - OIORASP 1.2.3 does not free resources on TransportController.shutdown() + +Background + +During integration testing of OIORASP 1.3.0 it was found, that in some specific use case an invocation of this method can lead to OutOfMemory error. + + +Short description + +In order to avoid OutOfMemory errors and to force the OIORASP library to work as expected when TransportController.shutdown() is called, transport listener is started inside the constructor of the class AxisMercuryDispatcher. +This functionality can be turned off by setting parameter "disableTransportListenerStartup" to "true" in axis2.xml configuration file. +By default it is set to "false". +Also, it is recommended to clean axis2.xml on client side from unused transport configurations, e.g.: +- org.apache.axis2.transport.http.SimpleHTTPServer, +- org.apache.axis2.transport.mail.SimpleMailListener, +- org.apache.axis2.transport.tcp.TCPTransportSender. + +See file client_axis2.xml for the example of the configuration of minimal required transports: +- org.apache.axis2.transport.http.CommonsHTTPTransportSender +- org.apache.axis2.transport.local.LocalTransportSender (in case if local service is accessed) + + +Affected use case + +OIORASP at client side is integrated into some kind of scheduled procedure, which is started with some period of time and after sending some numbers of documents it calls TransportController.shutdown(); to clear memory and stop document sending. + + +Short bug description + +TransportController.shutdown(); does not work as expected – it does not free resources. + + +Short reason + +In order to finalize all modules, involved into Axis2 phases, transport listener should be started for given configuration context. +Without starting ListenerManager, when method dk.gov.oiosi.communication.client.AxisMercuryDispatcher.shutdownContext() is called, Mercury module (and actually the rest of used Axis2 modules in OIORASP) is NOT stopped properly, so occupied memory is not cleared and memory leak is introduced. + + +Short bug fix description + +The constructor of class AxisMercuryDispatcher is extended with next lines of code: + +configContext.getListenerManager().setShutdownHookRequired(false); +configContext.getListenerManager().start(); + +In case if such fix is unacceptable, such functionality can be disabled by adding a new parameter to axis2.xml (see example in dk.gov.oiosi.library client_axis2.xml): + + + false diff --git a/dk.gov.oiosi.library/doc/release-notes-2.0.0_HowToUpgrade.txt b/dk.gov.oiosi.library/doc/old/release-notes-2.0.0_HowToUpgrade.txt similarity index 98% rename from dk.gov.oiosi.library/doc/release-notes-2.0.0_HowToUpgrade.txt rename to dk.gov.oiosi.library/doc/old/release-notes-2.0.0_HowToUpgrade.txt index 3d32922aefbd33c98e40a1acb863f050fd6655c7..1f86738ad80123c84e470d359b75327e8e8624f0 100644 --- a/dk.gov.oiosi.library/doc/release-notes-2.0.0_HowToUpgrade.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-2.0.0_HowToUpgrade.txt @@ -1,31 +1,31 @@ -How to upgrade project from Java 1.3.0 to version 2.0.0 - -This file should be seen as a guide for migrating own code to OIORASP library 2.0.0 -The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! - -Steps ------ - -1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 - -2. Replace your old JAR file with the new (dk.gov.oiosi.library-2.0.0.xxxx.jar) - -3. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files). - One thing has changed: /Host has changed to crtdir.certifikat.dk - -4. Remember to add the Oces2 root certificate to your KeyStore. Can be downloaded from - https://www.certifikat.dk/export/sites/dk.certifikat.oc/da/download/rodcertifikat.html - Alias for the certificate must start with the KeyLabel stated in RaspConfiguration.xml (see RootCertificateLocationCollection) - -5. Inside tag, add this line (as the first line): - dk.gov.oiosi.axis2.module.OioraspPolicyBasedResultsValidator - - For receivers it's in services.xml, and for senders it's in policy.xml - Reason: Default Axis2 class, which is used for certificate validation, supports only 2 level certificates, but FOCES2 certificates have 3 levels - - with intermediate certificate, which could have different CRL lookup URL then low level certificate. - - -That should be it..! - -It you meet problems, that should be included in this guide, please post your comments to the following email address: - support@nemhandel.dk +How to upgrade project from Java 1.3.0 to version 2.0.0 + +This file should be seen as a guide for migrating own code to OIORASP library 2.0.0 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps +----- + +1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 + +2. Replace your old JAR file with the new (dk.gov.oiosi.library-2.0.0.xxxx.jar) + +3. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files). + One thing has changed: /Host has changed to crtdir.certifikat.dk + +4. Remember to add the Oces2 root certificate to your KeyStore. Can be downloaded from + https://www.certifikat.dk/export/sites/dk.certifikat.oc/da/download/rodcertifikat.html + Alias for the certificate must start with the KeyLabel stated in RaspConfiguration.xml (see RootCertificateLocationCollection) + +5. Inside tag, add this line (as the first line): + dk.gov.oiosi.axis2.module.OioraspPolicyBasedResultsValidator + + For receivers it's in services.xml, and for senders it's in policy.xml + Reason: Default Axis2 class, which is used for certificate validation, supports only 2 level certificates, but FOCES2 certificates have 3 levels - + with intermediate certificate, which could have different CRL lookup URL then low level certificate. + + +That should be it..! + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk diff --git a/dk.gov.oiosi.library/doc/release-notes-2.0.1_HowToUpgrade.txt b/dk.gov.oiosi.library/doc/old/release-notes-2.0.1_HowToUpgrade.txt similarity index 97% rename from dk.gov.oiosi.library/doc/release-notes-2.0.1_HowToUpgrade.txt rename to dk.gov.oiosi.library/doc/old/release-notes-2.0.1_HowToUpgrade.txt index 68c5e15b502138b2d4041f45bd58faaef4fb6d86..227a703e1db95bc1711350d222c30119d6b3565e 100644 --- a/dk.gov.oiosi.library/doc/release-notes-2.0.1_HowToUpgrade.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-2.0.1_HowToUpgrade.txt @@ -1,16 +1,16 @@ -How to upgrade project from RASP Java 2.0.0 to version 2.0.1 - -This file should be seen as a guide for migrating own code to OIORASP library 2.0.1 -The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! - -Steps ------ - -1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 - -2. Replace your old JAR file with the new (dk.gov.oiosi.library-2.0.1.xxxx.jar) - -That should be it..! - -It you meet problems, that should be included in this guide, please post your comments to the following email address: - support@nemhandel.dk +How to upgrade project from RASP Java 2.0.0 to version 2.0.1 + +This file should be seen as a guide for migrating own code to OIORASP library 2.0.1 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps +----- + +1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 + +2. Replace your old JAR file with the new (dk.gov.oiosi.library-2.0.1.xxxx.jar) + +That should be it..! + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk diff --git a/dk.gov.oiosi.library/doc/old/release-notes-2.1.0.adoc b/dk.gov.oiosi.library/doc/old/release-notes-2.1.0.adoc new file mode 100644 index 0000000000000000000000000000000000000000..04a149888a5cd57efdbed278d99df3a78551e892 --- /dev/null +++ b/dk.gov.oiosi.library/doc/old/release-notes-2.1.0.adoc @@ -0,0 +1,4 @@ + +=== RASP version 2.1.0 and older versions + +Release notes for RASP Java version 2.1.0 and older can be found here: https://www.digitaliser.dk/resource/3424708 diff --git a/dk.gov.oiosi.library/doc/release-notes-2.1.0_HowToUpgrade.txt b/dk.gov.oiosi.library/doc/old/release-notes-2.1.0_HowToUpgrade.txt similarity index 97% rename from dk.gov.oiosi.library/doc/release-notes-2.1.0_HowToUpgrade.txt rename to dk.gov.oiosi.library/doc/old/release-notes-2.1.0_HowToUpgrade.txt index 02f289a54cebf02bcfd6a22f039135afe899264f..68552e6d1496cfb87537a32f31d3ae421ebf9462 100644 --- a/dk.gov.oiosi.library/doc/release-notes-2.1.0_HowToUpgrade.txt +++ b/dk.gov.oiosi.library/doc/old/release-notes-2.1.0_HowToUpgrade.txt @@ -1,39 +1,39 @@ -How to upgrade project from RASP Java 2.0.1 to version 2.1.0 - -This file should be seen as a guide for migrating own code to OIORASP library version 2.1.0 -The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! - -Steps ------ - -1. Download new release from https://digitaliser.dk/group/405442/resources - -2. File changes: - - Replace your old JAR file with the new (dk.gov.oiosi.library-2.1.0.xxxxx.jar) - - Remove smtpfault.mar - - Replace rasp*.mar with rasp-2.1.0.mar - - Add saxon9he.jar to project (to be able to work with xslt 2.0 files used in PEPPOL schematron files) - -3. RaspConfiguration.xml must be updated! - See RaspConfiguration-update-2.1.0.pdf - -4. Code updates: - -DocumentTypeConfig.getSchematronValidationConfig() is replaced by DocumentTypeConfig.getSchematronValidationConfigList() because PEPPOL -documents has multiple schematron files. -Wrap your normal use of DocumentTypeConfig.getSchematronValidationConfig() with: - for (SchematronValidationConfig schematronValidationConfig : documentTypeConfig.getSchematronValidationConfigList()) { - } - -MissingCredentialsException and other Exceptions has been removed - please use other suitable exception. - -Identifier.getKeyTypeValue() has been removed - please use Identifier.getType() now. - -enum EndpointAddressTypeCode has been cleaned for unusable values (https, email, ftp and other) - - -That should be it..! - - -It you meet problems, that should be included in this guide, please post your comments to the following email address: - support@nemhandel.dk +How to upgrade project from RASP Java 2.0.1 to version 2.1.0 + +This file should be seen as a guide for migrating own code to OIORASP library version 2.1.0 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps +----- + +1. Download new release from https://digitaliser.dk/group/405442/resources + +2. File changes: + - Replace your old JAR file with the new (dk.gov.oiosi.library-2.1.0.xxxxx.jar) + - Remove smtpfault.mar + - Replace rasp*.mar with rasp-2.1.0.mar + - Add saxon9he.jar to project (to be able to work with xslt 2.0 files used in PEPPOL schematron files) + +3. RaspConfiguration.xml must be updated! + See RaspConfiguration-update-2.1.0.pdf + +4. Code updates: + +DocumentTypeConfig.getSchematronValidationConfig() is replaced by DocumentTypeConfig.getSchematronValidationConfigList() because PEPPOL +documents has multiple schematron files. +Wrap your normal use of DocumentTypeConfig.getSchematronValidationConfig() with: + for (SchematronValidationConfig schematronValidationConfig : documentTypeConfig.getSchematronValidationConfigList()) { + } + +MissingCredentialsException and other Exceptions has been removed - please use other suitable exception. + +Identifier.getKeyTypeValue() has been removed - please use Identifier.getType() now. + +enum EndpointAddressTypeCode has been cleaned for unusable values (https, email, ftp and other) + + +That should be it..! + + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk diff --git a/dk.gov.oiosi.library/doc/release-notes-1.x.x.adoc b/dk.gov.oiosi.library/doc/release-notes-1.x.x.adoc new file mode 100644 index 0000000000000000000000000000000000000000..511db8bf34177eb9cb9393b063fd38735d9b711b --- /dev/null +++ b/dk.gov.oiosi.library/doc/release-notes-1.x.x.adoc @@ -0,0 +1,604 @@ + +== RASP version 1.3.0 +Main purposes of this release have been: +* Support for oces2 certificates. This release has prepared and tested code to handle these new certificates. It will not be possible to start testing this in the general public before DanID later in 2012 opens the last infrastructure components. DanID will sometime in 2013 stop issuing oces1 certificates and at that time, the RASP 1.3.0 (or newer) will be mandatory in Nemhandel. It will be announced when the date is set and notification will be given at least 6 months in advance. +* Optimize performance. Caches have been made configurable, memory consumption have been minimized, style-sheets are now pre-compiled, code is optimized – all to optimize the throughput of communication. + +This release is fully compatible with RASP 1.2.1 and 1.2.3 when using oces1 certificates. +The 1.3.0 release is not a patch release, due to several breaking changes. + +In the provided Rasp Configuration file a number of default values for e.g. cache sizes have been proposed. These are only default values, and can be changes by users as needed. +It is recommended to use the provided Rasp Configuration file as starting point. Please see the details below for configuration. + +.Default values +[format="csv", options="header", separator=";"] +|=== +Cache name;OIORASP 1.2.3.HotFix1;OIORASP 1.3.0;OIORASP 2.0;Proposition to change +LdapCertificateLookup/CertificateCache;TimedCache - 14 days;TimedCache, 24 hours validity, each 1 hour check for expiration;TimedCache, 24 hours validity, each 1 hour check for expiration;Limit maximum number of entries by some big value to avoid OutOfMemory, use LFU cache together with timed cache +OcspLookup;TimedCache - 1 hour;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ;-- // --- +UddiLookupClient.getServiceCache;TimedCache - 24 hours;TimedCache, 1 hours validity, each 10 minutes check for expiration;TimedCache, 1 hours validity, each 10 minutes check for expiration;Critical! If we do not decrease it, NO changes in public UDDI can be visible to clients during 24 hours. +UddiLookupClient.getTModelCache;TimedCache - 24 hours;TimedCache, 24 hours validity, each 1 hour check for expiration;TimedCache, 24 hours validity, each 1 hour check for expiration;Barelly used at all, at least none in TrueLink subsystem uses it. +SchematronStore;QuantityCache - 2 path entries;LFU cache (max size 20), no expiration;LFU cache (max size 20), no expiration; +CrlCache;Unlimited hashtable for each CRL url, checks for expiration each time it is accessed, updates in the same thread where it was found that it is expired;LFU cache (max size 10), if failed to update - reattempt in 5 minutes by special scheduled job, which is started after each successful cache update depending on revocation next update date from CRL server;LFU cache (max size 10), if failed to update - reattempt in 5 minutes by special scheduled job, which is started after each successful cache update depending on revocation next update date from CRL server; +SchemaStoreCache;absent, Schema object is built each time when required;LFU cache (max size 20), no expiration;LFU cache (max size 20), no expiration; +MessageIdUnfinishedSignaturesCache;10 minutes;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ; +SequenceIdUnfinishedSignaturesCache;10 minutes;TimedCache, 1 hour validity, each 10 mins check for expiration ;TimedCache, 1 hour validity, each 10 mins check for expiration ; +|=== +LFU: Least Frequently Used + +=== New features +* Oces2 certificates are now supported. OIORASP 1.3.0 is prepared for DanID to start issuing oces2 certificates. +* Possibility to configure caches: It’s now possible to configure almost any cache setting. Please see file “release-notes-1.3.0_CacheConfiguration.txt” for detailed description and configuration [917]. +* Preload schematron validators before actual documents validation. Preload and cache common used validators to optimize performance. Please see file “release-notes-1.3.0_PreloadSchematronValidators.txt” for detailed description and configuration [920]. +* Initialize CRL revocation cache during startup. CRL can now be fetched, processed and cached on startup to optimize performance. Please see file “release-notes-1.3.0_CrlCachePreloading.txt” for detailed description and configuration [919]. +* Monitor cache states. To be able to optimize cache settings, it is vital to know something about the size of the cached content. Please see file “release-notes-1.3.0_MonitorCacheStates.txt” for detailed description and configuration [993]. +* Internal representation of XML is updated in receiver code (AxisServiceReceiver) to minimize memory usage (do not clone payload) [918] +RASP still used some memory to hold precompiled stylesheets, CRL, etc. +Reading from development setup: + +[options="header"] +|=== + | Object | Megabytes + 2+| *Schematron objects* + | OIOUBL Invoice schematron | 11,01 + | OIOUBL CreditNote schematron | 7,72 + | OIOXML schematron | 0,28 + 2+| *Other expensive objects* + | CrlInstance | 47,35 +|=== + +* Representation of XML is optimized in object XmlDocument, so that transformation to/from DOM is not executed more than once [929] +* Lots of logging has been added around the code base. + + +=== Fixes +* Xpath for KreditNota made absolute [368] +* Old test certificates in project updated [713] +* AxisMercuryDispatcher updated, so that cleanup is also executed upon exception [866] +* OIORASP 1.2.3 does not free resources on TransportController.shutdown(). Please see file “release-notes-1.3.0_TransportController_Shutdown.txt” for detailed description [867+1000] + +=== Changes +* http://discoverybackup.uddi.ehandel.gov.dk/registry/uddi/inquiry is put in as default backup [622] +* December 2012 schematron files (version 1.3) put in as default files [669] +* Optimize schematron validation: Stop after first error. Only first error is returned, so stop when first error is found [914] +* BouncyCastle and other libraries are updated to latest version. +* Default location for schema and schematron files have changed, to get clearer file structure (related to how e.g. Schematron updates are released [631+634+869] + +=== Removals +* Deprecated class dk.gov.oiosi.addressing.EndpointAddressURL deleted. +* Various unused classes have been marked as Deprecated. +* Configuration of old VANS GW adapter removed from configuration files [526] +* Unused Axis2 module removed. Please see file “release-notes-1.3.0_Removed_Axis2_Module.txt” for detailed description and configuration [1005]. + +=== Additional notes + +==== How to upgrade +How to upgrade project from Java 1.2.3 to version 1.3.0 + +This file should be seen as a guide for migrating own code to OIORASP library 1.3.0 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps + +1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 + +2. Replace your old JAR file with the new (dk.gov.oiosi.library-1.3.0.xxxx.jar) + +3. Remove "scripting-1.5.mar" and update "modules.list" according to release-notes-1.3.0_Removed_Axis2_Module.txt + +4. Remove bcprov-jdk16-141.jar and replace with/add bcprov-jdk15on-147.jar + bcpkix-jdk15on-147.jar + +5. Remove ocsp-client.jar from lib. + +6. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files). + +7. It is recommended to setup log4j in your Java project. RASP library now log details about configuration, cache sizes, etc. + Check the log file for WARN/ERROR messages after system startup. + + +That should be it..! + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk + + +==== TransportController Shutdown +*Issue 1000: Fixed bug - OIORASP 1.2.3 does not free resources on TransportController.shutdown()* + +.Background + +During integration testing of OIORASP 1.3.0 it was found, that in some specific use case an invocation of this method can lead to OutOfMemory error. + + +.Short description + +In order to avoid OutOfMemory errors and to force the OIORASP library to work as expected when TransportController.shutdown() is called, transport listener is started inside the constructor of the class AxisMercuryDispatcher. +This functionality can be turned off by setting parameter "disableTransportListenerStartup" to "true" in axis2.xml configuration file. +By default it is set to "false". +Also, it is recommended to clean axis2.xml on client side from unused transport configurations, e.g.: + +* org.apache.axis2.transport.http.SimpleHTTPServer, +* org.apache.axis2.transport.mail.SimpleMailListener, +* org.apache.axis2.transport.tcp.TCPTransportSender. + +See file client_axis2.xml for the example of the configuration of minimal required transports: + +* org.apache.axis2.transport.http.CommonsHTTPTransportSender +* org.apache.axis2.transport.local.LocalTransportSender (in case if local service is accessed) + + +.Affected use case +OIORASP at client side is integrated into some kind of scheduled procedure, which is started with some period of time and after sending some numbers of documents it calls TransportController.shutdown(); to clear memory and stop document sending. + +.Short bug description +TransportController.shutdown(); does not work as expected – it does not free resources. + +.Short reason +In order to finalize all modules, involved into Axis2 phases, transport listener should be started for given configuration context. +Without starting ListenerManager, when method dk.gov.oiosi.communication.client.AxisMercuryDispatcher.shutdownContext() is called, Mercury module (and actually the rest of used Axis2 modules in OIORASP) is NOT stopped properly, so occupied memory is not cleared and memory leak is introduced. + + +.Short bug fix description +The constructor of class AxisMercuryDispatcher is extended with next lines of code: +[source] +configContext.getListenerManager().setShutdownHookRequired(false); +configContext.getListenerManager().start(); + +In case if such fix is unacceptable, such functionality can be disabled by adding a new parameter to axis2.xml (see example in dk.gov.oiosi.library client_axis2.xml): +[source] + + false + +==== Removed Axis2 Module +*Issue 1005: Removed Axis2 module scripting-1.5.mar* + +.Technical recommendation + +It is recommended to review the list of Axis2 modules, which are located in folder "axis2\repository\modules", for the necessity. +During testing of a new version of OIORASP library it was found out, that some modules can influence performance and even lead to OutOfMemory errors. +It is recommended to remove file scripting-1.5.mar from the folder "axis2\repository\modules", also as update file "axis2\repository\modules\modules.list" and delete a line with the name of this file. + +==== Preload Schematron Validators +*Issue 920: Preload schematron validators before actual documents validation (new functionality)* + +.How to start + +1. Add new block into RaspConfiguration.xml like: +[source, xml] + + + + dk.gov.oiosi.common.startup.SchematronPreloadStartupTask + + + initDocumentTypeFriendlyName + Faktura + + + initDocumentTypeFriendlyName + Kreditnota + + + prevalidateXmlFolder + Resources/Documents/Examples + + + + + + +2. Add call of the method + +[source] +ConfigurationHandler.getInstance().executeStartupTasks(); + +which will walk through defined startup tasks and execute them. + +.Detailed description + +Schematron validation is one of the heaviest operations in OIORASP library. It can be executed faster if schematron validators are already loaded into system memory and ready for usage. +In case of server side of Nemhandel, it is important to generate server response for received document as soon as possible, because sender side resend the same document after some timeout, defined in its Reliable Messaging configuration. +That is why it is recommended to initialize as much as possible of required resources before server starts to accept requests. + + +Some details + +* In order to see what happens during initialization, you can enable logging of startup tasks via log4j.xml: +[source, xml] + + + + +* In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: +[source, xml] + + + + +* It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. + +* See release notes for 919 regarding another startup task - dk.gov.oiosi.common.startup.DownloadCRLStartupTask, which initializes certificates revocation cache. + +* If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. + +* See example of startup tasks invocation at dk.gov.oiosi.examples.service. + +* Be aware, that if you pre-initialize schematron files during startup, you have to be sure that there is enough memory to keep them. Schematron objects are quite expensive, see next table with examples: + +[options="header"] +|=== +| Object | Bytes | Megabytes +| OIOUBL CreditNote schematron | 8.099.200 | 7,72 +| OIOXML schematron | 294.256 | 0,28 + +3+| *Other expensive objects* + | CrlInstance | 49.646.464 | 47,35 +|=== + +==== Monitor Cache States +*Issue 993: Monitor cache states (new functionality)* + +.How to start + +1. Add new block into RaspConfiguration.xml like: +[source] + + + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + + +2. Add call of the method +[source] +ConfigurationHandler.getInstance().executeStartupTasks(); + +which will walk through defined startup tasks and execute them. + + +.Detailed description + +In OIORASP java 1.3.0 a new functionality is implemented - configurable caches. But in order to be able to find the optimal cache configuration, it is imported to be able to see current status of cache usage and its side. +For this purpose a new scheduled job is created - dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob, which dumps statistics of cache usage to logger, configured to this class, with info level. +This scheduled job is not started by default, to request the system to start it, you need to specify new startup task - dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask. + +This task has 2 configuration parameters: + +scheduleJobRunInterval - integer, period of time, with which scheduled task should be executed, +scheduleJobRunIntervalTimeUnit - time unit, in which scheduleJobRunInterval is defined. Possible values: HOURS, MINUTES, SECONDS, MILLISECONDS (actually, any value from enumeration java.util.concurrent.TimeUnit can be used) + +By default it is set to 1 hour (1 HOURS). + +Example of custom period of cache states logging: +[source] + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask + + + scheduleJobRunInterval + 30 + + + scheduleJobRunIntervalTimeUnit + SECONDS + + + + +Startup task will not schedule the job, if log level for dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob is not set to INFO, warning message will be logged: + + Startup task StartCacheStateLogScheduledJobStartupTask is configured, but logging level for category dk.gov.oiosi.common.cache.stat.CacheStateLogScheduledJob is not set to 'info', so the task is skipped. + +* In order to set logging level for this logger, you can do it via log4j.xml: + + + + + +* In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: + + + + + +* It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. + +* See release notes for 919 regarding another startup task - dk.gov.oiosi.common.startup.DownloadCRLStartupTask, which initializes certificates revocation cache. + +* If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. + +* See example of startup tasks invocation at dk.gov.oiosi.examples.service. + +* Example of logging of data: +[source] +2012-04-07 14:53:56,865 Caches state: + CertificateCache + toString(): name=CertificateCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=10, list(first 10)=[{OID.2.5.4.5=CVR:31937175-FID:1291907324861 + CN=hedeboe test (funktionscertifikat), O=HEDEBOE HOLDING ApS // CVR:31937175, C=DK=[timeOut=Sun Apr 08 10:59:03 EEST 2012, value=[ [ Versio...(5129 more)}, {OID.2.5.4.5=CVR:33265735-FID:1293812813127 + CN=TL Nemhandel (funktionscertifikat), O=TRUELINK NEMHANDEL ApS // CVR:33265735, C=DK=[timeOut=Sun Apr 08 10:59:24 EEST 2012, value=[ [ Ver...(5135 more)}, {OID.2.5.4.5=CVR:29190909-FID:1201276360859 + CN=RSD NemHandel (funktionscertifikat), O=Region Syddanmark // CVR:29190909, C=DK=[timeOut=Sun Apr 08 11:13:14 EEST 2012, value=[ [ Version...(5127 more)}, {OID.2.5.4.5=CVR:26911745-FID:1200662306791 + CN=KMD OIOSI Gateway 2 (funktionscertifikat), O=KMD A/S // CVR:26911745, C=DK=[timeOut=Sun Apr 08 11:13:17 EEST 2012, value=[ [ Version: V3...(5217 more)}, {CN=FO NemHandel Produktion (funktionscertifikat), OID.2.5.4.5=CVR:26911745-FID:1300089978680, O=KMD A/S // CVR:26911745, C=DK=[timeOut=Sun Apr 08 11:13:19 EEST 2012, value=[ [ Version:...(5126 more)}, {CN=OIOUBL (funktionscertifikat) + OID.2.5.4.5=CVR:16316296-FID:1300804878484 + CN=OIOUBL, O=OLYMPUS DANMARK A/S // CVR:16316296, C=DK=[timeOut=Sun Apr 08 11:13:27 EEST 2012, value=[ [ ...(5133 more)}, {CN=PGT (funktionscertifikat) + OID.2.5.4.5=CVR:10352282-FID:1252481142679, O=MACH ApS // CVR:10352282, C=DK=[timeOut=Sun Apr 08 11:13:28 EEST 2012, value=[ [ Version: V3 Subject: CN=...(5093 more)}, {OID.2.5.4.5=CVR:65305216-FID:1301996347276 + CN=UDDI Nemhandel Prod (funktionscertifikat), O=IBM DANMARK A/S // CVR:65305216, C=DK=[timeOut=Sun Apr 08 11:13:38 EEST 2012, value=[ [ Ver...(5139 more)}, {OID.2.5.4.5=CVR:15231599-FID:1299510243552 + CN=CSC Nemhandel (funktionscertifikat), O=CSC DANMARK A/S // CVR:15231599, C=DK=[timeOut=Sun Apr 08 11:13:41 EEST 2012, value=[ [ Version: ...(5123 more)}, {OID.2.5.4.5=CVR:27135781-FID:1262859991996 + CN=DIGITAXI NemHandel 20100107 (funktionscertifikat), O=DIGITAL CAB ApS // CVR:27135781, C=DK=[timeOut=Sun Apr 08 11:13:42 EEST 2012, value=[...(5150 more)}] + Statistics: tryGet(match/miss)=11/10 remove/set/add=10/10/10 checkExpired(total/removedCount)=3/0 + CrlLookupCache + toString(): name=CrlLookupCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=5, curSize=2, list(first 10)=[{http://crl.oces.certifikat.dk/oces.crl=used=650, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@1de582aa}, {http://crl.oces.certifikat.dk/oces.crl=used=634, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@37b66948}], maxEqual=1 + Statistics: tryGet(match/miss)=650/4 remove/set/add=0/0/2 checkExpired(total/removedCount)=2/0 + OcspLookupCache + toString(): name=OcspLookupCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=1 HOURS, curSize=0 + Statistics: checkExpired(total/removedCount)=23/0 + SchematronStoreCache + toString(): name=SchematronCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=20, curSize=3, list(first 10)=[{resources/schematronstylesheets/OIOUBL v2.0/OIOUBL_Invoice_Schematron.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@46e5763b}, {resources/schematronstylesheets/OIOUBL v2.0/OIOUBL_CreditNote_Schematron.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@2b53fda}, {resources/schematronstylesheets/OIOXML v0.7/ublinvoice.xsl=used=0, value=org.apache.xalan.transformer.TransformerImpl@49730299}], maxEqual=1 + Statistics: tryGet(match/miss)=0/3 remove/set/add=0/0/3 checkExpired(total/removedCount)=3/0 + UddiServiceCache + toString(): name=UddiServiceCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=21, list(first 10)=[{http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001968502: null=[timeOut=Sun Apr 08 10:59:03 EEST 2012, value=[uddi:nemhandel.dk:daf7129a-ef5a-48e8-81d0-08a25b50400...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001968519: null=[timeOut=Sun Apr 08 10:59:24 EEST 2012, value=[uddi:nemhandel.dk:194696ec-27fa-4c47-9726-9aab8138de2...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798002569599: null=[timeOut=Sun Apr 08 11:13:14 EEST 2012, value=[uddi:ee9ee240-7eb3-11df-b943-4e5ea0b0b83c, uddi:ef0b5...(405 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798009780447: null=[timeOut=Sun Apr 08 11:13:17 EEST 2012, value=[uddi:nemhandel.dk:78345bec-fadb-4f8a-8895-0bcec439946...(526 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5798005439899: null=[timeOut=Sun Apr 08 11:13:19 EEST 2012, value=[uddi:nemhandel.dk:e44e6273-17fa-4fd3-af68-16e9def14df...(470 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 33265735: null=[timeOut=Sun Apr 08 11:13:22 EEST 2012, value=[uddi:nemhandel.dk:25a6389f-4876-476d-b5ad-d431439098ac, ud...(521 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 31937175: null=[timeOut=Sun Apr 08 11:13:24 EEST 2012, value=[uddi:nemhandel.dk:64186867-faca-4859-abb9-fa0824c8c6cb, ud...(521 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 27988954: null=[timeOut=Sun Apr 08 11:13:25 EEST 2012, value=[uddi:nemhandel.dk:5d7a7c58-d7a4-441b-ac6f-1529b2d4092c, ud...(241 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790001266264: null=[timeOut=Sun Apr 08 11:13:27 EEST 2012, value=[uddi:nemhandel.dk:2ec52e8a-aa0d-413b-9a1c-e59044f0ae7...(358 more)}, {http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry - 5790000705719: null=[timeOut=Sun Apr 08 11:13:28 EEST 2012, value=[uddi:nemhandel.dk:ff6c0c1f-0fa0-488c-b13c-c8b0268c8eb5]]}] + Statistics: tryGet(match/miss)=2/27 remove/set/add=21/21/21 checkExpired(total/removedCount)=3/0 + UddiTModelCache + toString(): name=UddiTModelCache, cacheImpl=dk.gov.oiosi.common.cache.TimedCache, cacheTimeOut=24 HOURS, curSize=0 + Statistics: checkExpired(total/removedCount)=3/0 + +==== CrlCache Preloading +*Issue 919: Initialize CRL revocation cache during startup (new functionality)* + +Important: + +The new startup task DownloadCRLStartupTask is recommended to use only in case if CrlLookup is configured in "RevocationLookupFactoryConfig" section of RaspConfiguration. +If OcspLookup is used instead, it has no sense to load CRL list at all, because in this case OIORASP checks certificates revocation by making a call to OCSP server for each certificate separately. +For CRL-revocation style it is done once per some period of time, and OIORASP gets the list of ALL EVER revoked but not yet expired certificates by publisher, which owns this CRL. +E.g. http://crl.oces.certifikat.dk/oces.crl now provides 189215 certificates (earliest from 2008), which requires 50 MB of memory for java application to store it. + +OCSP is good for very moderate sending/receiving, when not that many documents/certificates are processed. ++ lower memory requirements ++ potentially a little better security - if certificate is revoked, OIORASP will cache it maximum 1 hour and make a new call if such certificate is found in response from other party, so it will not wait until next CRL revocation update time (usually circa 12 hours) ++ much faster to validate one certificate +- slower in case of high load (because at least now ALL certificates for NemHandel use the same CRL URL, so OIORASP has to check each certificate separately instead of CRL way - get everything once) + +CRL is recommended for usage in case of many different certificates and high load for sending/receiving process. ++ CRL list is cached for a long time, depending on what CRL server asked to wait, so actually it depends on a CRL server in this instead of OIORASP own configuration ++ much faster for many different certificates to process +- slow loading of CRL list (5-15 seconds) +- much bigger memory consumption + +.How to start + +. Add a new block into RaspConfiguration.xml like: + + + + + dk.gov.oiosi.common.startup.DownloadCRLStartupTask + + + downloadCrlUrl + http://crl.oces.certifikat.dk/oces.crl + + + + + + +or extend existing StartupConfig configuration with new entry StartupTask. + +This startup task has only one configuration option - downloadCrlUrl, which can be used several times. It defines HTTP URL to CRL source to make call for getting list of revoked certificates during system startup to speed up first document processing. + +[start=2] +. Add call of the method + +ConfigurationHandler.getInstance().executeStartupTasks(); + +which will walk through defined startup tasks and execute them. + +[start=3] +. How to get the list of used CRL URLs. + +OIORASP 1.3.0 was extended with a new functionality - possibility to see cache states. The name of related cache is CrlLookupCache. + +Log record for it looks like this: +[source, console] + CrlLookupCache + toString(): name=CrlLookupCache, cacheImpl=dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache, maxSize=5, curSize=2, list(first 10)=[{http://crl.oces.certifikat.dk/oces.crl=used=650, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@1de582aa}, {http://crl.oces.certifikat.dk/oces.crl=used=634, value=dk.gov.oiosi.security.revocation.crl.CrlInstance@37b66948}], maxEqual=1 + Statistics: tryGet(match/miss)=650/4 remove/set/add=0/0/2 checkExpired(total/removedCount)=2/0 + +In the line which starts with toString() you can see contents of CrlLookupCache with first 10 cached values, e.g. in this example it is http://crl.oces.certifikat.dk/oces.crl which was taken from cache 650 times. + +Usual OCSP certificates are using next CRL url: + + http://crl.oces.certifikat.dk/oces.crl + +so it is recommended to specify it. + +DanID is starting the new types of certificates, called OCES2, which suppose to have different CRL URLs (this + +.Detailed description + +CRL revocation data loading is quite slow process, so it influences performance of sending/receiving first document via NemHandel. +In case of server side of NemHandel, it is important to generate server response for received document as soon as possible, because sender side resend the same document after some timeout, defined in its Reliable Messaging configuration. +That is why it is recommended to initialize as much as possible of required resources before server starts to accept requests. + +.Some details + +* CRL cache loading is done via scheduled job, which starts immediately when startup task is started. If it fails to download CRL list, it will retry to do it each 1 minute until success (it can be changed by reconfiguring CrlLookup). +It means, that CRL cache loading does not prevent system to start, because loading is done in a separate thread. + +* If RaspConfiguration contains both "RevocationLookupFactoryConfig" set to "dk.gov.oiosi.security.revocation.ocsp.OcspLookup" instead of "dk.gov.oiosi.security.revocation.crl.CrlLookup" or "dk.gov.oiosi.security.revocation.crl.SimpleCrlLookup", but startup task DownloadCRLStartupTask is anyway configured, it shows warning message: + +DownloadCRLStartupTask: startup task to pre-load CRL data is configured, but RevocationLookup implementation does not use CRL as revocation source. Please either change implementation or remove this startup task as it has no sense. Task is skipped. + +and skips to work. + +* In order to see what happens during initialization, you can enable logging of startup tasks via log4j.xml: +[source] + + + + +* In order to see details of startup tasks configuration loading, you can enable logging of this process via log4j.xml: +[source] + + + + +* It is possible to configure own implementations of dk.gov.oiosi.common.startup.IStartupTask, for convenience there is abstract class for such tasks. + +* See release notes for 920 regarding another startup task - dk.gov.oiosi.common.startup.SchematronPreloadStartupTask, which initializes schematron validation. + +* If method ConfigurationHandler.getInstance().executeStartupTasks() is not called, startup tasks are not executed. + +* See example of startup tasks invocation at dk.gov.oiosi.examples.service. + +* Be aware, that in order to avoid multiple threads collisions during CRL data reloading, at some moment in system memory there can be 2 CrlInstance objects - one with cached result, another with just loaded. + +So minimal memory requirements for CRL are increased by 2, at least 100 MB memory should be available for this. + +[options="header"] +|=== +| Object | Bytes | Megabytes +3+| Other expensive objects +| CrlInstance | 49.646.464 | 47,35 +|=== +Please check that your server/client have at least 256 MB of memory for usage (for HotSpot Java it is parameter -Xmx256m), but it is recommended to have at least 512m. + +* Be aware, that in case if you do not validate certificates by revocation server, there is no reason to start this task. + +* OIORASP 1.3.0 contains 2 implementations for CrlLookup - "dk.gov.oiosi.security.revocation.crl.CrlLookup" and "dk.gov.oiosi.security.revocation.crl.SimpleCrlLookup". +The last one does not support OCES2 certificates (which are going to be used in production by DanID in 2012). +If you have problems with CrlLookup, you can try to switch to SimpleCrlLookup, which has simplified implementation. + +* Example of status logging for http://crl.oces.certifikat.dk/oces.crl URL: + +[source, console] +CrlInstance: it took 8453 ms to lookup into http://crl.oces.certifikat.dk/oces.crl +CrlInstance: CRL next update date: Wed Apr 25 20:38:04 CEST 2012 +CrlInstance: CRL this update date: Wed Apr 25 08:38:04 CEST 2012 +CrlInstance: Local last update date: Wed Apr 25 08:42:34 CEST 2012 +CrlInstance: Revoked certificates size: 189215 +CrlInstance: Revoked records count by year: {2009=28152, 2010=49486, 2012=29728, 2011=78739, 2008=3110} +CrlInstance: Latest revocation date: Wed Apr 25 08:37:43 CEST 2012 + +==== Cache configuration +*Issue 917: Possibility to configure caches (new functionality)* + +By default, after updating OIORASP library, cache configuration is changed. See "OIOSI RASP Library for Java Cache Overview 1.3.0.xlsx" for details. + +.How to change cache configuration: + +. Add a new block into RaspConfiguration.xml like: +[source] + + + dk.gov.oiosi.common.cache.TimedCache + dk.gov.oiosi.RaspLibrary + + + validityTimeInHours + 1 + + + frequencyInMinutes + 10 + + + + + +or extend existing StartupConfig configuration with new entry StartupTask. + +[start=2] +. Possible nested tags inside this section are: CertificateCache, OcspLookupCache, UddiServiceCache, UddiTModelCache, SchematronCache, CrlLookupCache. +These tags should have sub-tags: + +ImplementationNamespaceClass - class name of the cache to use +ImplementationAssembly - not used in OIORASP java, optional +CacheConfigurationCollection - list of configuration parameters, which depend on cache implementation class. + + +.Detailed description + +In OIORASP 1.3.0 there are 4 configurable cache implementations: + +. dk.gov.oiosi.common.cache.TimedCache - contains unlimited number of cached values, which are removed from cache with some expiration time. +Parameters: +validityTimeInHours or validityTimeInMinutes - integer with number of hours or minutes during which cache entry is considered as not expired +frequencyInHours or frequencyInMinutes - integer with number of hours or minutes to check expiration state of cached values. +Default values: +1 hour validity period and 10 minutes expiration check. +By default, this cache is used for certificates, OCSP revocation and UDDI requests caching. + +. dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache - limited number of cached values, no expiration, least frequently used values are removed from cache if it is overloaded. +Parameters: +maxSize - integer with maximum number of cached entries. + +. dk.gov.oiosi.common.cache.LeastRecentlyUsedQuantityCache - similar to LeastFrequentlyUsedQuantityCache, limited number of cached values, no expiration, but least recently used values are removed from cache if it is overloaded. +Parameters: +maxSize - integer with maximum number of cached entries. + +. dk.gov.oiosi.common.cache.ZeroCache - cache nothing, no parameters. + +Be aware, that CrlLookupCache is also configurable by additional parameter, which is not related to cache itself. + +It is parameter onFailureRetryIntervalMinutes, which defines, how often the system will try to reload CRL data in case if it failed to do it. +This parameter is used in case if during system startup there are network problems on host computer or at CRL server, so the system cannot load information about revoked certificates from given CRL source. +In case if it is first time the system tries to get it, all certificates will be considered as revoked. Attempts to get this list will be done with configured interval by parameter onFailureRetryIntervalMinutes. +If there are already some cached results for given CRL, the system will use these data, but will continue attempts to update them with configured interval by parameter onFailureRetryIntervalMinutes. +By default, this parameter has value 1 - so each 1 minute the system will try to update CRL data. + +In normal situation, next update date of CRL cached data is retrieved from actual CRL server response. +A scheduled job is created to run this update process in background - dk.gov.oiosi.security.revocation.crl.CrlCacheUpdateJob. + +To see details of CRL update, you can enable logging for CRLInstance class via log4j.xml (see examples in dk.gov.oiosi.library/test/src or dk.gov.oiosi.examples.service): + + + + + + + + + + + +In case of any problems with getting response from CRL server, log messages with level ERROR. + +== RASP version 1.2.3 hotfix 1 +The following bugs have been fixed since 1.2.3: +* Ability to handle all endpoint types defined by OIOUBL (GLN, CVR, etc.) + +== RASP version 1.2.3 +The following features are new or have changed since 1.2.1: + +.Non-breaking changes +* Updated the schematron style-sheets to the newest version. +* Added support for the Utility Statement document and profiles +* Updated Axis2, Mercury and Rampart with newest fixes. + +.Breaking changes + +No known issues. + +== RASP version 1.2.1 +The following features are new or have changed since 1.2.0: + +.Non-breaking changes + +* Updated the UDDI lookup so it can handle different conformance claims +* Updated the UDDI lookup so it’s possible to lookup all services that has been registered under a specific identifier. +* Examples have been split into client- and service-example projects. +* Updated to AXIS2 1.5.1 +* Added class TransportController that can be used to shut down the transport layer of AXIS. +* Mail configuration added to RASPConfiguration (only client side) +* HTTP endpoints can now receive any SOAP-action (like .Net) + + +.Breaking changes + +* Removed ArgumentException. Use IllegalArgumentException instead +* Removed NullArgumentException since it was copy of ArgumentNullException diff --git a/dk.gov.oiosi.library/doc/release-notes-2.0.x.adoc b/dk.gov.oiosi.library/doc/release-notes-2.0.x.adoc new file mode 100644 index 0000000000000000000000000000000000000000..12e722f4d9b7a748e65d615bcfa44083ff6c2a7e --- /dev/null +++ b/dk.gov.oiosi.library/doc/release-notes-2.0.x.adoc @@ -0,0 +1,89 @@ +[#rasp_2_0_0] +== RASP version 2.0.1 +Main purposes of this release have been: +* Fix problems found in the 2.0.0 version. + +=== New features +_None_ + +=== Fixes +* Having multiple RootCertificateLocation sections inside RootCertificateLocationCollection (in RaspConfiguration.xml), then only the last one was loaded [1277]. +* When using CRL as certificate validation, all certificates were considered invalid while no CRL data was present (e.g. during startup) [1202]. + +=== Changes +* LogFactory (org.apache.commons.logging) and Logger (org.apache.log4j) was used in a big mix. LogFactory is now the preferred logger in OIORASP, and should have been standardized [1279]. +* Misc. logging texts have been improved + some log levels. +* A few internal caches have been implemented to gain better performance. +* dk.gov.oiosi.Version moved to dk.gov.oiosi.configuration.Version + +=== Removals +* Classes EmployeeOcesX509Certificate, NoSubjectCvrNumberException, AmbigousSubjectCvrNumberException, InvalidOcesEmployeeCertificateException and ConfigurationRuntimeException removed (deprecated since 1.3.0) + +=== How to upgrade +How to upgrade project from OIORASP Java 2.0.0 to version 2.0.1 + +This file should be seen as a guide for migrating own code to OIORASP library 2.0.1 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps + +1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 + +2. Replace your old JAR file with the new (dk.gov.oiosi.library-2.0.1.xxxx.jar) + +That should be it..! + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk + + +== RASP version 2.0.0 +Main purposes of this release have been: +* Full support for Foces2 certificates. Foces1 is still supported in this version, BUT after June 2013 DanID will no longer issue Foces1 certificates. Renewal of Foces1 certificates will also not be possible after this date. + +The version number is changed to 2.0.0 to clearly indicate, that this version of RASP will not be able to communicate with any RASP 1.x software where one of the parties communicating has updated to Foces2. + +=== New features +_None_ + +=== Fixes +* Error messages for invalid certificate (before activation or after expire) has been updated to show certificate subject [1101]. +=== Changes +* LDAP URL changed in RaspConfiguration.xml (/Host) to crtdir.certifikat.dk [1054]. +* RASP library identifies itself by platform and version number when making Uddi Inquiry requests [1141]. + +=== Removals +_None_ + + +=== How to upgrade +How to upgrade project from Java 1.3.0 to version 2.0.0 + +This file should be seen as a guide for migrating own code to OIORASP library 2.0.0 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps + +1. Download new release from http://digitaliser.dk/group/405442/resources/type/150019 + +2. Replace your old JAR file with the new (dk.gov.oiosi.library-2.0.0.xxxx.jar) + +3. Update your RaspConfiguration.xml file - remember to adjust path to resources (schema + schematron files). + One thing has changed: /Host has changed to crtdir.certifikat.dk + +4. Remember to add the Oces2 root certificate to your KeyStore. Can be downloaded from + https://www.certifikat.dk/export/sites/dk.certifikat.oc/da/download/rodcertifikat.html + Alias for the certificate must start with the KeyLabel stated in RaspConfiguration.xml (see RootCertificateLocationCollection) + +5. Inside tag, add this line (as the first line): + dk.gov.oiosi.axis2.module.OioraspPolicyBasedResultsValidator + + For receivers it's in services.xml, and for senders it's in policy.xml + Reason: Default Axis2 class, which is used for certificate validation, supports only 2 level certificates, but FOCES2 certificates have 3 levels - + with intermediate certificate, which could have different CRL lookup URL then low level certificate. + + +That should be it..! + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk diff --git a/dk.gov.oiosi.library/doc/release-notes-2.1.x.adoc b/dk.gov.oiosi.library/doc/release-notes-2.1.x.adoc new file mode 100644 index 0000000000000000000000000000000000000000..050c48ea5a0dbc6cbf710b51295041f09d51b6ca --- /dev/null +++ b/dk.gov.oiosi.library/doc/release-notes-2.1.x.adoc @@ -0,0 +1,192 @@ +include::_common-settings.adoc[] + +[#rasp_2_1_0] +== RASP version 2.1.0 +Main purposes of this release have been: +* Update code to enable Peppol BIS documents in Danish Nemhandel. + +=== New features +* Support multiple schematron validations per document type. +* It is now possible to send a document, having a Sender part with other KeyType than the valid Danish receiver KeyTypes (to support Peppol received documents, having e.g. a SE:ORGNO as sender keytype). +* ConfigurationHandler#initEnvironment now check for presence of JCE. +* xpath parsing of values in RaspConfiguration has been updated, so it’s possible to set a fixed value instead of an xpath – eg. string(‘EAN’). +* RaspConfiguration: It now possible to set an empty string as value for to disable Schema validation for a single document type. +* saxon9he.jar must be added to project to be able to schematron validate Peppol files (because it uses XSLT 2). + +=== Fixes +* SchematronValidatorSAXHandlerConfig has been updated to allow dash (-) as part of an xpath (needed for DespatchAdvice xpath). +* An active UddiLookupResponse from NHR, having an expireTime later same date, was interpreted as expired [1530]. +* Minor fixes to logging and internal calls. + +=== Changes +* Misc. renaming of internal calls. +* In constructors for LookupParameters the acceptedTransportProtocols part can now be Null. +* In RaspConfiguration.xml it was previous the value in //DocumentTypeConfig/EndpointType/ProfileIdXPath that was used in RASP Java. This has been streamlined with .NET, so from now, the value must be located in //DocumentTypeConfig/ProfileIdXPath + +=== Removals +* Classes removed: ITimedCache, CertificateChecker, QuantityCache (deprecated since 1.3.0). +* Other deprecated methods removed. +* Removal of unused Exception classes. +* Useless EndpointAddressTypeCode removed (https, email, other) [1348]. +* Unused property UddiLookupResponse.termsOfUseUrl removed. +* Identifier subclasses removed, and main Identifier class refactored. +* Removed code internally for configuring mail/SMTP as transport. + + +=== How to upgrade +How to upgrade project from RASP Java 2.0.1 to version 2.1.0 + +This file should be seen as a guide for migrating own code to OIORASP library version 2.1.0 +The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps + +1. Download new release from https://digitaliser.dk/group/405442/resources + +2. File changes: + - Replace your old JAR file with the new (dk.gov.oiosi.library-2.1.0.xxxxx.jar) + - Remove smtpfault.mar + - Replace rasp*.mar with rasp-2.1.0.mar + - Add saxon9he.jar to project (to be able to work with xslt 2.0 files used in Peppol schematron files) + +3. RaspConfiguration.xml must be updated! + See RaspConfiguration-update-2.1.0.pdf + +4. Code updates: + +DocumentTypeConfig.getSchematronValidationConfig() is replaced by DocumentTypeConfig.getSchematronValidationConfigList() because Peppol +documents has multiple schematron files. +Wrap your normal use of DocumentTypeConfig.getSchematronValidationConfig() with: + for (SchematronValidationConfig schematronValidationConfig : documentTypeConfig.getSchematronValidationConfigList()) { + } + +MissingCredentialsException and other Exceptions has been removed - please use other suitable exception. + +Identifier.getKeyTypeValue() has been removed - please use Identifier.getType() now. + +enum EndpointAddressTypeCode has been cleaned for unusable values (https, email, ftp and other) + + +That should be it..! + + +It you meet problems, that should be included in this guide, please post your comments to the following email address: + support@nemhandel.dk + +=== NHR UDDI lookup URL’s +The purpose of this update is to change the Discovery lookup URL’s: +* Main: Make the DiscoveryBackup host name lookup route more robust +* Second: Phase out the binding to the gov.dk domain. +It is recommended to make the change as soon as possible. + +.UddiConfig + +In RaspConfiguration.xml, in the section identified by: +[source, xml] +/LookupRegistryFallbackConfig/PrioritizedRegistryList +today have values like: + +[source, xml] + + + http://discoverypublic.uddi.ehandel.gov.dk/uddi/services/inquiry + http://discoverybackup.uddi.ehandel.gov.dk/uddi/services/inquiry + + + +These values must be updated to: + +[source, xml] + + + http://discoverypublic.nemhandel.dk/uddi/services/inquiry + http://discoverybackup.nemhandel-backup.dk/uddi/services/inquiry + + + + +=== RaspConfiguration.xml update +The purpose of the RASP version 2.1.0 is to allow Peppol BIS documents to be exchanged via the Nemhandel infrastructure + remove trivial KeyType mappings. + +.DocumentType identification +Prior, a DocumentType was identified inside the using: + +[source] +urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 +Invoice + + + /root:Invoice/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + +By utilizing the existing , it is possible to discriminate the OIOUBL Invoice from the Peppol BIS Invoice. + +.Schematron validation +Prior, RASP only supported one Schematron/XSLT file per DocumentType using: + +In Peppol documents, multiple schematron files are provided per DocumentType. + +This section must therefore now be wrapped in a container class called : + +[source] + + + path/to/file/Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + +This allows for multiple elements. These elements are validated in the listed order. + +.KeyTypeMappingExpressions + +The Identifier KeyType inside each DocumentTypeConfig is now directly supported in the NHR UDDI Inquery interface. + +Therefore many of the old mappings inside //MappingExpressions/KeyTypeMappingExpressions/Mappings can be removed. Examples of standard mappings that should be removed now: + +[source] + + ean + ean + + + cvr + cvr + + + IBAN + iban + + +For backward compatibility when sending to RASP Java 2.0.x endpoints, 6 old mappings are essential to keep in relation to OIOUBL: + +[source] + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + +In general, the exchanged KeyType value must be one of the following: EAN/GLN, DK:CVR, DK:SE, DK:VANS, DK:P, IBAN, DUNS and DK:CPR. Depending on exchanged document types, other mappings might be needed in customer specific setups. diff --git a/dk.gov.oiosi.library/doc/release-notes-3.0.0.adoc b/dk.gov.oiosi.library/doc/release-notes-3.0.0.adoc new file mode 100644 index 0000000000000000000000000000000000000000..710a4377098bf2569d7d985c0297d00d65666300 --- /dev/null +++ b/dk.gov.oiosi.library/doc/release-notes-3.0.0.adoc @@ -0,0 +1,132 @@ +include::_common-settings.adoc[] + + +== OIORASP version 3.0.0 + +=== New features +* Configure the timeout for NHR UDDI requests. + +=== Fixes +* Fix bug related to timeout settings for LDAP-client [NH-675]. + +=== Changes +.Related to support for MitId (NH-675) +* The OIORASP Java library is now compiled using Java 8 (previous Java 6). +* Structure for LdapSettings in RaspConfiguration.xml is updated to be able to add new LDAP host for MitID certificates (NH-675). +* RaspConfiguration has been updated +* Element `SearchClientTimeoutMsec` in LdapSettings in RaspConfiguration.xml is renamed to `SocketTimeoutMsec`. +* BouncyCastle library has been updated to version 1.68 (from 1.47) (NH-757). + +.Other +* Saxon-HE library has been updated to version 10.3 (from 9) (NH-851). +* Improved error codes/messages (NH-801) +* Log4j library has been updated to version 2.14.1 (from 1.2.17). +* RaspConfiguration has been split into two different versions: +** RaspConfiguration (default) which contains OIOUBL and NKS document types. +** RaspConfiguration_Extended which contains OIOUBL, NKS and Peppol document types. + +=== Removals +* From ConfigurationSection `LdapSettings`, then elements `MaxResults` and `SearchServerTimeoutMsec` has been removed. This element is legacy and has not been used in several releases. If multiple results are found in LDAP response, then code cannot decide which to use, so exactly one result is the only solution. +* From ConfigurationSection `UddiConfig`, then element `FallbackTimeoutMinutes` has been removed. This element is legacy and has not been used in several releases [NH-793]. +* From ConfigurationSection `OcesX509CertificateConfig`, then elements PersonalCertificateSubjectKey and EmployeeCertificateSubjectKey has been removed. +* Class EndpointAddressHttp has been merged into the parent class EndpointAddress. + + +=== How to upgrade +How to upgrade project from OIORASP Java 2.1.0 to version 3.0.0. + +NOTE: The guide might not be 100% accurate, depending on your use of the library! Some steps might be unnecessary in your setup, and others might be as detailed as need in your setup! + +Steps: + +. Download new release from https://digitaliser.dk/group/405442/resources or https://nemhandel.dk/opdateringer-releases +. File changes: +* Replace your old JAR file with the new (dk.gov.oiosi.library-{versionNumberTagged}.jar) +* Replace BouncyCastle library files with new files version 1.68.jar +* Replace Saxon library file with new version (net.sf.saxon-Saxon-HE-10.3.jar). +* Replace log4j library files with new files (eg. log4j-core-2.14.1.jar + log4j-api-2.14.1.jar + log4j-jcl-2.14.1.jar). +* Migrate your current log4j.xml configuration to log4j2.xml format (see http://logging.apache.org/log4j/2.x/manual/migration.html section "Configuring Log4j 2"). +* In general the dependencies for OIORASP can be found in https://rep.erst.dk/git/openebusiness/library/java/-/blob/master/dk.gov.oiosi.library/ivy.xml + +. RaspConfiguration.xml must be updated! +* See <> section. + + + +That should be it...! + + +It you meet problems, that should be included in this guide, please post your comments to the following email address: +support@nemhandel.dk + + + +=== Configuration + +include::release-notes-raspconfiguration-3.0.0.adoc[] + +==== Mappings removal + +In OIORASP version 2.1.X a few mappings was needed for backwards compatibility. + +[source, xml] + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + +These mappings can be removed entirely from version 3.0.0. + +[source, xml] + + + + + +==== Timeout for NHR UDDI requests +The timeout value for NHR UDDI requests ca be configured in the RaspConfiguration.xml file, by adding the new element `UddiLookupTimeoutSeconds` inside each `Registry` segment in the ConfigurationSection `UddiConfig`: + +[source,xml] +---- +include::../RaspConfiguration.Live.xml[tag=config_UddiLookupTimeoutSeconds] +---- +<1> The new element. + +If element is not present, a default value of 120 seconds is used. + + +==== LdapSettings +New host and port elements are required for the MitID LDAP server, and it is required to be able to distinguish between NemID and MitID LDAP hosts. + +The current ConfigurationSection `LdapSettings` needs to be restructured to the following syntax: + +[source,xml] +---- +include::../RaspConfiguration.Live.xml[tag=config_LdapSettings] +---- +<1> The host and port elements must be wrapped in a `CertificateInfrastructure` element holding the id value `NemID` or `MitID`. +<2> The timeout values are configured globally for both LDAP hosts/Certificate Infrastructures. + +Both `CertificateInfrastructure` elements are mandatory. + + +==== Root certificates +The keystore containing root certificates (see ConfigurationSection `RootCertificateCollectionConfig` ) must be updated: Add the new MitID root certificate to the keystore. + +The new MitID root certificates can be downloaded here: + +- PROD: http://ca1.gov.dk/oces/root/cacert/root.cer (not active until Q4 2021) +- TEST: http://ca1.cti-gov.dk/oces/root/cacert/root.cer + +Remember the label/prefix used in the keystore (defined using `KeyLabel`). diff --git a/dk.gov.oiosi.library/doc/release-notes-raspconfiguration-2.1.x.adoc b/dk.gov.oiosi.library/doc/release-notes-raspconfiguration-2.1.x.adoc new file mode 100644 index 0000000000000000000000000000000000000000..4a96f54e0e095fc86d97e8c249518b97edfaa1ef --- /dev/null +++ b/dk.gov.oiosi.library/doc/release-notes-raspconfiguration-2.1.x.adoc @@ -0,0 +1,1060 @@ +include::_common-settings.adoc[] + +==== RaspConfiguration.xml (OIORASP 2.1.0) + +===== Changes from 2.0.X to 2.1.0 + +OIORASP 2.1.0 now allow Peppol BIS documents to be exchanged via the Nemhandel infrastructure. +Further more KeyType mappings has been deprecated, as the NHR Uddi Inquiry now directly supports the KeyType inside each DocumentTypeConfig. + +For backwards compatibility when sending to RASP Java 2.0.X endpoints, 6 old mappings are essential to +keep in relation to OIOUBL. + +.DocumentTypeConfig (2.1.0 mapping example) +[source, xml] + + 56c73b32-e1ba-4dc4-9fde-f08f4424fe2c + Faktura v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + Invoice + uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 + Resources/Schemas/OIOXML_v0.7/piestrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + * + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + /schematron/error + /schematron/error + + + + + + + +.DocumentType identification +Prior, a DocumentType was identified inside the using: + +[source, xml] +urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + +By utilizing the existing , it is possible to discriminate the OIOUBL Invoice +from the Peppol BIS Invoice. + +.Schematron validation +Prior, RASP only supported one Schematron/XSLT file per DocumentType using: + +[source, xml] + + path/to/file/Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + +In Peppol documents, multiple schematron files are provided per DocumentType. +This section must therefore now be wrapped in a container class called : +[source, xml] + + + path/to/file/Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + This allows for multiple elements. These elements are validated in the + listed order. + +==== New Peppol DocumentTypeConfig + +.Peppol Catalogue +[source, xml] + + 24750a44-9a18-46f4-85ef-50f00c90068b + Katalog (Peppol) + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + + + /root:Catalogue/cbc:CustomizationID + urn:www.cenbii.eu:transaction:biitrns019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver4.0 + + + uddi:6c917ef1-5143-4123-879a-471215dbd373 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Catalogue-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCataloguRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePeppol1aInterface/SubmitCatalogueResponse + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T19.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppolCORE-UBL-T19.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppol-UBL-T19.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:Catalogue/cbc:ProfileID + + + /root:Catalogue/cbc:ID + + + +.Peppol Application response +[source, xml] + + 551e8437-f543-46cf-bd56-492a25e723fc + Applikationsmeddelse (Peppol) + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + + + /root:ApplicationResponse/cbc:CustomizationID + urn:www.cenbii.eu:transaction:biitrns058:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 + + + uddi:e79dd402-8f60-4811-9f59-1acb0c036d05 + Resources/Schemas/UBL_v2.1/maindoc/UBL-ApplicationResponse-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/ApplicationResponseHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponsePeppol1aInterface/SubmitApplicationResponseResponse + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/BIIRULES-UBL-T58.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppolCORE-UBL-T58.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-catalogue1a/XSLT/OPENPeppol-UBL-T58.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + /root:ApplicationResponse/cbc:ID + + + +.Peppol Credit note +[source, xml] + + 21671b33-58a2-4ab5-96bd-42f6c4f22af6 + Kreditnota (Peppol) + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + + + /root:CreditNote/cbc:CustomizationID + urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0 + + + uddi:4db3f358-6184-4979-bbc9-5d65aee27132 + Resources/Schemas/UBL_v2.1/maindoc/UBL-CreditNote-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/CreditNoteHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNotePeppol5aInterface/SubmitCreditNoteResponse + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:CreditNote/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:CreditNote/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/Peppol/BIS2.0-billing5a/XSLT/BIIRULES-UBL-T14.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-billing5a/XSLT/OPENPeppolCORE-UBL-T14.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-billing5a/XSLT/OPENPeppol-UBL-T14.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:CreditNote/cbc:ProfileID + + + /root:CreditNote/cbc:ID + + + +.Peppol Despatch advice +[source, xml] + + 9e8b18e5-416e-4c41-9b9f-adadc3de6598 + Forsendelsesadvis + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + DespatchAdvice + + + /root:DespatchAdvice/cbc:CustomizationID + urn:www.cenbii.eu:transaction:biitrns016:ver1.0:extended:urn:www.peppol.eu:bis:peppol30a:ver1.0 + + + uddi:96dbec86-aa58-4f1e-ae03-ebb13079ce61 + Resources/Schemas/UBL_v2.1/maindoc/UBL-DespatchAdvice-2.1.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2014/09/15/DespatchAdvice10Interface/SubmitDespatchAdviceResponse + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:DespatchAdvice/cac:DespatchSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/Peppol/BIS2.0-despatchadvice30a/XSLT/BIIRULES-UBL-T16.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-despatchadvice30a/XSLT/OPENPeppolCORE-UBL-T16.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-despatchadvice30a/XSLT/OPENPeppol-UBL-T16.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:DespatchAdvice/cbc:ProfileID + + + /root:DespatchAdvice/cbc:ID + + + +.Peppol Invoice +[source, xml] + + c1061668-0549-452c-b0cb-7d6428fdc5f7 + Faktura (Peppol) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol4a:ver2.0 + + + uddi:e956ca42-0be2-487a-8573-580b523c248d + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/Peppol/BIS2.0-invoice4a/XSLT/BIIRULES-UBL-T10.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-invoice4a/XSLT/OPENPeppolCORE-UBL-T10.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-invoice4a/XSLT/OPENPeppol-UBL-T10.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + + + +.Peppol ORDER +[source, xml] + + db2f9050-2adb-49c2-8f05-af9e440d12ca + Ordre (Peppol) + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + + + /root:Order/cbc:CustomizationID + urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol3a:ver2.0 + + + uddi:873c25f6-23d2-4019-830e-89cc89386930 + Resources/Schemas/UBL_v2.1/maindoc/UBL-Order-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/OrderHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderRequest + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderPeppol3aInterface/SubmitOrderResponse + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/Peppol/BIS2.0-order3a/XSLT/BIIRULES-UBL-T01.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-order3a/XSLT/OPENPeppolCORE-UBL-T01.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS2.0-order3a/XSLT/OPENPeppol-UBL-T01.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:Order/cbc:ProfileID + + + /root:Order/cbc:ID + + + +.Peppol BIS Billing + +[source, xml] + + bab5613e-6360-4e84-84a3-61838a77590c + Faktura (Peppol BIS Billing) + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + + + /root:Invoice/cbc:CustomizationID + + urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 + + + + uddi:678befa8-ae31-437a-8e52-1139162698df + Resources/Schemas/UBL_v2.1/maindoc/UBL-Invoice-2.1.xsd + Resources/UI/OIOUBL/Stylesheets/InvoiceHTML.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/InvoicePeppol4aInterface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + + GLN + ean + + + DK:CVR + cvr + + + DK:CPR + cpr + + + + + + + + + + Resources/Schematrons/Peppol/BIS3.0-Billing/CEN-EN16931-UBL.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + Resources/Schematrons/Peppol/BIS3.0-Billing/Peppol-EN16931-UBL.xsl + /svrl:schematron-output/svrl:failed-assert[@flag='fatal'] + /svrl:schematron-output/svrl:failed-assert[@flag='fatal']/svrl:text + + + + + + + /root:Invoice/cbc:ProfileID + + + /root:Invoice/cbc:ID + + diff --git a/dk.gov.oiosi.library/doc/release-notes-raspconfiguration-3.0.0.adoc b/dk.gov.oiosi.library/doc/release-notes-raspconfiguration-3.0.0.adoc new file mode 100644 index 0000000000000000000000000000000000000000..bd9cb2525fb091cd2c0ea1e3c0ff5f0cf657669b --- /dev/null +++ b/dk.gov.oiosi.library/doc/release-notes-raspconfiguration-3.0.0.adoc @@ -0,0 +1,163 @@ +include::_common-settings.adoc[] + +==== RaspConfiguration.xml (OIORASP 3.0.0) + +===== Changes from 2.1.0 to 3.0.0 +As OIORASP version 3.0.0 is not backwards compatible with earlier versions of OIORASP, the legacy mappings for 2.0.1 backwards compatibility has now been removed. + +The RaspConfiguration has been split into two versions. A default containing the OIOUBL document types, and an extended version with both OIOUBL and Peppol document types. + +[cols="1,1", option="header"] +|=== +|File name +|Document types + +|RaspConfiguration +| +Faktura v0.7 + +Kreditnota v0.7 + +Applikationsmeddelelse + +Katalog + +Katalogforespørgsel + +Opdatering af katalogelement + +Opdatering af katalogpriser + +Sletning af katalog + +Kreditnota + +Faktura + +Ordre + +Ordreannullering + +Ordrebekræftelse + +Ordreændring + +Simpel ordrebekræftelse + +Rykker + +Kontoudtog + +Forsyningsspecifikation + +Forsendelsesadvis + +NKS Betalings Ordre + +NKS Kvittering 0 + +NKS Kvittering 1 + +NKS Retursvar 2 + +NKS Retursvar 5 + +NKS Retursvar 7 + +NKS Retursvar 8 + +NKS Retursvar 9 + +NKS PU Request + +NKS PU Response + + +|RaspConfiguration_Extended +| +Faktura v0.7 + +Kreditnota v0.7 + +Applikationsmeddelelse + +Katalog + +Katalogforespørgsel + +Opdatering af katalogelement + +Opdatering af katalogpriser + +Sletning af katalog + +Kreditnota + +Faktura + +Ordre + +Ordreannullering + +Ordrebekræftelse + +Ordreændring + +Simpel ordrebekræftelse + +Rykker + +Kontoudtog + +Forsyningsspecifikation + +Forsendelsesadvis + +NKS Betalings Ordre + +NKS Kvittering 0 + +NKS Kvittering 1 + +NKS Retursvar 2 + +NKS Retursvar 5 + +NKS Retursvar 7 + +NKS Retursvar 8 + +NKS Retursvar 9 + +NKS PU Request + +NKS PU Response + +*Katalog (Peppol)* + +*Applikationsmeddelelse (Peppol)* + +*Kreditnota (Peppol)* + +*Faktura (Peppol)* + +*Ordre (Peppol)* + +*Faktura (Peppol BIS Billing)* + +|=== + +.DocumentTypeConfig (Removed mappings example) + +[source, xml] + + 5a15a880-eef8-40c0-80f2-bb65226f50c2 + Faktura v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + Invoice + + uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 + Resources/Schemas/OIOXML_v0.7/pieStrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + /schematron/error + /schematron/error + + + + + + + string('OIOXML elektronisk handel') + + + /root:Invoice/com:ID + + diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/Horingsnotat.pdf b/dk.gov.oiosi.library/doc/tech-doc/Horingsnotat.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIORASP-doc/Horingsnotat.pdf rename to dk.gov.oiosi.library/doc/tech-doc/Horingsnotat.pdf diff --git a/dk.gov.oiosi.library/doc/OIOSI RASP-example-TCP-SOAP-dump.docx b/dk.gov.oiosi.library/doc/tech-doc/OIOSI RASP-example-TCP-SOAP-dump.docx similarity index 100% rename from dk.gov.oiosi.library/doc/OIOSI RASP-example-TCP-SOAP-dump.docx rename to dk.gov.oiosi.library/doc/tech-doc/OIOSI RASP-example-TCP-SOAP-dump.docx diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/OIOSMI_OIO_UDDI_Profile_version_1.1.pdf b/dk.gov.oiosi.library/doc/tech-doc/OIOSMI_OIO_UDDI_Profile_version_1.1.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIORASP-doc/OIOSMI_OIO_UDDI_Profile_version_1.1.pdf rename to dk.gov.oiosi.library/doc/tech-doc/OIOSMI_OIO_UDDI_Profile_version_1.1.pdf diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/OIO_Basic_Security_Profile_version_1 1.pdf b/dk.gov.oiosi.library/doc/tech-doc/OIO_Basic_Security_Profile_version_1 1.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIORASP-doc/OIO_Basic_Security_Profile_version_1 1.pdf rename to dk.gov.oiosi.library/doc/tech-doc/OIO_Basic_Security_Profile_version_1 1.pdf diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/OIO_Reliable_Asynchronous_Secure_Profile_1.2.pdf b/dk.gov.oiosi.library/doc/tech-doc/OIO_Reliable_Asynchronous_Secure_Profile_1.2.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIORASP-doc/OIO_Reliable_Asynchronous_Secure_Profile_1.2.pdf rename to dk.gov.oiosi.library/doc/tech-doc/OIO_Reliable_Asynchronous_Secure_Profile_1.2.pdf diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/OIO_Reliable_Messaging_Profile_1 1.pdf b/dk.gov.oiosi.library/doc/tech-doc/OIO_Reliable_Messaging_Profile_1 1.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIORASP-doc/OIO_Reliable_Messaging_Profile_1 1.pdf rename to dk.gov.oiosi.library/doc/tech-doc/OIO_Reliable_Messaging_Profile_1 1.pdf diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/Vejledning_om_signatur-_og_systembeviser.pdf b/dk.gov.oiosi.library/doc/tech-doc/Vejledning_om_signatur-_og_systembeviser.pdf similarity index 100% rename from dk.gov.oiosi.library/doc/OIORASP-doc/Vejledning_om_signatur-_og_systembeviser.pdf rename to dk.gov.oiosi.library/doc/tech-doc/Vejledning_om_signatur-_og_systembeviser.pdf diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/find_service_soap_request.xml b/dk.gov.oiosi.library/doc/tech-doc/find_service_soap_request.xml similarity index 98% rename from dk.gov.oiosi.library/doc/OIORASP-doc/find_service_soap_request.xml rename to dk.gov.oiosi.library/doc/tech-doc/find_service_soap_request.xml index 5b9ea226004332cc5923115802afefda18f7446b..4385711b0b25abf226263f5cbee2c59ab5ca7b04 100644 --- a/dk.gov.oiosi.library/doc/OIORASP-doc/find_service_soap_request.xml +++ b/dk.gov.oiosi.library/doc/tech-doc/find_service_soap_request.xml @@ -1,37 +1,37 @@ - - - - - 10c24755-d287-4f9a-8d00-122014245c90 - - - - - - andAllKeys - - - - - - - - - uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 - - - - + + + + + 10c24755-d287-4f9a-8d00-122014245c90 + + + + + + andAllKeys + + + + + + + + + uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 + + + + diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/find_service_soap_response.xml b/dk.gov.oiosi.library/doc/tech-doc/find_service_soap_response.xml similarity index 97% rename from dk.gov.oiosi.library/doc/OIORASP-doc/find_service_soap_response.xml rename to dk.gov.oiosi.library/doc/tech-doc/find_service_soap_response.xml index c9f2bb0f1ca551f600513d7cdde9c3a022487214..757f22f2ee8145b0494b5d4193bf1ccc8bdf7648 100644 --- a/dk.gov.oiosi.library/doc/OIORASP-doc/find_service_soap_response.xml +++ b/dk.gov.oiosi.library/doc/tech-doc/find_service_soap_response.xml @@ -1,20 +1,20 @@ - - - - - - - 1 - 1 - 1 - - - - 5798009811578 Invoice service - - - - - + + + + + + + 1 + 1 + 1 + + + + 5798009811578 Invoice service + + + + + diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/get_serviceDetail_soap_request.xml b/dk.gov.oiosi.library/doc/tech-doc/get_serviceDetail_soap_request.xml similarity index 97% rename from dk.gov.oiosi.library/doc/OIORASP-doc/get_serviceDetail_soap_request.xml rename to dk.gov.oiosi.library/doc/tech-doc/get_serviceDetail_soap_request.xml index 2c15e1a4041002571d721f9e8eaf0933f3c341da..236260e7ddb02d1d536194512033e9187f7d7987 100644 --- a/dk.gov.oiosi.library/doc/OIORASP-doc/get_serviceDetail_soap_request.xml +++ b/dk.gov.oiosi.library/doc/tech-doc/get_serviceDetail_soap_request.xml @@ -1,14 +1,14 @@ - - - - - 8c4dc387-f8cf-4606-8dd5-577f814767e1 - - - - - uddi:0ba2e120-6d62-11de-a98f-77bb1111a97f - - - + + + + + 8c4dc387-f8cf-4606-8dd5-577f814767e1 + + + + + uddi:0ba2e120-6d62-11de-a98f-77bb1111a97f + + + diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/get_serviceDetail_soap_response.xml b/dk.gov.oiosi.library/doc/tech-doc/get_serviceDetail_soap_response.xml similarity index 98% rename from dk.gov.oiosi.library/doc/OIORASP-doc/get_serviceDetail_soap_response.xml rename to dk.gov.oiosi.library/doc/tech-doc/get_serviceDetail_soap_response.xml index 461a77bcc3adbcdace0e8ebcd5b31316cafaea88..61973a33c170a857815b834c173b7b25bf5569f2 100644 --- a/dk.gov.oiosi.library/doc/OIORASP-doc/get_serviceDetail_soap_response.xml +++ b/dk.gov.oiosi.library/doc/tech-doc/get_serviceDetail_soap_response.xml @@ -1,94 +1,94 @@ - - - - - - - 5798009811578 Invoice service - Invoice service med test certifikat - - - http://test.ehandel.gov.dk/TestEndpoint/OiosiOmniEndpointA.svc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + 5798009811578 Invoice service + Invoice service med test certifikat + + + http://test.ehandel.gov.dk/TestEndpoint/OiosiOmniEndpointA.svc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/get_tModelDetail_soap_request.xml b/dk.gov.oiosi.library/doc/tech-doc/get_tModelDetail_soap_request.xml similarity index 97% rename from dk.gov.oiosi.library/doc/OIORASP-doc/get_tModelDetail_soap_request.xml rename to dk.gov.oiosi.library/doc/tech-doc/get_tModelDetail_soap_request.xml index ede40e2e099d9bee7a7c33be4d5bf5ba62844a1d..4e884bdfe9ed8451819c733fc8060881b9a44310 100644 --- a/dk.gov.oiosi.library/doc/OIORASP-doc/get_tModelDetail_soap_request.xml +++ b/dk.gov.oiosi.library/doc/tech-doc/get_tModelDetail_soap_request.xml @@ -1,17 +1,17 @@ - - - - - 25f82ff5-916d-437b-a451-14836775986d - - - - - uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 - uddi:ee073296-bbc8-4d8f-8f27-841c26857d47 - uddi:f4c46f00-1146-11dd-a56f-32872391a563 - uddi:f9d2af20-1146-11dd-a56f-32872391a563 - - - + + + + + 25f82ff5-916d-437b-a451-14836775986d + + + + + uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 + uddi:ee073296-bbc8-4d8f-8f27-841c26857d47 + uddi:f4c46f00-1146-11dd-a56f-32872391a563 + uddi:f9d2af20-1146-11dd-a56f-32872391a563 + + + diff --git a/dk.gov.oiosi.library/doc/OIORASP-doc/get_tModelDetail_soap_response.xml b/dk.gov.oiosi.library/doc/tech-doc/get_tModelDetail_soap_response.xml similarity index 98% rename from dk.gov.oiosi.library/doc/OIORASP-doc/get_tModelDetail_soap_response.xml rename to dk.gov.oiosi.library/doc/tech-doc/get_tModelDetail_soap_response.xml index 020f4af147f289cb23b460b182e73d6a7b02a1e0..fbb2f6ec0a26fde8af352c80656793b81b7e6841 100644 --- a/dk.gov.oiosi.library/doc/OIORASP-doc/get_tModelDetail_soap_response.xml +++ b/dk.gov.oiosi.library/doc/tech-doc/get_tModelDetail_soap_response.xml @@ -1,149 +1,149 @@ - - - - - - - Invoice service - NIST definition of the service interface for handling UBL Invoice messages. - - - - - - - - - - - - - Invoice service http binding - NIST definition of the service interface http binding for handling UBL - Invoice messages. - - - - - - - - - - - - Procurement-OrdAdv-BilSim-1.0 SellerParty - Avanceret ordre til simpel faktura som understøtter den avancerede - ordreproces og den simple faktureringsproces. Med ordre, ordreændring, ordresletning og - ordrebekræftelse samt faktura, kreditnotaer og rykkere... - - - - - - - - - - - - urn:www.nesubl.eu:profiles:profile5:ver2.0 - BuyerParty - Basal fakturering uden forudgående ordre. Der udveksles faktura og - kreditnota (køber rollen). Anvendes når der skal sendes en OIOUBL faktura til en offentlig - modtager, som stadig kører OIOXML (den nedkonverteres undervejs) - - - - - - - - - - - - - + + + + + + + Invoice service + NIST definition of the service interface for handling UBL Invoice messages. + + + + + + + + + + + + + Invoice service http binding + NIST definition of the service interface http binding for handling UBL + Invoice messages. + + + + + + + + + + + + Procurement-OrdAdv-BilSim-1.0 SellerParty + Avanceret ordre til simpel faktura som understøtter den avancerede + ordreproces og den simple faktureringsproces. Med ordre, ordreændring, ordresletning og + ordrebekræftelse samt faktura, kreditnotaer og rykkere... + + + + + + + + + + + + urn:www.nesubl.eu:profiles:profile5:ver2.0 + BuyerParty + Basal fakturering uden forudgående ordre. Der udveksles faktura og + kreditnota (køber rollen). Anvendes når der skal sendes en OIOUBL faktura til en offentlig + modtager, som stadig kører OIOXML (den nedkonverteres undervejs) + + + + + + + + + + + + + diff --git a/dk.gov.oiosi.library/etc/ivy/ivy-maven2-ivyconf.xml b/dk.gov.oiosi.library/etc/ivy/ivy-maven2-ivyconf.xml new file mode 100644 index 0000000000000000000000000000000000000000..df7b81ca9e8c4c1cfef39d4aca4609de00f26dcd --- /dev/null +++ b/dk.gov.oiosi.library/etc/ivy/ivy-maven2-ivyconf.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + diff --git a/dk.gov.oiosi.library/etc/ivy/ivyconf-default-chain.xml b/dk.gov.oiosi.library/etc/ivy/ivyconf-default-chain.xml new file mode 100644 index 0000000000000000000000000000000000000000..2118c93854098818e814856cc3ddc324f3c70385 --- /dev/null +++ b/dk.gov.oiosi.library/etc/ivy/ivyconf-default-chain.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.library/etc/ivy/ivyconf-local.xml b/dk.gov.oiosi.library/etc/ivy/ivyconf-local.xml new file mode 100644 index 0000000000000000000000000000000000000000..7c0ef170eba27db4323f80f8607b95542a010e8f --- /dev/null +++ b/dk.gov.oiosi.library/etc/ivy/ivyconf-local.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.library/etc/ivy/ivyconf-main-chain.xml b/dk.gov.oiosi.library/etc/ivy/ivyconf-main-chain.xml new file mode 100644 index 0000000000000000000000000000000000000000..e882da18fdc8041cb5fa932c2d6631a615b1a6b2 --- /dev/null +++ b/dk.gov.oiosi.library/etc/ivy/ivyconf-main-chain.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/dk.gov.oiosi.library/etc/ivy/ivyconf-shared.xml b/dk.gov.oiosi.library/etc/ivy/ivyconf-shared.xml new file mode 100644 index 0000000000000000000000000000000000000000..e2e457c792f9523764aa69b18dd436dec000fd66 --- /dev/null +++ b/dk.gov.oiosi.library/etc/ivy/ivyconf-shared.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/dk.gov.oiosi.library/etc/ivy/lib/ivy/ivy-2.4.0.jar b/dk.gov.oiosi.library/etc/ivy/lib/ivy/ivy-2.4.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..14ff88e260188705f55608e6386ce3a1408beaeb Binary files /dev/null and b/dk.gov.oiosi.library/etc/ivy/lib/ivy/ivy-2.4.0.jar differ diff --git a/dk.gov.oiosi.library/ivy.xml b/dk.gov.oiosi.library/ivy.xml new file mode 100644 index 0000000000000000000000000000000000000000..06e1e987f48e18f7782018c68c570c303e21b640 --- /dev/null +++ b/dk.gov.oiosi.library/ivy.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dk.gov.oiosi.library/lib/apache_commons/commons-collections-3.2.1.jar b/dk.gov.oiosi.library/lib/apache_commons/commons-collections-3.2.1.jar deleted file mode 100644 index c35fa1fee145cba638884e41b80a401cbe4924ef..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/apache_commons/commons-collections-3.2.1.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/apache_commons/commons-configuration-1.6.jar b/dk.gov.oiosi.library/lib/apache_commons/commons-configuration-1.6.jar deleted file mode 100644 index 2d4689a1b8c498e765c5be31fbc96d97b774a55f..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/apache_commons/commons-configuration-1.6.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/apache_commons/commons-jxpath-1.3.jar b/dk.gov.oiosi.library/lib/apache_commons/commons-jxpath-1.3.jar deleted file mode 100644 index e344a1e66d83ce608928a1e5e01dacfbc6270ab0..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/apache_commons/commons-jxpath-1.3.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/apache_commons/commons-lang-2.4.jar b/dk.gov.oiosi.library/lib/apache_commons/commons-lang-2.4.jar deleted file mode 100644 index 532939ecab6b77ccb77af3635c55ff9752b70ab7..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/apache_commons/commons-lang-2.4.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/activation-1.1.jar b/dk.gov.oiosi.library/lib/axis2/core/activation-1.1.jar deleted file mode 100644 index 66d290ee45549ce92b9e78a854a77195361f547f..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/activation-1.1.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/activation-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/activation-LICENSE.txt deleted file mode 100644 index 55ce20ab1425623bc8b6b14d6f74c702eaa82609..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/activation-LICENSE.txt +++ /dev/null @@ -1,119 +0,0 @@ -COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 - -1. Definitions. - -1.1. Contributor means each individual or entity that creates or contributes to the creation of Modifications. - -1.2. Contributor Version means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor. - -1.3. Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof. - -1.4. Executable means the Covered Software in any form other than Source Code. - -1.5. Initial Developer means the individual or entity that first makes Original Software available under this License. - -1.6. Larger Work means a work which combines Covered Software or portions thereof with code not governed by the terms of this License. - -1.7. License means this document. - -1.8. Licensable means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. - -1.9. Modifications means the Source Code and Executable form of any of the following: - -A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications; - -B. Any new file that contains any part of the Original Software or previous Modification; or - -C. Any new file that is contributed or otherwise made available under the terms of this License. - -1.10. Original Software means the Source Code and Executable form of computer software code that is originally released under this License. - -1.11. Patent Claims means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. - -1.12. Source Code means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code. - -1.13. You (or Your) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, You includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, control means (a)�the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b)�ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. - -2. License Grants. - -2.1. The Initial Developer Grant. -Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license: -(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and -(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof). -(c) The licenses granted in Sections�2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License. -(d) Notwithstanding Section�2.1(b) above, no patent license is granted: (1)�for code that You delete from the Original Software, or (2)�for infringements caused by: (i)�the modification of the Original Software, or (ii)�the combination of the Original Software with other software or devices. - -2.2. Contributor Grant. -Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: -(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and -(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1)�Modifications made by that Contributor (or portions thereof); and (2)�the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). -(c) The licenses granted in Sections�2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party. -(d) Notwithstanding Section�2.2(b) above, no patent license is granted: (1)�for any code that Contributor has deleted from the Contributor Version; (2)�for infringements caused by: (i)�third party modifications of Contributor Version, or (ii)�the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3)�under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor. - -3. Distribution Obligations. - -3.1. Availability of Source Code. - -Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange. - -3.2. Modifications. - -The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License. - -3.3. Required Notices. -You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer. - -3.4. Application of Additional Terms. -You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. - -3.5. Distribution of Executable Versions. -You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipients rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. - -3.6. Larger Works. -You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software. - -4. Versions of the License. - -4.1. New Versions. -Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License. - -4.2. Effect of New Versions. - -You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward. -4.3. Modified Versions. - -When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a)�rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b)�otherwise make it clear that the license contains terms which differ from this License. - -5. DISCLAIMER OF WARRANTY. - -COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -6. TERMINATION. - -6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. - -6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as Participant) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections�2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant. - -6.3. In the event of termination under Sections�6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination. - -7. LIMITATION OF LIABILITY. - -UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTYS NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - -8. U.S. GOVERNMENT END USERS. - -The Covered Software is a commercial item, as that term is defined in 48�C.F.R.�2.101 (Oct. 1995), consisting of commercial computer software (as that term is defined at 48 C.F.R. �252.227-7014(a)(1)) and commercial computer software documentation as such terms are used in 48�C.F.R.�12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License. - -9. MISCELLANEOUS. - -This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdictions conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software. - -10. RESPONSIBILITY FOR CLAIMS. - -As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. - -NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) -The GlassFish code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California. - - - diff --git a/dk.gov.oiosi.library/lib/axis2/core/annogen-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/annogen-LICENSE.txt deleted file mode 100644 index fef8c29fe0ffed934a19ef1d235e5c1b6ea051fe..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/annogen-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-codec-1.3.jar b/dk.gov.oiosi.library/lib/axis2/core/commons-codec-1.3.jar deleted file mode 100644 index 957b6752af9a60c1bb2a4f65db0e90e5ce00f521..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/commons-codec-1.3.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-codec-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/commons-codec-LICENSE.txt deleted file mode 100644 index fef8c29fe0ffed934a19ef1d235e5c1b6ea051fe..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/commons-codec-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-fileupload-1.2.jar b/dk.gov.oiosi.library/lib/axis2/core/commons-fileupload-1.2.jar deleted file mode 100644 index 12539f5edb014def00aefbf56e22a2509c641c56..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/commons-fileupload-1.2.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-fileupload-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/commons-fileupload-LICENSE.txt deleted file mode 100644 index fef8c29fe0ffed934a19ef1d235e5c1b6ea051fe..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/commons-fileupload-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-io-1.4.jar b/dk.gov.oiosi.library/lib/axis2/core/commons-io-1.4.jar deleted file mode 100644 index 133dc6cb35f5ca2c5920fd0933a557c2def88680..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/commons-io-1.4.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-io-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/commons-io-LICENSE.txt deleted file mode 100644 index 6b0b1270ff0ca8f03867efcd09ba6ddb6392b1e1..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/commons-io-LICENSE.txt +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-logging-1.1.1.jar b/dk.gov.oiosi.library/lib/axis2/core/commons-logging-1.1.1.jar deleted file mode 100644 index 1deef144cb17ed2c11c6cdcdcb2d9530fa8d0b47..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/commons-logging-1.1.1.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/commons-logging-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/commons-logging-LICENSE.txt deleted file mode 100644 index 6b0b1270ff0ca8f03867efcd09ba6ddb6392b1e1..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/commons-logging-LICENSE.txt +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/geronimo-stax-api-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/geronimo-stax-api-LICENSE.txt deleted file mode 100644 index 6b0b1270ff0ca8f03867efcd09ba6ddb6392b1e1..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/geronimo-stax-api-LICENSE.txt +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/geronimo-stax-api_1.0_spec-1.0.1.jar b/dk.gov.oiosi.library/lib/axis2/core/geronimo-stax-api_1.0_spec-1.0.1.jar deleted file mode 100644 index ab1ee3ba605df11b3075677c808d092845dad123..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/geronimo-stax-api_1.0_spec-1.0.1.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/httpcore-4.0.jar b/dk.gov.oiosi.library/lib/axis2/core/httpcore-4.0.jar deleted file mode 100644 index 37eb7d4d2b9e42570fa5cd471c16144be93c72f4..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/httpcore-4.0.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/httpcore-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/httpcore-LICENSE.txt deleted file mode 100644 index fef8c29fe0ffed934a19ef1d235e5c1b6ea051fe..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/httpcore-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/jaxen-1.1.1.jar b/dk.gov.oiosi.library/lib/axis2/core/jaxen-1.1.1.jar deleted file mode 100644 index b63363113f53cf145abcaa6cc44057cf13ae4f72..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/jaxen-1.1.1.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/jaxen-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/jaxen-LICENSE.txt deleted file mode 100644 index 6c2e5a326abebd307e60807be1f5ad632c0f93d7..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/jaxen-LICENSE.txt +++ /dev/null @@ -1,33 +0,0 @@ -/* - $Id: LICENSE.txt,v 1.5 2006/02/05 21:49:04 elharo Exp $ - - Copyright 2003-2006 The Werken Company. All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of the Jaxen Project nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - */ \ No newline at end of file diff --git a/dk.gov.oiosi.library/lib/axis2/core/log4j-1.2.17.jar b/dk.gov.oiosi.library/lib/axis2/core/log4j-1.2.17.jar deleted file mode 100644 index 068867ebfd231db09a7775794eea8127420380ed..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/log4j-1.2.17.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/log4j-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/log4j-LICENSE.txt deleted file mode 100644 index 57bc88a15a0ee8266c259b2667e64608d3f7e292..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/log4j-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/saxon9he.jar b/dk.gov.oiosi.library/lib/axis2/core/saxon9he.jar deleted file mode 100644 index ebc2d29d3e1f715da5b763949d7199a30d0fdced..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/saxon9he.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/xalan-2.7.0.jar b/dk.gov.oiosi.library/lib/axis2/core/xalan-2.7.0.jar deleted file mode 100644 index 007be3960a2cbd4a5b7470495f3fd6521fca902b..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/xalan-2.7.0.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/xalan-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/xalan-LICENSE.txt deleted file mode 100644 index fef8c29fe0ffed934a19ef1d235e5c1b6ea051fe..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/xalan-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/xercesImpl-2.6.2.jar b/dk.gov.oiosi.library/lib/axis2/core/xercesImpl-2.6.2.jar deleted file mode 100644 index f0fb0e89bf77b1c8a6698cc6e4b372da1747fb4f..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/xercesImpl-2.6.2.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/xercesImpl-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/xercesImpl-LICENSE.txt deleted file mode 100644 index fef8c29fe0ffed934a19ef1d235e5c1b6ea051fe..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/xercesImpl-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/xml-apis-1.3.02.jar b/dk.gov.oiosi.library/lib/axis2/core/xml-apis-1.3.02.jar deleted file mode 100644 index 243eaeaeb230dc765c0a9de0207c80430c5092c8..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/xml-apis-1.3.02.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/xml-apis-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/xml-apis-LICENSE.txt deleted file mode 100644 index 57bc88a15a0ee8266c259b2667e64608d3f7e292..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/xml-apis-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/axis2/core/xml-resolver-1.2.jar b/dk.gov.oiosi.library/lib/axis2/core/xml-resolver-1.2.jar deleted file mode 100644 index e535bdc073355b300614041be473988c3a6c8624..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/axis2/core/xml-resolver-1.2.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/axis2/core/xml-resolver-LICENSE.txt b/dk.gov.oiosi.library/lib/axis2/core/xml-resolver-LICENSE.txt deleted file mode 100644 index 57bc88a15a0ee8266c259b2667e64608d3f7e292..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/axis2/core/xml-resolver-LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/dk.gov.oiosi.library/lib/bouncycastle/BouncyCastle-LICENSE.txt b/dk.gov.oiosi.library/lib/bouncycastle/BouncyCastle-LICENSE.txt deleted file mode 100644 index 3aa0e060fccec1d2b3f2ebd151170d72b34788e2..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/bouncycastle/BouncyCastle-LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ - -License - -Copyright (c) 2000 - 2012 The Legion Of The Bouncy Castle (http://www.bouncycastle.org) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -associated documentation files (the "Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/dk.gov.oiosi.library/lib/bouncycastle/bcpkix-jdk15on-147.jar b/dk.gov.oiosi.library/lib/bouncycastle/bcpkix-jdk15on-147.jar deleted file mode 100644 index 50f289e8b93c75fe96ebc552eb5df27e615b0c9f..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/bouncycastle/bcpkix-jdk15on-147.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/bouncycastle/bcprov-jdk15on-147.jar b/dk.gov.oiosi.library/lib/bouncycastle/bcprov-jdk15on-147.jar deleted file mode 100644 index d7f54c8e7417771a44198f8232e7bf2c7af25bb9..0000000000000000000000000000000000000000 Binary files a/dk.gov.oiosi.library/lib/bouncycastle/bcprov-jdk15on-147.jar and /dev/null differ diff --git a/dk.gov.oiosi.library/lib/bouncycastle/www.bouncycastle.org.url b/dk.gov.oiosi.library/lib/bouncycastle/www.bouncycastle.org.url deleted file mode 100644 index a470825e8e33479212a9f73bbb00795776025b34..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/lib/bouncycastle/www.bouncycastle.org.url +++ /dev/null @@ -1,7 +0,0 @@ -[{000214A0-0000-0000-C000-000000000046}] -Prop3=19,2 -[InternetShortcut] -URL=http://www.bouncycastle.org/latest_releases.html -IDList= -IconFile=http://www.bouncycastle.org/favicon.ico -IconIndex=1 diff --git a/dk.gov.oiosi.library/lib/junit/mockito-all-1.10.19.jar b/dk.gov.oiosi.library/lib/junit/mockito-all-1.10.19.jar new file mode 100644 index 0000000000000000000000000000000000000000..c831489cd99ab87d95dd7a11f153ab318c5c0e6c Binary files /dev/null and b/dk.gov.oiosi.library/lib/junit/mockito-all-1.10.19.jar differ diff --git a/dk.gov.oiosi.library/lib/support/asciidoctor/asciidoctor-ant.jar b/dk.gov.oiosi.library/lib/support/asciidoctor/asciidoctor-ant.jar new file mode 100644 index 0000000000000000000000000000000000000000..e06a96f495a1b4d9906f510e41abc062e624cfd0 Binary files /dev/null and b/dk.gov.oiosi.library/lib/support/asciidoctor/asciidoctor-ant.jar differ diff --git a/dk.gov.oiosi.library/license/license.txt b/dk.gov.oiosi.library/license/license.txt index 18e22abd8684d9a4c81cbfed9f3cf8bccd661994..403dace960917d11e66151b0cc5a88bda58be82e 100644 --- a/dk.gov.oiosi.library/license/license.txt +++ b/dk.gov.oiosi.library/license/license.txt @@ -1,6 +1,6 @@ -RASP license ------------- -Copyright (c) 2007-2019, NemHandel, Danish National Agency for Digitisation, Ministry of Finance. +OIORASP license +--------------- +Copyright (c) 2007-2021, Nemhandel, Danish Business Authority. All rights reserved. diff --git a/dk.gov.oiosi.library/released/.gitkeep b/dk.gov.oiosi.library/released/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/dk.gov.oiosi.library/released/OIORASP_Java_InstallationGuide.pdf b/dk.gov.oiosi.library/released/OIORASP_Java_InstallationGuide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..38cff88d700ab5f5fbda2e2248f913403df24afb --- /dev/null +++ b/dk.gov.oiosi.library/released/OIORASP_Java_InstallationGuide.pdf @@ -0,0 +1,2868 @@ +%PDF-1.4 +% +1 0 obj +<< /Title (OIORASP Java - Installation Guide) +/Author (Danish Business Authority) +/Creator (Asciidoctor PDF 1.5.3, based on Prawn 2.2.2) +/Producer (Danish Business Authority) +/ModDate (D:20210525140118+02'00') +/CreationDate (D:20210527131842+02'00') +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +/Names 17 0 R +/Outlines 59 0 R +/PageLabels 67 0 R +/PageMode /UseOutlines +/OpenAction [7 0 R /FitH 841.89] +/ViewerPreferences << /DisplayDocTitle true +>> +>> +endobj +3 0 obj +<< /Type /Pages +/Count 4 +/Kids [7 0 R 13 0 R 15 0 R 40 0 R] +>> +endobj +4 0 obj +<< /Length 2 +>> +stream +q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +>> +>> +endobj +6 0 obj +<< /Length 7628 +>> +stream +q +q +0.0 0.0091 m +595.28 0.0091 l +595.28 841.8809 l +0.0 841.8809 l +h +W n +/DeviceRGB cs +0.0 0.0 0.0 scn +0.99997 0.00000 0.00000 0.99997 0.00000 0.02828 cm +1.00000 0.00000 0.00000 1.00000 0.00000 -0.00000 cm +q +Q +q +0.9569 0.9608 0.9686 scn +0.0 333.8809 595.3 144.1 re +f +Q +q +0.9529 0.9608 0.9647 scn +0.0 320.5809 595.3 157.4 re +f +Q +q +q +Q +q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +295.7 377.2809 m +295.7 385.7809 306.2 389.6809 311.8 383.3809 c +312.0 383.1809 l +370.4 313.8809 l +370.4 377.2809 l +370.4 382.2809 374.4 386.3809 379.4 386.4809 c +379.6 386.4809 l +384.6 386.4809 388.7 382.4809 388.8 377.4809 c +388.8 377.2809 l +388.8 288.6809 l +388.8 280.1809 378.3 276.2809 372.7 282.5809 c +372.5 282.7809 l +314.1 352.0809 l +314.1 288.6809 l +314.1 283.6809 310.1 279.5809 305.1 279.4809 c +304.9 279.4809 l +299.9 279.4809 295.8 283.4809 295.7 288.4809 c +295.7 288.6809 l +295.7 377.2809 l +h +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +424.0 385.4809 m +483.4 385.4809 l +488.5 385.4809 492.6 381.3809 492.6 376.2809 c +492.6 371.1809 488.5 367.0809 483.4 367.0809 c +424.0 367.0809 l +418.9 367.0809 414.8 371.1809 414.8 376.2809 c +414.8 381.3809 418.9 385.4809 424.0 385.4809 c +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +424.0 341.8809 m +483.4 341.8809 l +488.5 341.8809 492.6 337.7809 492.6 332.6809 c +492.6 327.5809 488.5 323.4809 483.4 323.4809 c +424.0 323.4809 l +418.9 323.4809 414.8 327.5809 414.8 332.6809 c +414.8 337.7809 418.9 341.8809 424.0 341.8809 c +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +607.0 382.6809 m +612.2 389.7809 623.4 386.1809 623.7 377.4809 c +623.7 377.1809 l +623.7 288.5809 l +623.7 283.4809 619.6 279.3809 614.5 279.3809 c +609.5 279.3809 605.4 283.3809 605.3 288.3809 c +605.3 288.5809 l +605.3 349.0809 l +578.5 312.4809 l +574.9 307.4809 567.4 307.4809 563.7 312.3809 c +563.6 312.5809 l +537.3 348.8809 l +537.3 288.6809 l +537.3 283.6809 533.3 279.5809 528.3 279.4809 c +528.1 279.4809 l +523.1 279.4809 519.0 283.4809 518.9 288.4809 c +518.9 288.6809 l +518.9 377.2809 l +518.9 386.0809 530.1 389.7809 535.4 382.8809 c +535.6 382.6809 l +571.1 333.5809 l +607.0 382.6809 l +h +f +Q +Q +Q +q +q +Q +q +Q +q +q +q +q +52.6 493.9809 138.9 15.0 re +Q +Q +W n +0.0 0.5176 0.4745 scn +2 j +78.6 508.6809 m +79.3 508.6809 79.9 508.0809 79.9 507.3809 c +79.9 506.6809 79.3 506.0809 78.6 506.0809 c +70.4 506.0809 l +69.7 506.0809 69.1 506.6809 69.1 507.3809 c +69.1 508.0809 69.7 508.6809 70.4 508.6809 c +78.6 508.6809 l +h +78.6 502.6809 m +79.3 502.6809 79.9 502.0809 79.9 501.3809 c +79.9 500.6809 79.3 500.0809 78.6 500.0809 c +70.4 500.0809 l +69.7 500.0809 69.1 500.6809 69.1 501.3809 c +69.1 502.0809 69.7 502.6809 70.4 502.6809 c +78.6 502.6809 l +h +78.6 496.5809 m +79.3 496.5809 79.9 495.9809 79.9 495.2809 c +79.9 494.5809 79.3 493.9809 78.6 493.9809 c +70.4 493.9809 l +69.7 493.9809 69.1 494.5809 69.1 495.2809 c +69.1 495.9809 69.7 496.5809 70.4 496.5809 c +78.6 496.5809 l +h +98.1 507.5809 m +98.1 495.1809 l +98.1 494.4809 97.5 493.8809 96.8 493.8809 c +96.1 493.8809 95.5 494.4809 95.5 495.0809 c +95.5 495.0809 l +95.5 503.4809 l +91.8 498.3809 l +91.3 497.6809 90.3 497.6809 89.7 498.3809 c +89.7 498.3809 l +86.1 503.3809 l +86.1 494.9809 l +86.1 494.2809 85.5 493.6809 84.9 493.6809 c +84.9 493.6809 l +84.2 493.6809 83.6 494.2809 83.6 494.8809 c +83.6 494.8809 l +83.6 507.1809 l +83.6 508.3809 85.2 508.8809 85.9 507.9809 c +85.9 507.9809 l +90.8 501.1809 l +95.8 507.9809 l +96.5 509.2809 98.1 508.7809 98.1 507.5809 c +54.8 508.3809 m +54.8 508.3809 l +62.9 498.6809 l +62.9 507.4809 l +62.9 508.1809 63.5 508.7809 64.1 508.7809 c +64.1 508.7809 l +64.8 508.7809 65.4 508.1809 65.4 507.5809 c +65.4 507.5809 l +65.4 495.2809 l +65.4 494.0809 63.9 493.5809 63.2 494.3809 c +63.2 494.3809 l +55.1 503.9809 l +55.1 495.1809 l +55.1 494.4809 54.5 493.8809 53.9 493.8809 c +53.9 493.8809 l +53.2 493.8809 52.6 494.4809 52.6 495.0809 c +52.6 507.4809 l +52.6 508.7809 54.1 509.2809 54.8 508.3809 c +f +Q +Q +q +q +q +q +52.6 493.9809 138.9 15.0 re +Q +Q +W n +0.0863 0.2431 0.3176 scn +2 j +190.0 494.0809 m +190.4 494.0809 190.8 494.3809 190.8 494.8809 c +190.8 495.2809 190.5 495.6809 190.0 495.6809 c +182.4 495.6809 l +182.4 508.0809 l +182.4 508.5809 182.0 508.8809 181.6 508.8809 c +181.2 508.8809 180.8 508.4809 180.8 508.0809 c +180.8 494.8809 l +180.8 494.3809 181.2 494.0809 181.6 494.0809 c +190.0 494.0809 l +h +176.7 494.0809 m +177.1 494.0809 177.5 494.3809 177.5 494.8809 c +177.5 495.2809 177.2 495.6809 176.7 495.6809 c +168.3 495.6809 l +168.3 500.8809 l +175.7 500.8809 l +176.1 500.8809 176.5 501.1809 176.5 501.6809 c +176.5 502.0809 176.2 502.4809 175.7 502.4809 c +168.3 502.4809 l +168.3 507.4809 l +176.6 507.4809 l +177.0 507.4809 177.4 507.7809 177.4 508.2809 c +177.4 508.6809 177.1 509.0809 176.6 509.0809 c +167.5 509.0809 l +167.1 509.0809 166.7 508.6809 166.7 508.2809 c +166.7 495.2809 l +166.7 494.7809 167.1 494.4809 167.5 494.4809 c +176.7 494.4809 l +h +155.7 507.2809 m +152.3 507.2809 l +152.3 495.6809 l +155.7 495.6809 l +159.4 495.6809 161.8 498.1809 161.8 501.4809 c +161.8 501.4809 l +161.8 504.6809 159.4 507.2809 155.7 507.2809 c +155.7 508.7809 m +160.3 508.7809 163.5 505.5809 163.5 501.4809 c +163.5 501.4809 l +163.5 497.3809 160.3 494.0809 155.7 494.0809 c +151.4 494.0809 l +151.0 494.0809 150.6 494.4809 150.6 494.8809 c +150.6 507.8809 l +150.6 508.3809 151.0 508.6809 151.4 508.6809 c +155.7 508.6809 l +h +135.2 493.9809 m +135.7 493.9809 136.0 494.3809 136.0 494.7809 c +136.0 506.1809 l +145.1 494.4809 l +145.4 494.1809 145.6 493.9809 146.0 493.9809 c +146.1 493.9809 l +146.5 493.9809 146.9 494.2809 146.9 494.7809 c +146.9 508.0809 l +146.9 508.4809 146.5 508.8809 146.1 508.8809 c +145.6 508.8809 145.3 508.4809 145.3 508.0809 c +145.3 496.9809 l +136.4 508.3809 l +136.2 508.6809 135.9 508.8809 135.6 508.8809 c +135.4 508.8809 l +135.0 508.8809 134.6 508.4809 134.6 508.0809 c +134.6 494.8809 l +134.4 494.2809 134.8 493.9809 135.2 493.9809 c +124.4 506.9809 m +121.0 499.4809 l +127.8 499.4809 l +124.4 506.9809 l +h +124.5 508.9809 m +125.0 508.9809 125.3 508.6809 125.5 508.2809 c +131.5 495.2809 l +131.6 495.1809 131.6 494.9809 131.6 494.8809 c +131.6 494.4809 131.2 494.0809 130.8 494.0809 c +130.4 494.0809 130.1 494.3809 130.0 494.6809 c +128.5 498.0809 l +120.4 498.0809 l +118.9 494.6809 l +118.8 494.2809 118.5 494.0809 118.1 494.0809 c +117.7 494.0809 117.3 494.3809 117.3 494.8809 c +117.3 494.9809 117.3 495.1809 117.4 495.2809 c +123.4 508.3809 l +123.5 508.6809 123.8 508.9809 124.5 508.9809 c +124.5 508.9809 l +h +113.5 493.9809 m +113.9 493.9809 114.3 494.3809 114.3 494.7809 c +114.3 507.9809 l +114.3 508.4809 113.9 508.7809 113.5 508.7809 c +113.0 508.7809 112.7 508.3809 112.7 507.9809 c +112.7 502.1809 l +104.2 502.1809 l +104.2 507.9809 l +104.2 508.4809 103.8 508.7809 103.4 508.7809 c +103.0 508.7809 102.6 508.3809 102.6 507.9809 c +102.6 494.7809 l +102.6 494.2809 103.0 493.9809 103.4 493.9809 c +103.9 493.9809 104.2 494.3809 104.2 494.7809 c +104.2 500.6809 l +112.7 500.6809 l +112.7 494.7809 l +112.6 494.2809 113.0 493.9809 113.5 493.9809 c +f +Q +Q +Q +Q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN + +q +149.64 0.0 0.0 51.0136 48.24 754.8764 cm +/I1 Do +Q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN + +BT +48.24 425.694 Td +/F3.0 18 Tf +<4f494f52415350204a617661202d20496e7374616c6c6174696f6e204775696465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0941 0.0941 0.0941 scn +0.0941 0.0941 0.0941 SCN + +BT +48.24 395.9324 Td +/F2.0 13 Tf +<44616e69736820427573696e65737320417574686f72697479> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 367.7041 Td +/F2.0 11 Tf +<56657273696f6e20332e302e302e524331> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q + +endstream +endobj +7 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 6 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F3.0 10 0 R +/F2.0 11 0 R +>> +/XObject << /I1 8 0 R +>> +>> +>> +endobj +8 0 obj +<< /Type /XObject +/Subtype /Image +/Height 90 +/Width 264 +/BitsPerComponent 8 +/ColorSpace /DeviceRGB +/SMask 9 0 R +/Length 489 +/Filter [/FlateDecode] +/DecodeParms [<< /Predictor 15 +/Colors 3 +/BitsPerComponent 8 +/Columns 264 +>>] +>> +stream +xKN@q&R)Ȳ38043N\{>޿]GyuV^GH+c{״4TX13lL={BV @0 0|os\} F?K^FS̮>!'tR`TVi]%/+ٕVͱUXQ魤eo~("}FM-JöCFCcߖ`u\+$l_ +~|{3 /bΊ~X>L- ,O?M*ZpVuӵiD+5##pZ)cFΌ~6nbQx@'VӖJA`@w_G+`@@0  @0  @0  <+@ `PƌV +2Z)Ri(cW +2f Rxk+P'Mk% +endstream +endobj +9 0 obj +<< /Type /XObject +/Subtype /Image +/Height 90 +/Width 264 +/BitsPerComponent 8 +/ColorSpace /DeviceGray +/Decode [0 1] +/Length 2238 +/Filter [/FlateDecode] +/DecodeParms [<< /Predictor 15 +/Colors 1 +/BitsPerComponent 8 +/Columns 264 +>>] +>> +stream +x\YnV Jx+T@RI +b*DħȲey=|F?ؙ͌t36YlOlN~f\ZƑ#r ?Pl<_l8`:6' ߰ K^H#_"Rāf#>*.DIؚq@d><61ezÙyddL2̾fј-`1<8S؉0ZޫVһ.vp#82Ux\LXi%v`Bvg!tGGc3,_vrz1/kh p=' e')Xxϰ!/~*I;t`44G'Ϭ el Cɰ| o#@#Rth Tht,Ѳj +E`:U(:z18%  1ib@ct\݊YyN!/\Ð1/)˻gV6E0<YHF7@ro BgS,֢+Yg\1]b %cR]l69G4LveJ1cSۢ*o m-Ԕ6Lf2Lcic%LHLNG<$LDSXg?%vA3m0Rj2dꀍ_YM_^jBBs 0zW̮ѓY JoA暴BF{H?ؑ}ߊ(Z/AO_^u ݊]|a+_ksx}v=3xF|߱#\]mT)VOYk?niB݂IހTnGHJxJe !cWO:B_`#źpt@(@QƾheC# T-1CGrR^@]@8OGR  >ҼW?ڼZoL,#/o`vuB"6+'@\Lg:әt3L߅~ +¾ +( hiw󵀊#?5ԌYQ{xaꢪsX 2Těe&)1+C6J؜`*ϊ',:|ì;,چY7hIuِc(] +U{lR7p!*UMYSrDU Q7ZvM_ŴS7jsiċ,оΝ[\–0*snn|I7GW=աEz }cM2$9T3:vndڝSf^."A V\m%ܒ{$juʰe,-:(l]$,‘x]PG5H7WVj]aAʽ4b2̹OL2"%,^`cҫ -gih٥B9 +DOmpyeiP vju4I,{i٫R4wQ9H^5g5'Unԍ3k2qIu5/fj W5)ޓ6UOI7nͩw1!nԍ-k5Z[fI3c=S*d0[z*{2f"},ev+WD8 +u: +b]K][nҍu,[K.'uɝ960f;e')c` %Φ2M\n=c 嶟Ah[&x۟- IB5,r["SMP@3 vZ>ľvֆM8Jٍ*:C;oRVI E%p ͺ텎PGZ sSnzߒ!Ѡ}NxON&B~Ku5Zk`;iW3\)ԕf%b>[5?;sexV릀Fbn.A`^ w_pQ>\4a|Qg:g +endstream +endobj +10 0 obj +<< /Type /Font +/BaseFont /3bce92+Montserrat-SemiBold +/Subtype /TrueType +/FontDescriptor 71 0 R +/FirstChar 32 +/LastChar 255 +/Widths 73 0 R +/ToUnicode 72 0 R +>> +endobj +11 0 obj +<< /Type /Font +/BaseFont /39d1c5+WorkSans-Regular +/Subtype /TrueType +/FontDescriptor 75 0 R +/FirstChar 32 +/LastChar 255 +/Widths 77 0 R +/ToUnicode 76 0 R +>> +endobj +12 0 obj +<< /Length 3645 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 789.15 Td +/F4.0 18 Tf +<5461626c65206f6620436f6e74656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 761.546 Td +/F2.0 11 Tf +<312e20496e74726f64756374696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +127.8382 761.546 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 761.546 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 761.546 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 744.243 Td +/F2.0 11 Tf +<322e2053797374656d20726571756972656d656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +181.2542 744.243 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 744.243 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 744.243 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 726.94 Td +/F2.0 11 Tf +<332e20496e7374616c6c6174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +127.8382 726.94 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 726.94 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 726.94 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 709.637 Td +/F2.0 11 Tf +<342e20436865636b6f75742066726f6d206f6e6c696e6520736f75726365207265706f7369746f7279> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +279.2863 709.637 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 709.637 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 709.637 Td +/F2.0 11 Tf +<32> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 692.334 Td +/F2.0 11 Tf +<352e20566572696679696e6720796f7572205365747570> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +172.4543 692.334 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 692.334 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 692.334 Td +/F2.0 11 Tf +<32> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q + +endstream +endobj +13 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 12 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +>> +>> +/Annots [49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R] +>> +endobj +14 0 obj +<< /Length 11528 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 789.15 Td +/F4.0 18 Tf +<312e20496e74726f64756374696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.9865 Tw + +BT +48.24 762.9603 Td +/F2.0 11 Tf +<546865204f494f52415350204c69627261727920666f72204a6176612069732061204a61766120626173656420746f6f6c6b697420666f7220696d706c656d656e746174696f6e206f66204f494f52415350> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 748.4859 Td +/F2.0 11 Tf +<627573696e657373206170706c69636174696f6e732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 722.0114 Td +/F2.0 11 Tf +<5468697320646973747269627574696f6e2069732076657273696f6e20332e302e302e524331> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.6996 Tw + +BT +48.24 695.537 Td +/F2.0 11 Tf +<54686520646973747269627574696f6e2069732070617274206f6620746865204f494f5241535020776f726b20666f722065786368616e67696e6720627573696e65737320646f63756d656e747320696e2061> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 681.0626 Td +/F2.0 11 Tf +<73656375726520616e642072656c6961626c6520776179207573696e672074686520696e7465726e65742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.195 Tw + +BT +48.24 654.5881 Td +/F2.0 11 Tf +<546865206672616d65776f726b2063616e20626520646f776e6c6f616465642066726f6d20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +1.195 Tw + +BT +280.272 654.5881 Td +/F2.0 11 Tf +<687474703a2f2f6469676974616c697365722e646b2f67726f75702f3430353434322f7265736f7572636573> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.195 Tw + +BT +522.162 654.5881 Td +/F2.0 11 Tf +<20616e64> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 640.1137 Td +/F2.0 11 Tf +<72656164206d6f726520617420> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +122.204 640.1137 Td +/F2.0 11 Tf +<68747470733a2f2f6e656d68616e64656c2e646b2f6e6574766165726b2d6f672d7374616e646172646572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +373.994 640.1137 Td +/F2.0 11 Tf +<2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 583.915 Td +/F4.0 18 Tf +<322e2053797374656d20726571756972656d656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 557.7253 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 557.7253 Td +/F2.0 11 Tf +<4a444b2038206f72206c61746572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 537.2509 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.9637 Tw + +BT +66.24 537.2509 Td +/F2.0 11 Tf +<546865206a6176612072756e74696d6520656e7669726f6e6d656e74206d7573742068617665204a6176612043727970746f67726170687920457874656e73696f6e20284a43452920556e6c696d69746564> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 522.7764 Td +/F2.0 11 Tf +<537472656e677468204a7572697364696374696f6e20506f6c6963792046696c657320696e7374616c6c656420746f20737570706f7274207374726f6e6720656e6372797074696f6e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.3975 Tw + +BT +48.24 496.302 Td +/F2.0 11 Tf +<4a444b7320616e64204a4345207061636b6167652063616e20626520666f756e6420686572652028696e7374616c6c6174696f6e20696e737472756374696f6e732061726520696e636c7564656420696e20746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 481.8276 Td +/F2.0 11 Tf +<646f776e6c6f61646564207061636b61676573293a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +178.425 481.8276 Td +/F2.0 11 Tf +<687474703a2f2f6a6176612e73756e2e636f6d2f6a61766173652f646f776e6c6f6164732f696e6465782e6a7370> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 455.3531 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 455.3531 Td +/F2.0 11 Tf +<4170616368652041786973323a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +144.956 455.3531 Td +/F2.0 11 Tf +<687474703a2f2f77732e6170616368652e6f72672f61786973322f646f776e6c6f61642f315f355f312f646f776e6c6f61642e636769> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 434.8787 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +6.6143 Tw + +BT +66.24 434.8787 Td +/F2.0 11 Tf +<4170616368652052616d70617274202d2057532d536563757269747920696d706c656d656e746174696f6e20666f722041786973323a20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +6.6143 Tw + +BT +429.989 434.8787 Td +/F2.0 11 Tf +<687474703a2f2f77732e6170616368652e6f72672f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +66.24 420.4043 Td +/F2.0 11 Tf +<72616d706172742f646f776e6c6f61642f312e342f646f776e6c6f61642e636769> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 399.9299 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +6.6097 Tw + +BT +66.24 399.9299 Td +/F2.0 11 Tf +<57534f3220436f6d6d6f6e7320d0204d65726375727920d02057532d52656c6961626c654d6573736167696e6720696d706c656d656e746174696f6e20666f722041786973323a> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +66.24 385.4554 Td +/F2.0 11 Tf +<687474703a2f2f6d6176656e2e77736f322e6f72672f6e657875732f636f6e74656e742f7265706f7369746f726965732f77736f326d6176656e322f6f72672f77736f322f6d6572637572792f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 364.981 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +25.0673 Tw + +BT +66.24 364.981 Td +/F2.0 11 Tf +<41706163686520436f6d6d6f6e7320d020436f6e66696775726174696f6e2c204c616e672c20436f6c6c656374696f6e732c204a78506174683a> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +66.24 350.5066 Td +/F2.0 11 Tf +<687474703a2f2f636f6d6d6f6e732e6170616368652e6f72672f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 330.0321 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 330.0321 Td +/F2.0 11 Tf +<426f756e6379436173746c653a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +146.353 330.0321 Td +/F2.0 11 Tf +<687474703a2f2f7777772e626f756e6379636173746c652e6f72672f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 309.5577 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 309.5577 Td +/F2.0 11 Tf +<4a556e69743a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +101.605 309.5577 Td +/F2.0 11 Tf +<687474703a2f2f7777772e6a756e69742e6f72672f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 289.0833 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 289.0833 Td +/F2.0 11 Tf +<4f70656e556464693a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +126.036 289.0833 Td +/F2.0 11 Tf +<687474703a2f2f736f75726365666f7267652e6e65742f70726f6a656374732f6f70656e756464692f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 262.6089 Td +/F2.0 11 Tf +<54686520726571756972656d656e74732063616e20616c736f20626520666f756e6420696e2074686520636f64652072656c65617365206f66204f494f524153502e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 236.1344 Td +/F2.0 11 Tf +<5265636f6d6d656e646174696f6e7320666f7220646576656c6f706d656e743a202d20416e7420312e31302e782c2077697468204a556e69743a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +377.25 236.1344 Td +/F2.0 11 Tf +<687474703a2f2f616e742e6170616368652e6f7267> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 209.66 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 209.66 Td +/F2.0 11 Tf +<41706163686520546f6d63617420392e302e783a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +186.514 209.66 Td +/F2.0 11 Tf +<687474703a2f2f746f6d6361742e6170616368652e6f7267> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 153.4613 Td +/F4.0 18 Tf +<332e20496e7374616c6c6174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 128.298 Td +/F5.0 9.975 Tf +<42696e6172792072656c65617365> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +8.895 Tw + +BT +48.24 110.1459 Td +/F2.0 11 Tf +<5468652062696e6172792072656c65617365206973206c6f636174656420617420> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +8.895 Tw + +BT +275.619 110.1459 Td +/F2.0 11 Tf +<68747470733a2f2f6469676974616c697365722e646b2f67726f75702f3430353434322f7265736f7572636573> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +8.895 Tw + +BT +523.306 110.1459 Td +/F2.0 11 Tf +<206f72> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 95.6715 Td +/F2.0 11 Tf +<68747470733a2f2f6e656d68616e64656c2e646b2f6f706461746572696e6765722d72656c6561736573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.2961 Tw + +BT +48.24 69.197 Td +/F2.0 11 Tf +<546f2075736520746869732062696e617279206a61722066696c65206f6e65206d757374206861766520616c6c20646570656e64656e636965732070726573656e74206f6e2074686520636c617373706174682e20546865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.4022 Tw + +BT +48.24 54.7226 Td +/F2.0 11 Tf +<4f494f52415350206c69627261727920646570656e6473206f6e206120776964652072616e6765206f662065787465726e616c206c69627261726965732e205468657365206a61722066696c65732063616e20656974686572206265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +503.578 39.505 Td +/F2.0 9 Tf +<506167652031202f2032> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +15 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 14 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +/F5.0 36 0 R +>> +/XObject << /Stamp1 68 0 R +>> +>> +/Annots [21 0 R 22 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 37 0 R 38 0 R] +>> +endobj +16 0 obj +[15 0 R /XYZ 0 841.89 null] +endobj +17 0 obj +<< /Type /Names +/Dests 18 0 R +>> +endobj +18 0 obj +<< /Names [(__anchor-top) 16 0 R (_checkout_from_online_source_repository) 43 0 R (_installation) 35 0 R (_introduction) 19 0 R (_system_requirements) 23 0 R (_verifying_your_setup) 46 0 R] +>> +endobj +19 0 obj +[15 0 R /XYZ 0 841.89 null] +endobj +20 0 obj +<< /Type /Font +/BaseFont /c28878+WorkSans-SemiBold +/Subtype /TrueType +/FontDescriptor 79 0 R +/FirstChar 32 +/LastChar 255 +/Widths 81 0 R +/ToUnicode 80 0 R +>> +endobj +21 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://digitaliser.dk/group/405442/resources) +>> +/Subtype /Link +/Rect [280.272 651.9151 522.162 664.8181] +/Type /Annot +>> +endobj +22 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://nemhandel.dk/netvaerk-og-standarder) +>> +/Subtype /Link +/Rect [122.204 637.4407 373.994 650.3437] +/Type /Annot +>> +endobj +23 0 obj +[15 0 R /XYZ 0 624.655 null] +endobj +24 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://java.sun.com/javase/downloads/index.jsp) +>> +/Subtype /Link +/Rect [178.425 479.1546 437.244 492.0576] +/Type /Annot +>> +endobj +25 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://ws.apache.org/axis2/download/1_5_1/download.cgi) +>> +/Subtype /Link +/Rect [144.956 452.6801 453.539 465.5831] +/Type /Annot +>> +endobj +26 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://ws.apache.org/rampart/download/1.4/download.cgi) +>> +/Subtype /Link +/Rect [429.989 432.2057 547.04 445.1087] +/Type /Annot +>> +endobj +27 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://ws.apache.org/rampart/download/1.4/download.cgi) +>> +/Subtype /Link +/Rect [66.24 417.7313 261.061 430.6343] +/Type /Annot +>> +endobj +28 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://maven.wso2.org/nexus/content/repositories/wso2maven2/org/wso2/mercury/) +>> +/Subtype /Link +/Rect [66.24 382.7824 523.62 395.6854] +/Type /Annot +>> +endobj +29 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://commons.apache.org/) +>> +/Subtype /Link +/Rect [66.24 347.8336 221.23 360.7366] +/Type /Annot +>> +endobj +30 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://www.bouncycastle.org/) +>> +/Subtype /Link +/Rect [146.353 327.3591 308.768 340.2621] +/Type /Annot +>> +endobj +31 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://www.junit.org/) +>> +/Subtype /Link +/Rect [101.605 306.8847 216.643 319.7877] +/Type /Annot +>> +endobj +32 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://sourceforge.net/projects/openuddi/) +>> +/Subtype /Link +/Rect [126.036 286.4103 354.715 299.3133] +/Type /Annot +>> +endobj +33 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://ant.apache.org) +>> +/Subtype /Link +/Rect [377.25 233.4614 492.145 246.3644] +/Type /Annot +>> +endobj +34 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://tomcat.apache.org) +>> +/Subtype /Link +/Rect [186.514 206.987 322.452 219.89] +/Type /Annot +>> +endobj +35 0 obj +[15 0 R /XYZ 0 194.2013 null] +endobj +36 0 obj +<< /Type /Font +/BaseFont /238de3+WorkSans-Italic +/Subtype /TrueType +/FontDescriptor 83 0 R +/FirstChar 32 +/LastChar 255 +/Widths 85 0 R +/ToUnicode 84 0 R +>> +endobj +37 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://digitaliser.dk/group/405442/resources) +>> +/Subtype /Link +/Rect [275.619 107.4729 523.306 120.3759] +/Type /Annot +>> +endobj +38 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://nemhandel.dk/opdateringer-releases) +>> +/Subtype /Link +/Rect [48.24 92.9985 289.602 105.9015] +/Type /Annot +>> +endobj +39 0 obj +<< /Length 7390 +>> +stream +q +/DeviceRGB cs +0.1333 0.1333 0.1333 scn +/DeviceRGB CS +0.1333 0.1333 0.1333 SCN + +BT +48.24 795.66 Td +/F2.0 11 Tf +<666f756e6420696e2074686520636f64652072656c65617365207a69702066696c65206f7220646f776e6c6f61646564206d616e75616c6c792e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 770.212 Td +/F5.0 9.975 Tf +<436f64652072656c65617365> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.6988 Tw + +BT +48.24 752.0599 Td +/F2.0 11 Tf +<54686520636f646520697320616c736f206c6f636174656420696e204769744c616220617420> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +1.6988 Tw + +BT +264.329 752.0599 Td +/F2.0 11 Tf +<68747470733a2f2f7265702e657273742e646b2f6769742f6f70656e65627573696e6573732f6c6962726172792f6a6176612f2d2f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 737.5855 Td +/F2.0 11 Tf +<747265652f6d61737465722f646b2e676f762e6f696f73692e6c696272617279> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 681.3868 Td +/F4.0 18 Tf +<342e20436865636b6f75742066726f6d206f6e6c696e6520736f75726365207265706f7369746f7279> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.3752 Tw + +BT +48.24 655.197 Td +/F2.0 11 Tf +<546865204f494f52415350206c69627261727920636f6465206973206b65707420696e206120474954207265706f7369746f7279206f6e20746865206164647265737320> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +0.3752 Tw + +BT +424.489 655.197 Td +/F2.0 11 Tf +<68747470733a2f2f7265702e657273742e646b2f6769742f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 640.7226 Td +/F2.0 11 Tf +<6f70656e65627573696e6573732f6c6962726172792f6a617661> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 584.5239 Td +/F4.0 18 Tf +<352e20566572696679696e6720796f7572205365747570> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 559.3606 Td +/F5.0 9.975 Tf +<4c69627261727920636f64652072656c65617365> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.7291 Tw + +BT +48.24 541.2085 Td +/F2.0 11 Tf +<546f20766572696679207468617420796f75722065636c697073652070726f6a65637420686173206265656e207365742075702070726f7065726c7920796f752063616e2072756e20746865206d61696e206d6574686f64> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 526.7341 Td +/F2.0 11 Tf +<6c6f636174656420696e207468652052617370456e7669726f6e6d656e74436865636b2e6a6176612066696c652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 500.2596 Td +/F2.0 11 Tf +<546865206f75747075742073686f756c64206c6f6f6b2073696d696c617220746f2c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 484.8009 m +543.04 484.8009 l +545.2491 484.8009 547.04 483.0101 547.04 480.8009 c +547.04 384.5859 l +547.04 382.3768 545.2491 380.5859 543.04 380.5859 c +52.24 380.5859 l +50.0309 380.5859 48.24 382.3768 48.24 384.5859 c +48.24 480.8009 l +48.24 483.0101 50.0309 484.8009 52.24 484.8009 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 484.8009 m +543.04 484.8009 l +545.2491 484.8009 547.04 483.0101 547.04 480.8009 c +547.04 384.5859 l +547.04 382.3768 545.2491 380.5859 543.04 380.5859 c +52.24 380.5859 l +50.0309 380.5859 48.24 382.3768 48.24 384.5859 c +48.24 480.8009 l +48.24 483.0101 50.0309 484.8009 52.24 484.8009 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 464.5939 Td +/F6.0 9 Tf +<436865636b696e67204f53202d20436865636b204f4b2e2e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 452.8489 Td +/F6.0 9 Tf +<436865636b696e67204178697332202d20436865636b204f4b2e2e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 441.1039 Td +/F6.0 9 Tf +<436865636b696e67204d657263757279202d20436865636b204f4b2e2e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 429.3589 Td +/F6.0 9 Tf +<436865636b696e672052616d70617274202d20436865636b204f4b2e2e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 417.6139 Td +/F6.0 9 Tf +<436865636b696e6720656e6372797074696f6e202d20436865636b204f4b2e2e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 405.8689 Td +/F6.0 9 Tf +<436865636b696e6720666f7220416e74202d20436865636b204f4b2e2e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 394.1239 Td +/F6.0 9 Tf +<436865636b696e6720666f7220426f756e63792d636173746c65202d20436865636b204f4b2e2e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 357.5702 Td +/F2.0 11 Tf +<546865206669727374206c696e652073696d706c79207465737473207468617420796f75206172652072756e6e696e67206f6e206120746573746564206f7065726174696e672073797374656d2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 331.0958 Td +/F2.0 11 Tf +<546865206e657874207468726565206c696e657320696e646963617465207768657468657220417869733220616e64204d6572637572792063616e20626520666f756e642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.5 w +0.9333 0.9333 0.9333 SCN +108.24 315.6371 m +108.24 264.2138 l +S +Q +0.098 0.251 0.4863 scn +0.098 0.251 0.4863 SCN + +BT +66.24 280.9254 Td +/F7.1 24 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.6705 Tw + +BT +120.24 300.6214 Td +/F2.0 11 Tf +<4e6f7465207468617420666f7220746865736520746573747320746f20706173732c20616c6c202e6a61722066696c6573207468617420636f6d65207769746820417869733220312e352e312c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.0075 Tw + +BT +120.24 286.1469 Td +/F2.0 11 Tf +<52616d7061727420312e3620616e64204d65726375727920302e39312028696e2074686f73652065786163742076657273696f6e7329206e65656420746f2062652070726573656e74> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +120.24 271.6725 Td +/F2.0 11 Tf +<696e20746865202f6c6962206469726563746f72792e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.4078 Tw + +BT +48.24 241.1981 Td +/F2.0 11 Tf +<41667465722074686174207468726565206c696e657320636865636b20746865204a61766120656e7669726f6e6d656e742c20746f206d616b65207375726520796f7520686176652074686520636f7272656374> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.1595 Tw + +BT +48.24 226.7236 Td +/F2.0 11 Tf +<76657273696f6e206f66204a61766120696e7374616c6c65642c20616e642077697468204a6176612063727970746f67726170687920657874656e73696f6e732c20616e64207468617420416e742069732061636365737369626c65> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 212.2492 Td +/F2.0 11 Tf +<66726f6d2074686520636f6d6d616e64206c696e652070726f6d70742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +501.841 39.505 Td +/F2.0 9 Tf +<506167652032202f2032> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +40 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 39 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F2.0 11 0 R +/F5.0 36 0 R +/F4.0 20 0 R +/F6.0 47 0 R +/F7.1 48 0 R +>> +/XObject << /Stamp2 69 0 R +>> +>> +/Annots [41 0 R 42 0 R 44 0 R 45 0 R] +>> +endobj +41 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java/-/tree/master/dk.gov.oiosi.library) +>> +/Subtype /Link +/Rect [264.329 749.3869 547.04 762.2899] +/Type /Annot +>> +endobj +42 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java/-/tree/master/dk.gov.oiosi.library) +>> +/Subtype /Link +/Rect [48.24 734.9125 216.595 747.8155] +/Type /Annot +>> +endobj +43 0 obj +[40 0 R /XYZ 0 722.1268 null] +endobj +44 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java) +>> +/Subtype /Link +/Rect [424.489 652.524 547.04 665.427] +/Type /Annot +>> +endobj +45 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java) +>> +/Subtype /Link +/Rect [48.24 638.0496 193.176 650.9526] +/Type /Annot +>> +endobj +46 0 obj +[40 0 R /XYZ 0 625.2639 null] +endobj +47 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Courier +/Encoding /WinAnsiEncoding +>> +endobj +48 0 obj +<< /Type /Font +/BaseFont /5714a6+FontAwesome5Free-Solid +/Subtype /TrueType +/FontDescriptor 87 0 R +/FirstChar 32 +/LastChar 255 +/Widths 89 0 R +/ToUnicode 88 0 R +>> +endobj +49 0 obj +<< /Border [0 0 0] +/Dest (_introduction) +/Subtype /Link +/Rect [48.24 758.873 125.757 771.776] +/Type /Annot +>> +endobj +50 0 obj +<< /Border [0 0 0] +/Dest (_introduction) +/Subtype /Link +/Rect [542.75 758.873 547.04 771.776] +/Type /Annot +>> +endobj +51 0 obj +<< /Border [0 0 0] +/Dest (_system_requirements) +/Subtype /Link +/Rect [48.24 741.57 177.369 754.473] +/Type /Annot +>> +endobj +52 0 obj +<< /Border [0 0 0] +/Dest (_system_requirements) +/Subtype /Link +/Rect [542.75 741.57 547.04 754.473] +/Type /Annot +>> +endobj +53 0 obj +<< /Border [0 0 0] +/Dest (_installation) +/Subtype /Link +/Rect [48.24 724.267 121.929 737.17] +/Type /Annot +>> +endobj +54 0 obj +<< /Border [0 0 0] +/Dest (_installation) +/Subtype /Link +/Rect [542.75 724.267 547.04 737.17] +/Type /Annot +>> +endobj +55 0 obj +<< /Border [0 0 0] +/Dest (_checkout_from_online_source_repository) +/Subtype /Link +/Rect [48.24 706.964 277.095 719.867] +/Type /Annot +>> +endobj +56 0 obj +<< /Border [0 0 0] +/Dest (_checkout_from_online_source_repository) +/Subtype /Link +/Rect [540.627 706.964 547.04 719.867] +/Type /Annot +>> +endobj +57 0 obj +<< /Border [0 0 0] +/Dest (_verifying_your_setup) +/Subtype /Link +/Rect [48.24 689.661 170.538 702.564] +/Type /Annot +>> +endobj +58 0 obj +<< /Border [0 0 0] +/Dest (_verifying_your_setup) +/Subtype /Link +/Rect [540.627 689.661 547.04 702.564] +/Type /Annot +>> +endobj +59 0 obj +<< /Type /Outlines +/Count 7 +/First 60 0 R +/Last 66 0 R +>> +endobj +60 0 obj +<< /Title +/Parent 59 0 R +/Count 0 +/Next 61 0 R +/Dest [7 0 R /XYZ 0 841.89 null] +>> +endobj +61 0 obj +<< /Title +/Parent 59 0 R +/Count 0 +/Next 62 0 R +/Prev 60 0 R +/Dest [13 0 R /XYZ 0 841.89 null] +>> +endobj +62 0 obj +<< /Title +/Parent 59 0 R +/Count 0 +/Next 63 0 R +/Prev 61 0 R +/Dest [15 0 R /XYZ 0 841.89 null] +>> +endobj +63 0 obj +<< /Title +/Parent 59 0 R +/Count 0 +/Next 64 0 R +/Prev 62 0 R +/Dest [15 0 R /XYZ 0 624.655 null] +>> +endobj +64 0 obj +<< /Title +/Parent 59 0 R +/Count 0 +/Next 65 0 R +/Prev 63 0 R +/Dest [15 0 R /XYZ 0 194.2013 null] +>> +endobj +65 0 obj +<< /Title +/Parent 59 0 R +/Count 0 +/Next 66 0 R +/Prev 64 0 R +/Dest [40 0 R /XYZ 0 722.1268 null] +>> +endobj +66 0 obj +<< /Title +/Parent 59 0 R +/Count 0 +/Prev 65 0 R +/Dest [40 0 R /XYZ 0 625.2639 null] +>> +endobj +67 0 obj +<< /Nums [0 << /P (i) +>> 1 << /P (ii) +>> 2 << /P (1) +>> 3 << /P (2) +>>] +>> +endobj +68 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 162 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 54.0 m +547.04 54.0 l +S +Q +Q + +endstream +endobj +69 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 162 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 54.0 m +547.04 54.0 l +S +Q +Q + +endstream +endobj +70 0 obj +<< /Length1 8712 +/Length 4884 +/Filter [/FlateDecode] +>> +stream +xXkp[u޽AP$).xA". ( R)$QDR-R(J-QgL҉dԱ;ę^HfֿLIq餝FSg3y~g/HzةS`pٳ{8c53 L~v·0OʓӏW9~4}v"6 S3Z<˝:5F?04g!l}u^?׈Wm=6cX<qzJ`sS?NəKX~2f&.Ϋ-1g iek;=dTEYc|)T-g9]*UWX#.|m LR̹|:C[i).j䷖,KK~ړ?+YCKrr9%<^b- 1 EK" WJa'$Rnw.iuԄ6rTK&㻟/{W_%,j古lwřr%y KEfU&8q86xj-j[PZ=U^okK}+8~{әM8ѽk'O6ՙNKFp@uRK;vyo? + +=ˀRHc!)b +wU,76ʪp.0521|i֜M?Yj|: U0= 8, +/ qXg]OHYL{. I{ĉLtK&3H߁5GbFLQ,\x-+>+U]-um-<_s4|W3C"=;4xGһKW_5 NF+8 -PozE)bn%jOU%~W xت%Mj|yo_&e~Z2\R-v9ZYeKrZ,YOg*X-VBTm\QR);Z8*A,0.|02VPoMZ.Au`^R~u˶R +[m[Be{GVZ.V>x,PݎۛssK_k{]Zj[uL*Y={%praoZ$>n",=TMD]Ilb FLFgVFnno#L j.;򀯅AdKjo_?K[t ]N&/e55)tS"YOnlif>Y>Dձ]v#[Q +3qD1EV1( l.kz^OjThX+Kdvg{Xz` nsfwk(',$ FeH B^*9Glϟ"v2k4+OТ^%yta )Jrr{X%[ r"%DQSʸErq&ܚۺ.DzBlO"cڋK?ރ~#y baM6ڝZSZ;j BZQz&N$ل _I& /$OMxx?Wdz]Ej`@ӺzfZ=daY44v;3Zsϡ]{fmk6:w o6:6ݕ:L1+_^D.r+$?mt*8T#TLd.7j/ ֶVOG#|Z:WL.Yx`vse 瓏?>ut@d"OPDw#E/deT +J3Y(OVuU% +KzѺ;O_^' |,7 m%au@@FpQLr)Hx.kr-%/wI]/%q텶 +V0tf9=X̽ +l.qO >ƇQM2G@FK#HX΄T5m?,nMyg O&[`N*|S٪=nI !^2uqJ%ʛ[5BjemA6F탈]eq^rͭ-X͕ІD4gALZEZfxS3i8E6d;+\qE7t)"tW"]vʱ"dU"bNyytͲ{d|pj;V~t1||Mt{\̙+(Gۿ +ʁE`Yŵ2 jDؐtuR5KJF^OL$ k"7葌_3Nc(F'Q٬Z0F#=hf|/Qab^5L#*9j'=o5 f "fpTGT]*M;v<#lV3X:3͆ YWYiK<1,Z̰j1x\Pt J3ϴ-0&?&ꢺfK`Ҿh6eYՈ`G` n;]-!FZ,oHO|VaU2u|Qq$\Xr=T~ݶ&jJsRx&wNM,jy@( +ꃑ+V"ZTQzFkkmЅCK2çMQpo5&=a\eZBerꍢW^بDkTsbN5*Zp)l e'0ʦKaåF2Ϗq ?)8qcFE+ѣ{ !:ml&e+Ϝ%<4'CupU׀V`{ӟ+ +LJ<1ZLM|.J+S,+TZCƗBzTܡ Z/pZ/ڍzB&`֧l;B tmwÚš1mѴfһ:yΜ NΙu:3B_-vZ?Q?jGmQQu[iXʜGlsqJl=r5.܎ Ы'ZS>y% e 4c{S= yc KaL7va/+1"X.S~MCSj>> +endobj +72 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +73 0 obj +[276 587 587 587 587 587 587 587 587 587 587 587 587 385 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 749 587 587 587 587 587 772 587 319 527 587 587 587 587 842 726 587 731 629 587 587 587 587 587 587 587 587 587 587 587 587 587 607 587 587 687 622 587 587 587 289 587 587 289 587 685 645 587 587 587 515 424 681 578 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587] +endobj +74 0 obj +<< /Length1 15424 +/Length 9389 +/Filter [/FlateDecode] +>> +stream +xz xcWy9^-ZmybKHڽؚ؞x̐I”PJ!MHZ3AG@}eI>:ΕL&{}s{ο/GB!CHdDg`{ᚣ;fg\zMeT)P5. 4i@Fޗ'* Ǐ`k'6ov@qmwR AEY@S:-FV֡s$) #&vDآTRe<}31{,>5ٟ=GߣC. ɟ@j +3ޤVН:Lj]l5aVwNoi#9Be6!̄inDcV.%F0#\ηU +M7^sbXa׿.>9?[AFQ &ntEEP`CEYkܾvBo~"z>;?]:y^S_y*<(cyLu+%-"nn۬FZ<س%bmAfթRzz*͋w4NS`匵 р1J_'6>nk#mDpcX5uUuMxh"X P:P`"*+|\0+ ܔǍQ0yBM 6 ؇ @|[b kbۑ\Zh<8o7ɠȹR޵?$-qTP'  /'+* zc ߐqFԆP&<8bGK Q ~_sF._-657VNT] E#2_ʖwk +;FPxi?˦oc!M&-غ7? -Xy23vwvu|1Dw p +zQգTg/o\f rw5:zУE6Gc$GD=q]Ym33w61ÙV̹=GFSIP+AZx|51 &דڣdf ZZh杅L +.^D HJC9Y%~WPBq@U 9 XTh4:m5`WL*ma*.qZ1^hfW>\5BB.fcy5xx0v]RVrIs*S,V6#[b$ O.G2ώd2#>=I=<= pgn-(srhyfTV0 +"bC[ah[\2JNzo.l2ug5v,߄;{~CQZ*U1ce{лH%ԓdI@3ahDIV  lXLJ9x +Dnj?&s7JJ> `y,N-TH z +U nPCyDkS {印=5+f1?#g|] l1z? vo߮WҏɈQlj5`rw$JpS͝,8?ӫ=2+==+)LϜlg%>JQ[|(x5ZRr&SzFUoYZU$K4m*+Ojtt +bU׾Xl_W\b(5*[ ,=֟Ő !4@.8!*FRniUv GߊTіn3EfdSvpU"n9|dToe>ז?86&؅i>tٶ^cVNeCʽUyZV͍TF^lVqQ=q6b\4Z;GLpbnFL̞GTx, 2Wh8>hdcGh 9a療Zc2R [Tz8#NUxWSz&&ϴwx[BьujLμ-' }!VO2kXHQ4ߣ +WkDn*6JqDEx}41: TW7`F]c0`ZB*+)sSc!?567>JF}}nWn5>[Hû)뮤Ks]C]67Q67vt!5PGtE\17'NVt F4]mmB`>=x0>8ȁp67ɏxuo$zFaPokP9^{[Cp6Ix?v(ry+Ԅla؊EWze5 ,F#ahDhomKcle2^w`/2]ʙ  +(A }<̙N޺Z' q#Lz,MUFjlv9/w* ȡ:cs7ә SA_gw:sMz{J?8+r;, +fc;8v[فؽo`V3x8]evxMutnr9ai=zGC"f4{iA+ E4bg;smˇ+u`:ݯkW6`Wk 1qUGd]-}c V˪,0 T">Sֆ;v44v3m :<ƆANGR6WvO{& 9ΐ #@Ez}<1i?H@FdAxj LƷmy͵@uFz~ܤ>g`n$+K&nŔ::xh"~6 +`TgWTjm{y)E6adzJ@6lSV +r ]Ar5|r_* t6gnhoo*~ )#^dfG!HOνyS奃rL<ݸJ4]-q|LWa AL^.<r»?V|,\JAc@ XY%)9 +]uj5ԕA[M$JzljEsrJ4|HOTw/+>}5񍯫Jj_a,lÿ]4[U~\J11`$-8ʖzsۣ>n뻟OqŮ:1[cJ/A!Рgt/w~C:$_chf#N+VEC>. ~Op(A2C'īxT]ʹ I q4(32f_̈́#t$LWA?"YQAX.G +1T@ -K /rnI^SERq\=śJrIyTAպkzJ}_UN}oh}ڃݝ/?3 >beL1Tk>u7r!x7b hiIt jF&HsfVvT Z5@\q!7^6`ԎxUC(zPW$JÚY4G94&!AyB3hy"> ?pUuD';P*_dR2L2̡0z k˰NȎSWD2\ eX2Ia= +s+2 k0˰i2 )t(:΃n5.Yt@P]D)_aO%ctvV?Q؃b\(N0zV8^st;۷vo E3QxjA h|`vzCE"VD֑e_db8TTbRܣ(pة(࿾c ++r Cqz)[(26P +C;Az~Qi\) +& #PB=ˎe%iS+YP";ޑ(Ԕ+hD+E:\(B +B@.OT~QRII-&ArdIINRv2SR-gV$ )pTABӋyGq(A.œʥLJ +HU)Up &u5܊IEL%rWIkVl@WfjW(I[SmHZyR"R*D@dJPXL[qO!6k;CtPd`, B2j1.*!5N4$ L EΒ),\Y$] 7t%K9^ʃ'ٸ%jR55) O]L+aF t@|o +h5"Hݦ] +옴mM'wLz&ʓBI1Ly}^2?'']-?zu k+Gm?z AfضvY臗SLAj/ucvOoV+17 5=˷"DGehx'"&d޺'mi1w#0p{kR4K ,|@E ڱ+WF&!Bjj CIv@!t%Ruʿv%( +Xs`7ד elAZ%>xQ4j z 1,)S2 {rzS˫ +|x[)i,X4uiRlX6rpU2`p ++R"ܔ>!u{/0,UxʲALC[Sg)blKY[ +)AUVt"FV-JRu-JV+*CR)f%{j1* ~5;MD* ӆ4Q: cڧG|*:5P'' lh T4_VLyqlPP^2#݀)RfKc PRxی`9l1KQ'R\&3 n! "5hi=e)0 ld0Gq(0Oq(P`!p ba +E0 +kX> +endobj +76 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +77 0 obj +[341 500 500 500 500 500 500 500 350 350 500 500 266 510 266 437 622 390 583 583 611 582 608 500 616 617 296 500 500 500 500 500 500 660 653 686 721 638 610 724 500 296 566 656 598 854 734 748 610 500 665 641 604 708 648 961 500 500 500 500 500 500 500 539 500 566 627 560 627 577 393 532 619 266 266 567 306 953 619 600 627 627 408 527 419 617 520 836 533 516 534 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 430 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 341 500 500 500 500 500 664 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +78 0 obj +<< /Length1 11460 +/Length 6820 +/Filter [/FlateDecode] +>> +stream +xy p[y9^.x / @HH >$EjmJܮ$g]{^g6&iUOzӸ:mv:IhtjνEJZ;}L!9PBڵҍKwk!!՗7?cN[VZN#x&/]yic#!^Q2OVzogcooa?⍭;Ko^/]۸֫O'na!͍"q}~m޸x~ icBؗ2f(x50(h;足?m4"B/)m?DS[ܲ|UY {Vl S1&y˜(c$p)amnFT_Xngd+Ftg@p0vmz02=wp|xn26q}x3s(nq]&u&\@r Lpfa2EC RR2TOb"i6|{8nW7{Xx/,PLV+A;hz$M 13;-DgNm~stf1Ulj]>1nhmPKvƺ{H|s0fu#8g`Oi"L ädڔ\Z F* {ހ646EK@?uzdO _gWǿro+FYMmW0}E7uO1>&& n-Rm# 8F5|pbW0zH֕C}-d)IC<ǻ? ZgFd0hznz}[CSs#+-;߀H&tC\0Vu]mh!6&ϤKqk _Bq|tҹ0^L[/Rh~05۷1s|oh#x|ҘP,2NN.ң`Ě&H_qM@\+_M~V:+ HK>PӸ('qT<H$θtݞR+{WN϶MtݟZf^fo+%A?T]ɏ? -.)dmM%Os"13%43N'O)Vw}iяXh {H>G3)6DYu.?/~pP}_n1{$Ez3=~hb}$ ke]N;PXdzܽɴIC4JxM: &GYn$:B[RB:贛"`}]5y:z: +Bw†ӶDHée`>`556Ya?24t`%"KՀ;@fƅL biO(G +& RF?xbTB>CI+db6zzÉLYK-VlRg~qvb|:]MZZRH>Zuݽ<3;ˋ;O͝ OL(Ю{Ѝvpa!IsJ2lӾaMk_t[ҡ.35#ϏοнH3Sd#6YZݐ+zgmͳP84ylZ8{ jB|&@/GSq0ZJflX7cѝ[F[|rh:ٓ r+yeFpf U #A-!QQkHLf{f>M}ts`o/Xuԏ]ιu&S|{{kWdH<SO͜ʍMO`l0l<;׮Lի3||ɺùCv=qqC{@S=vЗ:6Rmr?lhM^L/Nn89ˮ\A_G_N X|,{<5x%vs.7yDjbЦqxexyUŚCT4cC<[vQl#*s^éTbd%@zc*'ǒ{klpf *n*Vk%\,PuZJjq7¿5{5 C jGI"N1=eY_TZ. zoh1"c5ngWP,L? ;@m?z5j9yrc:$i7wϜE?ZgFHSܑ8:ks컏#7 g5S'؄n)*Oy"05j E*l2KL%^PO2LItdԧgJ9ȰL|и_:Ş{=ޖ{pSo~t6L&caF_ry$WqG^Wpi&Ru:Ƨ);26W=yZ;fgmlLʎ#1&n$#Iƴ@.;jax%r:tPs9ېnܧڱ*{2=>=73>3z9O xkt"<U?V$w镌E{QK%ůH΅ᴠݥpGڣ< 7T01:-wx'Z^ˆFo--oLŭ_{4DDrB֊Wk=Y5"zqtz}O7m{ƫ۳4+T' + Q=Gk)DqsN߶燜:]0Ee82J\ +xll/W~TORg0n]p䵪`O=cɆtX]9p|vKZNE;͙͡L?>S}Xw|AzcJFAnHM&q7$x5CH6 L9epSʍ9NĭӀB0ݑν;=o0`sy[i6Q(#WtS^yWRwVHPj}QQ\ԧ ZI ah ^dEYyiuqr^OV$`k]ꕩmv% Q=B2a"|<ղe͒9i BŒtRlTdossGub!貯m  o;;G^&ߢ}3ٗGB^ oyizfG>˶A$Mm$N͓{$bFRa?Kgo:6JblL>ln# +%a!_!Ӵ hȤP؊;鯢u^ y־ Kl Ck#^?FzHCD"";VQXYCGV d|x_'!!2tE" L?_#g~/ۮ}Dx>Ҁ_!$ +{$B:Nf,,w$ d,eTߧ8*DEmWNSr +-*HTrNTp4*fROWh ߭5$K_kI5Th`O#}+A_N4ޯFWVbB׀c#[|&%kI@@ +e96l0'^8|v&Cq縅Ȍcr/NL5Un`-%&qf~0VT=3s/]I&rtehx%ĵ XkɁ@teƵ٭\"?"Hy#̑|^$]C2~SI  -`ݸEgWѮ*i>>74;AȓVITpIvܪ4%XFץ{\fnW|sǑ78'ƞ߉]g$Z;A,Vd2/ik7ĔXH𐐉ti} 8dL]bd _`g3,#8 p]v{z|X!Lx0/;'~L⪚`&(>Oͯ!eN🌣lDc +DS]sfw F21ATH*9/HT[UgW>Q(nJWU*@J +*qTQfLe1UPwds+'2s吐SYKZ+ȕUq(lhum@.œՍ}/eځ +QՓ[\%*\~-Uέٿ* ʀ[@ unHԁJOR{||*ݒZVS/@ܚJVU2˙gVNΖ8x`  +,Z(T4(HGbA *A'SnaU5Y,ga,)T7˦ YOruS5k+ɜ+r!W RaU. +Y^ŜR%ՒGhhѕ2EΖTvaSkD5uT"qi렖H.H|5S,p&Uo#|+p85QGwQE)+Q5D*%L+&#l\ b?V:ES][-8/ +]pbRf,&bC$ ,:xo =f/'6rhH` '\Q-JzejY\(UۆRLu)?q6Vʤ>wz\_Si):eT2ʩd>^C< +)?Y)l2\H2VCE "l# +Qy'S}JQ) mR"oJflmR6U)yۦ-*re)xTФ`dd`>))DG?IaorE~j~oЏ!0m 6H#v+8(!bN-1ΝGQj73>ri@'rɪuS>N]@z +<[~DMi o$4Vxa" Iqi@{|wwJB2Y iR!yUDՐV+GE7v$blR\O5"*ܒZ%($bTkEdQ5枌"O{$ji1W.DE O2NW5q'W#0 O!.JJ}|aQC<LVm~Rr+@ȕёVɩո4K_\Sz1kI+'U8(N4R{q;~dvɿpd6̵?iENQ? EB6cPYaиڃyMea*:wPGO*e+.M\'FdC(TBVQFo8+T98 aOvRӠugD4Mɿ;eV}ߩ}ostA +endstream +endobj +79 0 obj +<< /Type /FontDescriptor +/FontName /c28878+WorkSans-SemiBold +/FontFile2 78 0 R +/FontBBox [-216 -337 1283 1100] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +80 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +81 0 obj +[306 500 500 500 500 500 500 500 500 500 500 500 500 500 281 500 500 416 591 589 633 582 500 500 500 500 500 500 500 500 500 500 500 500 500 683 500 500 500 500 500 310 500 500 500 500 500 500 500 500 500 644 635 500 670 500 500 500 500 500 500 500 500 500 500 574 627 564 627 579 407 549 619 282 500 602 319 945 619 599 627 627 422 531 430 618 500 500 500 546 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +82 0 obj +<< /Length1 8728 +/Length 4784 +/Filter [/FlateDecode] +>> +stream +xYilcuGR EI-ԌDj#/"Ei4fe$ؤYY3%(pNQ#6iRSN +()5IvIm~=R#htAIP{{99 c%YطW.d0xOZ~njE_Zɸ=_0fo셍kץy;{v-SW/S_\[[}?c}^te!a Ϳ~2yƔױj'ceYEg.S>c}9+Onӥ1K@8#!D+J$% j+(D[X1RcH~5ELgee&PŦʝekujS> 'ߗ޸}h֊EyrY H X#X61$?bõjW9le;;zMDjͭc;{_F77fZ;m5@xjlpk~5@t]z=>|Q Y 1QK8grb@wװ=6T.VZ禃͏,9'VN4?YyԱ.5͍./w#ӰUG<0D43xr:d;|+o&Gzw>&6swK$§Dq"<#Ԍ+ +Vp;%xL1PPw@Vn`RT; 8J]si/k6v KFs~ޟ=ܫ kΪT6^hjyաsýǷ½c #'Cmx}!Q,ϑŦ&'K.=<́h%CgM{z^Pnhei&οZyl6\`ΘO^>[fuՇjK:u'rX==jw|+#' h[Mh[cqRЙu>vG[ksz̤;8%}@7;^Wމw)ԆHہǗnH>ĦQ6,4)Yd RNQjGшT o)Ggkqgb搸 1zrh)lm, ǃh3 (<=rَ^Wr^Us1:7\ RPX,A:nsf/:JlV̋v5M*>:ϹؐU޶[`))w#[J9_.U^Tr0RJybmZ){5"S*Ǥ[ * H6.$kGq86(A7RɨU.y Ϟ}9ѐ;2:e>"f=kuG7'WF7&FjF;"^5c?ɗusD#84oϤ5);Lcވ 7 )7f<+Kn)R尺wZd44YLGe}ZYuQUQ3(ᷮݵebю%ϊ_ Κj #B " vƩQwnu*0ȃ\i5j%kleFٷJ/O:+ݽpxq`|dar@bqC4m9\X팇ZbM!:"-y[;͒sfmHQV4 y$ebK7wLŔrgE%wH@o#^՚<vg~ex<nM>U CzWv˓?SZW-*lกK/Vm6/C{W'հ#<8* oe!)y_B/'cK ,_Rc[t%~uSqmxc,;ʦ 6I2PW=cɜg_~e~NVp9-țr/0V X9#'B\̢<g9);X)cazNV _EHNN+b[gO;β pՁ7vvF.uqS<˰ +F.G_1f'О5o2VWX?8m l1ѫX\/h3{C7`$ΰXeC|2<>oA/>p ~ap$ >bwV0ou3tcWBBE9w$ϭU?I3,< Oq K`be厉0Y\3]cyjdŚ1{'Nř[7{W޷cҞcYc}dӗ q\e'iiQ{7z[W&u]WrPQƞ3f|ߜ8c(UI:~>{t׬u^n?4(x0z`.Suge=lH!KqM=/WJrj+ /KcRDRb ;7+n:o:noݴD/ gCbclRD^MRu,D +9Rl# ]([WW +DRzTT$]R=P^JleƘ`*d!Ss&n&UH`(#/R&5a(SEy3TfFEd#*H!'Mu/؊`sIC$ʼWV-RY0yRWMEWa'[,6-* +(")鐰t u5k[$wWaiAS7Mml2fRI-K"2KL . +c- ttѢ!-|[KH*Y[ +[ViI3-ҷ +,vXߟHvs 1VZjͼzadJVˌ[gh,IpFq|$qX͌D1Z"$ʨ7^/'*3HQ +vXZL B\ZHfձT(YӮD>57>W.=c'p!RS?{ ٟ@}7c۲iyki +N2`'Yf5lxsnD˭, IQEոp J4Rх4l۪*YFĄ @u7z恳`HTYNmZYZP[gҳ6jjl!A]BXӠ\SÂcgW QvM3Q;^|O]Z Q?jFGmQ ꠑ:J~<3bmEkP`LL Ө)KwcuXz%kxՑC0]mXލLL=q~ƙoذ֗n|ǩD "W?1_ T@6b>.0܏")~ś(6Únb́05l'8 9*T\"jQ7&[3>i*{IW5aj%BNSɻ{NA#vGWQfW+1aAYY+~2B\Ia0υQK Dž6vUЏk)EqxBrdZdXē dW.Gor% AٞF)?ǒX>\ir>ԏ08.*cɄWu0ζq>7O=p͈?eb (}hXaFp3`2M-jN ql:)͔bؠR'_|(<+G/9ov)nZ^=83>師BB43btx:SB'-!$ pf-nA0F 3a0$$ !aIZ )̱ Izptp0 3!M{=IX=IX!Q!a0$& g 5"aIvaI H`EE..=)BL(zWa6L0O#}',b ;i&c}B +endstream +endobj +83 0 obj +<< /Type /FontDescriptor +/FontName /238de3+WorkSans-Italic +/FontFile2 82 0 R +/FontBBox [-261 -292 1316 1100] +/Flags 68 +/StemV 0 +/ItalicAngle -13.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +84 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +85 0 obj +[336 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 645 674 500 500 500 500 500 500 500 500 586 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 616 616 538 616 572 500 500 500 258 500 500 303 500 600 595 500 500 388 512 500 500 500 500 500 504 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +86 0 obj +<< /Length1 2080 +/Length 925 +/Filter [/FlateDecode] +>> +stream +xTAoGf6YA0XMSp6 !T^ʻ`"9pҞZT\*q(+jVRi' "H\7yof0430V [;+\]ot|1A.) K8fcJ,Cy9 ۄ >aq<]s +PG=2gO ?I>C?C/4W7 nv`7yXȔjʙBј׎/`d4]_vKriihg5vk=,ŢG5[FI:=Wf B_{!`.:J{ ;ZOJXMkl OlE :Kn )FrƆn˯Zn8NniIcP3 ,Ku+tJܔJ-J,+ ۓib+Is8~:9UvI~䇠+W%?7Ƙ M0 %]^RgGKBϯvCɣx*r W;uf6E +endstream +endobj +87 0 obj +<< /Type /FontDescriptor +/FontName /5714a6+FontAwesome5Free-Solid +/FontFile2 86 0 R +/FontBBox [-39 -148 1291 900] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 875 +/Descent -125 +/CapHeight 421 +/XHeight 314 +>> +endobj +88 0 obj +<< /Length 227 +/Filter [/FlateDecode] +>> +stream +x]Mn bTM7YGM{&Ej9d0ԅ-?=ay +wJv>DG,ŒK[nu,$ӱ\h-[NO. 98}]&Ӟ (1 C/&A6<:C9m|oᖍE2qAY6$tϋJqcF=Fsٝ#3,5ExTNR~ pZ +endstream +endobj +89 0 obj +[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000] +endobj +xref +0 90 +0000000000 65535 f +0000000015 00000 n +0000000283 00000 n +0000000485 00000 n +0000000563 00000 n +0000000614 00000 n +0000000886 00000 n +0000008566 00000 n +0000008901 00000 n +0000009651 00000 n +0000012153 00000 n +0000012328 00000 n +0000012500 00000 n +0000016198 00000 n +0000016590 00000 n +0000028172 00000 n +0000028642 00000 n +0000028686 00000 n +0000028735 00000 n +0000028944 00000 n +0000028988 00000 n +0000029161 00000 n +0000029352 00000 n +0000029542 00000 n +0000029587 00000 n +0000029780 00000 n +0000029981 00000 n +0000030181 00000 n +0000030380 00000 n +0000030601 00000 n +0000030771 00000 n +0000030946 00000 n +0000031114 00000 n +0000031302 00000 n +0000031469 00000 n +0000031637 00000 n +0000031683 00000 n +0000031854 00000 n +0000032046 00000 n +0000032232 00000 n +0000039675 00000 n +0000040094 00000 n +0000040325 00000 n +0000040555 00000 n +0000040601 00000 n +0000040795 00000 n +0000040990 00000 n +0000041036 00000 n +0000041132 00000 n +0000041310 00000 n +0000041436 00000 n +0000041562 00000 n +0000041694 00000 n +0000041826 00000 n +0000041951 00000 n +0000042076 00000 n +0000042228 00000 n +0000042381 00000 n +0000042515 00000 n +0000042650 00000 n +0000042724 00000 n +0000042962 00000 n +0000043150 00000 n +0000043330 00000 n +0000043539 00000 n +0000043721 00000 n +0000044007 00000 n +0000044208 00000 n +0000044299 00000 n +0000044569 00000 n +0000044839 00000 n +0000049813 00000 n +0000050034 00000 n +0000051396 00000 n +0000052310 00000 n +0000061790 00000 n +0000062008 00000 n +0000063370 00000 n +0000064284 00000 n +0000071195 00000 n +0000071414 00000 n +0000072776 00000 n +0000073690 00000 n +0000078564 00000 n +0000078784 00000 n +0000080146 00000 n +0000081060 00000 n +0000082074 00000 n +0000082296 00000 n +0000082598 00000 n +trailer +<< /Size 90 +/Root 2 0 R +/Info 1 0 R +>> +startxref +83736 +%%EOF diff --git a/dk.gov.oiosi.library/released/OIORASP_Java_ReleaseNotes.pdf b/dk.gov.oiosi.library/released/OIORASP_Java_ReleaseNotes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b3b76f3dce9ba78c7485f8b658c2de9bdc5e688a --- /dev/null +++ b/dk.gov.oiosi.library/released/OIORASP_Java_ReleaseNotes.pdf @@ -0,0 +1,11973 @@ +%PDF-1.4 +% +1 0 obj +<< /Title (OIORASP Java - Release Notes) +/Author (Danish Business Authority) +/Creator (Asciidoctor PDF 1.5.3, based on Prawn 2.2.2) +/Producer (Danish Business Authority) +/ModDate (D:20210527131629+02'00') +/CreationDate (D:20210527131844+02'00') +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +/Names 17 0 R +/Outlines 145 0 R +/PageLabels 171 0 R +/PageMode /UseOutlines +/OpenAction [7 0 R /FitH 841.89] +/ViewerPreferences << /DisplayDocTitle true +>> +>> +endobj +3 0 obj +<< /Type /Pages +/Count 16 +/Kids [7 0 R 13 0 R 15 0 R 31 0 R 41 0 R 53 0 R 55 0 R 57 0 R 59 0 R 65 0 R 73 0 R 81 0 R 86 0 R 89 0 R 91 0 R 97 0 R] +>> +endobj +4 0 obj +<< /Length 2 +>> +stream +q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +>> +>> +endobj +6 0 obj +<< /Length 7618 +>> +stream +q +q +0.0 0.0091 m +595.28 0.0091 l +595.28 841.8809 l +0.0 841.8809 l +h +W n +/DeviceRGB cs +0.0 0.0 0.0 scn +0.99997 0.00000 0.00000 0.99997 0.00000 0.02828 cm +1.00000 0.00000 0.00000 1.00000 0.00000 -0.00000 cm +q +Q +q +0.9569 0.9608 0.9686 scn +0.0 333.8809 595.3 144.1 re +f +Q +q +0.9529 0.9608 0.9647 scn +0.0 320.5809 595.3 157.4 re +f +Q +q +q +Q +q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +295.7 377.2809 m +295.7 385.7809 306.2 389.6809 311.8 383.3809 c +312.0 383.1809 l +370.4 313.8809 l +370.4 377.2809 l +370.4 382.2809 374.4 386.3809 379.4 386.4809 c +379.6 386.4809 l +384.6 386.4809 388.7 382.4809 388.8 377.4809 c +388.8 377.2809 l +388.8 288.6809 l +388.8 280.1809 378.3 276.2809 372.7 282.5809 c +372.5 282.7809 l +314.1 352.0809 l +314.1 288.6809 l +314.1 283.6809 310.1 279.5809 305.1 279.4809 c +304.9 279.4809 l +299.9 279.4809 295.8 283.4809 295.7 288.4809 c +295.7 288.6809 l +295.7 377.2809 l +h +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +424.0 385.4809 m +483.4 385.4809 l +488.5 385.4809 492.6 381.3809 492.6 376.2809 c +492.6 371.1809 488.5 367.0809 483.4 367.0809 c +424.0 367.0809 l +418.9 367.0809 414.8 371.1809 414.8 376.2809 c +414.8 381.3809 418.9 385.4809 424.0 385.4809 c +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +424.0 341.8809 m +483.4 341.8809 l +488.5 341.8809 492.6 337.7809 492.6 332.6809 c +492.6 327.5809 488.5 323.4809 483.4 323.4809 c +424.0 323.4809 l +418.9 323.4809 414.8 327.5809 414.8 332.6809 c +414.8 337.7809 418.9 341.8809 424.0 341.8809 c +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +607.0 382.6809 m +612.2 389.7809 623.4 386.1809 623.7 377.4809 c +623.7 377.1809 l +623.7 288.5809 l +623.7 283.4809 619.6 279.3809 614.5 279.3809 c +609.5 279.3809 605.4 283.3809 605.3 288.3809 c +605.3 288.5809 l +605.3 349.0809 l +578.5 312.4809 l +574.9 307.4809 567.4 307.4809 563.7 312.3809 c +563.6 312.5809 l +537.3 348.8809 l +537.3 288.6809 l +537.3 283.6809 533.3 279.5809 528.3 279.4809 c +528.1 279.4809 l +523.1 279.4809 519.0 283.4809 518.9 288.4809 c +518.9 288.6809 l +518.9 377.2809 l +518.9 386.0809 530.1 389.7809 535.4 382.8809 c +535.6 382.6809 l +571.1 333.5809 l +607.0 382.6809 l +h +f +Q +Q +Q +q +q +Q +q +Q +q +q +q +q +52.6 493.9809 138.9 15.0 re +Q +Q +W n +0.0 0.5176 0.4745 scn +2 j +78.6 508.6809 m +79.3 508.6809 79.9 508.0809 79.9 507.3809 c +79.9 506.6809 79.3 506.0809 78.6 506.0809 c +70.4 506.0809 l +69.7 506.0809 69.1 506.6809 69.1 507.3809 c +69.1 508.0809 69.7 508.6809 70.4 508.6809 c +78.6 508.6809 l +h +78.6 502.6809 m +79.3 502.6809 79.9 502.0809 79.9 501.3809 c +79.9 500.6809 79.3 500.0809 78.6 500.0809 c +70.4 500.0809 l +69.7 500.0809 69.1 500.6809 69.1 501.3809 c +69.1 502.0809 69.7 502.6809 70.4 502.6809 c +78.6 502.6809 l +h +78.6 496.5809 m +79.3 496.5809 79.9 495.9809 79.9 495.2809 c +79.9 494.5809 79.3 493.9809 78.6 493.9809 c +70.4 493.9809 l +69.7 493.9809 69.1 494.5809 69.1 495.2809 c +69.1 495.9809 69.7 496.5809 70.4 496.5809 c +78.6 496.5809 l +h +98.1 507.5809 m +98.1 495.1809 l +98.1 494.4809 97.5 493.8809 96.8 493.8809 c +96.1 493.8809 95.5 494.4809 95.5 495.0809 c +95.5 495.0809 l +95.5 503.4809 l +91.8 498.3809 l +91.3 497.6809 90.3 497.6809 89.7 498.3809 c +89.7 498.3809 l +86.1 503.3809 l +86.1 494.9809 l +86.1 494.2809 85.5 493.6809 84.9 493.6809 c +84.9 493.6809 l +84.2 493.6809 83.6 494.2809 83.6 494.8809 c +83.6 494.8809 l +83.6 507.1809 l +83.6 508.3809 85.2 508.8809 85.9 507.9809 c +85.9 507.9809 l +90.8 501.1809 l +95.8 507.9809 l +96.5 509.2809 98.1 508.7809 98.1 507.5809 c +54.8 508.3809 m +54.8 508.3809 l +62.9 498.6809 l +62.9 507.4809 l +62.9 508.1809 63.5 508.7809 64.1 508.7809 c +64.1 508.7809 l +64.8 508.7809 65.4 508.1809 65.4 507.5809 c +65.4 507.5809 l +65.4 495.2809 l +65.4 494.0809 63.9 493.5809 63.2 494.3809 c +63.2 494.3809 l +55.1 503.9809 l +55.1 495.1809 l +55.1 494.4809 54.5 493.8809 53.9 493.8809 c +53.9 493.8809 l +53.2 493.8809 52.6 494.4809 52.6 495.0809 c +52.6 507.4809 l +52.6 508.7809 54.1 509.2809 54.8 508.3809 c +f +Q +Q +q +q +q +q +52.6 493.9809 138.9 15.0 re +Q +Q +W n +0.0863 0.2431 0.3176 scn +2 j +190.0 494.0809 m +190.4 494.0809 190.8 494.3809 190.8 494.8809 c +190.8 495.2809 190.5 495.6809 190.0 495.6809 c +182.4 495.6809 l +182.4 508.0809 l +182.4 508.5809 182.0 508.8809 181.6 508.8809 c +181.2 508.8809 180.8 508.4809 180.8 508.0809 c +180.8 494.8809 l +180.8 494.3809 181.2 494.0809 181.6 494.0809 c +190.0 494.0809 l +h +176.7 494.0809 m +177.1 494.0809 177.5 494.3809 177.5 494.8809 c +177.5 495.2809 177.2 495.6809 176.7 495.6809 c +168.3 495.6809 l +168.3 500.8809 l +175.7 500.8809 l +176.1 500.8809 176.5 501.1809 176.5 501.6809 c +176.5 502.0809 176.2 502.4809 175.7 502.4809 c +168.3 502.4809 l +168.3 507.4809 l +176.6 507.4809 l +177.0 507.4809 177.4 507.7809 177.4 508.2809 c +177.4 508.6809 177.1 509.0809 176.6 509.0809 c +167.5 509.0809 l +167.1 509.0809 166.7 508.6809 166.7 508.2809 c +166.7 495.2809 l +166.7 494.7809 167.1 494.4809 167.5 494.4809 c +176.7 494.4809 l +h +155.7 507.2809 m +152.3 507.2809 l +152.3 495.6809 l +155.7 495.6809 l +159.4 495.6809 161.8 498.1809 161.8 501.4809 c +161.8 501.4809 l +161.8 504.6809 159.4 507.2809 155.7 507.2809 c +155.7 508.7809 m +160.3 508.7809 163.5 505.5809 163.5 501.4809 c +163.5 501.4809 l +163.5 497.3809 160.3 494.0809 155.7 494.0809 c +151.4 494.0809 l +151.0 494.0809 150.6 494.4809 150.6 494.8809 c +150.6 507.8809 l +150.6 508.3809 151.0 508.6809 151.4 508.6809 c +155.7 508.6809 l +h +135.2 493.9809 m +135.7 493.9809 136.0 494.3809 136.0 494.7809 c +136.0 506.1809 l +145.1 494.4809 l +145.4 494.1809 145.6 493.9809 146.0 493.9809 c +146.1 493.9809 l +146.5 493.9809 146.9 494.2809 146.9 494.7809 c +146.9 508.0809 l +146.9 508.4809 146.5 508.8809 146.1 508.8809 c +145.6 508.8809 145.3 508.4809 145.3 508.0809 c +145.3 496.9809 l +136.4 508.3809 l +136.2 508.6809 135.9 508.8809 135.6 508.8809 c +135.4 508.8809 l +135.0 508.8809 134.6 508.4809 134.6 508.0809 c +134.6 494.8809 l +134.4 494.2809 134.8 493.9809 135.2 493.9809 c +124.4 506.9809 m +121.0 499.4809 l +127.8 499.4809 l +124.4 506.9809 l +h +124.5 508.9809 m +125.0 508.9809 125.3 508.6809 125.5 508.2809 c +131.5 495.2809 l +131.6 495.1809 131.6 494.9809 131.6 494.8809 c +131.6 494.4809 131.2 494.0809 130.8 494.0809 c +130.4 494.0809 130.1 494.3809 130.0 494.6809 c +128.5 498.0809 l +120.4 498.0809 l +118.9 494.6809 l +118.8 494.2809 118.5 494.0809 118.1 494.0809 c +117.7 494.0809 117.3 494.3809 117.3 494.8809 c +117.3 494.9809 117.3 495.1809 117.4 495.2809 c +123.4 508.3809 l +123.5 508.6809 123.8 508.9809 124.5 508.9809 c +124.5 508.9809 l +h +113.5 493.9809 m +113.9 493.9809 114.3 494.3809 114.3 494.7809 c +114.3 507.9809 l +114.3 508.4809 113.9 508.7809 113.5 508.7809 c +113.0 508.7809 112.7 508.3809 112.7 507.9809 c +112.7 502.1809 l +104.2 502.1809 l +104.2 507.9809 l +104.2 508.4809 103.8 508.7809 103.4 508.7809 c +103.0 508.7809 102.6 508.3809 102.6 507.9809 c +102.6 494.7809 l +102.6 494.2809 103.0 493.9809 103.4 493.9809 c +103.9 493.9809 104.2 494.3809 104.2 494.7809 c +104.2 500.6809 l +112.7 500.6809 l +112.7 494.7809 l +112.6 494.2809 113.0 493.9809 113.5 493.9809 c +f +Q +Q +Q +Q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN + +q +149.64 0.0 0.0 51.0136 48.24 754.8764 cm +/I1 Do +Q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN + +BT +48.24 425.694 Td +/F3.0 18 Tf +<4f494f52415350204a617661202d2052656c65617365204e6f746573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0941 0.0941 0.0941 scn +0.0941 0.0941 0.0941 SCN + +BT +48.24 395.9324 Td +/F2.0 13 Tf +<44616e69736820427573696e65737320417574686f72697479> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 367.7041 Td +/F2.0 11 Tf +<56657273696f6e20332e302e302e524331> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q + +endstream +endobj +7 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 6 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F3.0 10 0 R +/F2.0 11 0 R +>> +/XObject << /I1 8 0 R +>> +>> +>> +endobj +8 0 obj +<< /Type /XObject +/Subtype /Image +/Height 90 +/Width 264 +/BitsPerComponent 8 +/ColorSpace /DeviceRGB +/SMask 9 0 R +/Length 489 +/Filter [/FlateDecode] +/DecodeParms [<< /Predictor 15 +/Colors 3 +/BitsPerComponent 8 +/Columns 264 +>>] +>> +stream +xKN@q&R)Ȳ38043N\{>޿]GyuV^GH+c{״4TX13lL={BV @0 0|os\} F?K^FS̮>!'tR`TVi]%/+ٕVͱUXQ魤eo~("}FM-JöCFCcߖ`u\+$l_ +~|{3 /bΊ~X>L- ,O?M*ZpVuӵiD+5##pZ)cFΌ~6nbQx@'VӖJA`@w_G+`@@0  @0  @0  <+@ `PƌV +2Z)Ri(cW +2f Rxk+P'Mk% +endstream +endobj +9 0 obj +<< /Type /XObject +/Subtype /Image +/Height 90 +/Width 264 +/BitsPerComponent 8 +/ColorSpace /DeviceGray +/Decode [0 1] +/Length 2238 +/Filter [/FlateDecode] +/DecodeParms [<< /Predictor 15 +/Colors 1 +/BitsPerComponent 8 +/Columns 264 +>>] +>> +stream +x\YnV Jx+T@RI +b*DħȲey=|F?ؙ͌t36YlOlN~f\ZƑ#r ?Pl<_l8`:6' ߰ K^H#_"Rāf#>*.DIؚq@d><61ezÙyddL2̾fј-`1<8S؉0ZޫVһ.vp#82Ux\LXi%v`Bvg!tGGc3,_vrz1/kh p=' e')Xxϰ!/~*I;t`44G'Ϭ el Cɰ| o#@#Rth Tht,Ѳj +E`:U(:z18%  1ib@ct\݊YyN!/\Ð1/)˻gV6E0<YHF7@ro BgS,֢+Yg\1]b %cR]l69G4LveJ1cSۢ*o m-Ԕ6Lf2Lcic%LHLNG<$LDSXg?%vA3m0Rj2dꀍ_YM_^jBBs 0zW̮ѓY JoA暴BF{H?ؑ}ߊ(Z/AO_^u ݊]|a+_ksx}v=3xF|߱#\]mT)VOYk?niB݂IހTnGHJxJe !cWO:B_`#źpt@(@QƾheC# T-1CGrR^@]@8OGR  >ҼW?ڼZoL,#/o`vuB"6+'@\Lg:әt3L߅~ +¾ +( hiw󵀊#?5ԌYQ{xaꢪsX 2Těe&)1+C6J؜`*ϊ',:|ì;,چY7hIuِc(] +U{lR7p!*UMYSrDU Q7ZvM_ŴS7jsiċ,оΝ[\–0*snn|I7GW=աEz }cM2$9T3:vndڝSf^."A V\m%ܒ{$juʰe,-:(l]$,‘x]PG5H7WVj]aAʽ4b2̹OL2"%,^`cҫ -gih٥B9 +DOmpyeiP vju4I,{i٫R4wQ9H^5g5'Unԍ3k2qIu5/fj W5)ޓ6UOI7nͩw1!nԍ-k5Z[fI3c=S*d0[z*{2f"},ev+WD8 +u: +b]K][nҍu,[K.'uɝ960f;e')c` %Φ2M\n=c 嶟Ah[&x۟- IB5,r["SMP@3 vZ>ľvֆM8Jٍ*:C;oRVI E%p ͺ텎PGZ sSnzߒ!Ѡ}NxON&B~Ku5Zk`;iW3\)ԕf%b>[5?;sexV릀Fbn.A`^ w_pQ>\4a|Qg:g +endstream +endobj +10 0 obj +<< /Type /Font +/BaseFont /e80aff+Montserrat-SemiBold +/Subtype /TrueType +/FontDescriptor 175 0 R +/FirstChar 32 +/LastChar 255 +/Widths 177 0 R +/ToUnicode 176 0 R +>> +endobj +11 0 obj +<< /Type /Font +/BaseFont /2d42f9+WorkSans-Regular +/Subtype /TrueType +/FontDescriptor 179 0 R +/FirstChar 32 +/LastChar 255 +/Widths 181 0 R +/ToUnicode 180 0 R +>> +endobj +12 0 obj +<< /Length 16078 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 789.15 Td +/F4.0 18 Tf +<5461626c65206f6620436f6e74656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 761.546 Td +/F2.0 11 Tf +<312e20496e74726f64756374696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +127.8382 761.546 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 761.546 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 761.546 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 744.243 Td +/F2.0 11 Tf +<322e2052656c6561736520436f6e74656e74> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +154.5463 744.243 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 744.243 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 744.243 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 726.94 Td +/F2.0 11 Tf +<332e2057686174206973206368616e6765643f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +161.2232 726.94 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 726.94 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 726.94 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +60.24 709.637 Td +/F2.0 11 Tf +<332e312e204f494f524153502076657273696f6e20332e302e30> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +201.2852 709.637 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 709.637 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 709.637 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 692.334 Td +/F2.0 11 Tf +<332e312e312e204e6577206665617475726573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +174.5773 692.334 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 692.334 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 692.334 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 675.031 Td +/F2.0 11 Tf +<332e312e322e204669786573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +132.3923 675.031 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 675.031 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 675.031 Td +/F2.0 11 Tf +<32> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 657.728 Td +/F2.0 11 Tf +<332e312e332e204368616e676573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +152.4233 657.728 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 657.728 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 657.728 Td +/F2.0 11 Tf +<32> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 640.425 Td +/F2.0 11 Tf +<332e312e342e2052656d6f76616c73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +159.1002 640.425 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 640.425 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 640.425 Td +/F2.0 11 Tf +<32> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 623.122 Td +/F2.0 11 Tf +<332e312e352e20486f7720746f2075706772616465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +192.4852 623.122 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 623.122 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 623.122 Td +/F2.0 11 Tf +<32> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 605.819 Td +/F2.0 11 Tf +<332e312e362e20436f6e66696775726174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +179.1312 605.819 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 605.819 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 605.819 Td +/F2.0 11 Tf +<33> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +60.24 588.516 Td +/F2.0 11 Tf +<332e322e20524153502076657273696f6e20322e312e30> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +185.4453 588.516 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.3263 588.516 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.264 588.516 Td +/F2.0 11 Tf +<38> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 571.213 Td +/F2.0 11 Tf +<332e322e312e204e6577206665617475726573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +178.7682 571.213 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.3263 571.213 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.264 571.213 Td +/F2.0 11 Tf +<38> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 553.91 Td +/F2.0 11 Tf +<332e322e322e204669786573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +132.0183 553.91 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.3153 553.91 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.253 553.91 Td +/F2.0 11 Tf +<39> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 536.607 Td +/F2.0 11 Tf +<332e322e332e204368616e676573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +152.0493 536.607 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.3153 536.607 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.253 536.607 Td +/F2.0 11 Tf +<39> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 519.304 Td +/F2.0 11 Tf +<332e322e342e2052656d6f76616c73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +158.7263 519.304 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.3153 519.304 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.253 519.304 Td +/F2.0 11 Tf +<39> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 502.001 Td +/F2.0 11 Tf +<332e322e352e20486f7720746f2075706772616465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +192.1112 502.001 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.3153 502.001 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.253 502.001 Td +/F2.0 11 Tf +<39> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 484.698 Td +/F2.0 11 Tf +<332e322e362e204e48522055444449206c6f6f6b75702055524cd573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +234.5053 484.698 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +534.9703 484.698 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +535.908 484.698 Td +/F2.0 11 Tf +<3130> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +72.24 467.395 Td +/F2.0 11 Tf +<332e322e372e2052617370436f6e66696775726174696f6e2e786d6c20757064617465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +270.4423 467.395 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +537.5223 467.395 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +538.46 467.395 Td +/F2.0 11 Tf +<3131> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 450.092 Td +/F2.0 11 Tf +<342e2053797374656d20526571756972656d656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +181.5183 450.092 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +535.3992 450.092 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +536.337 450.092 Td +/F2.0 11 Tf +<3133> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 432.789 Td +/F2.0 11 Tf +<352e20496e7374616c6c6174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +128.1023 432.789 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +535.3992 432.789 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +536.337 432.789 Td +/F2.0 11 Tf +<3133> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 415.486 Td +/F2.0 11 Tf +<362e20436f6d7061746962696c697479> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +134.7793 415.486 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +535.3992 415.486 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +536.337 415.486 Td +/F2.0 11 Tf +<3133> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 398.183 Td +/F2.0 11 Tf +<372e204b6e6f776e20697373756573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +141.4563 398.183 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +535.3992 398.183 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +536.337 398.183 Td +/F2.0 11 Tf +<3133> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 380.88 Td +/F2.0 11 Tf +<382e204c6963656e736573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +114.4403 380.88 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +535.0913 380.88 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +536.029 380.88 Td +/F2.0 11 Tf +<3134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q + +endstream +endobj +13 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 12 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +>> +>> +/Annots [99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R] +>> +endobj +14 0 obj +<< /Length 8140 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 789.15 Td +/F4.0 18 Tf +<312e20496e74726f64756374696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.9865 Tw + +BT +48.24 762.9603 Td +/F2.0 11 Tf +<546865204f494f52415350204c69627261727920666f72204a6176612069732061204a61766120626173656420746f6f6c6b697420666f7220696d706c656d656e746174696f6e206f66204f494f52415350> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 748.4859 Td +/F2.0 11 Tf +<627573696e657373206170706c69636174696f6e732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 722.0114 Td +/F2.0 11 Tf +<5468697320646973747269627574696f6e2069732076657273696f6e20332e302e302e524331> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.9605 Tw + +BT +48.24 695.537 Td +/F2.0 11 Tf +<54686520646973747269627574696f6e2069732070617274206f6620746865204f494f534920776f726b20666f722065786368616e67696e6720627573696e65737320646f63756d656e747320696e206120736563757265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 681.0626 Td +/F2.0 11 Tf +<616e642072656c6961626c6520776179207573696e672074686520696e7465726e65742e2053656520> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +267.041 681.0626 Td +/F2.0 11 Tf +<68747470733a2f2f6e656d68616e64656c2e646b2f6e6574766165726b2d6f672d7374616e646172646572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +518.831 681.0626 Td +/F2.0 11 Tf +<2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.4584 Tw + +BT +48.24 654.5881 Td +/F2.0 11 Tf +<546865206672616d65776f726b2063616e20626520646f776e6c6f616465642066726f6d20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +2.4584 Tw + +BT +287.8526 654.5881 Td +/F2.0 11 Tf +<687474703a2f2f6469676974616c697365722e646b2f67726f75702f3430353434322f7265736f7572636573> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.4584 Tw + +BT +529.7426 654.5881 Td +/F2.0 11 Tf +<206f72> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 640.1137 Td +/F2.0 11 Tf +<68747470733a2f2f6e656d68616e64656c2e646b2f6f706461746572696e6765722d72656c6561736573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 583.915 Td +/F4.0 18 Tf +<322e2052656c6561736520436f6e74656e74> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 557.7253 Td +/F2.0 11 Tf +<546869732072656c6561736520636f6d7072697365732074686520666f6c6c6f77696e67206172746966616374733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 531.2509 Td +/F2.0 11 Tf +<446f63756d656e746174696f6e3a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 504.7764 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 504.7764 Td +/F2.0 11 Tf +<4f494f524153505f4a6176615f52656c656173654e6f7465732e70646620287468697320646f63756d656e7429> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 484.302 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 484.302 Td +/F2.0 11 Tf +<4f494f524153505f4a6176615f496e7374616c6c6174696f6e47756964652e706466> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 463.8276 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 463.8276 Td +/F2.0 11 Tf +<4f494f524153505f4a6176615f5475746f7269616c732e706466> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.07 Tw + +BT +48.24 437.3531 Td +/F2.0 11 Tf +<53616d706c657320696e20474954207265706f7369746f72793a20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +0.07 Tw + +BT +194.974 437.3531 Td +/F2.0 11 Tf +<68747470733a2f2f7265702e657273742e646b2f6769742f6f70656e65627573696e6573732f6c6962726172792f6a6176612f2d2f747265652f6d61737465722f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 422.8787 Td +/F2.0 11 Tf +<646b2e676f762e6f696f73692e6578616d706c65732e636c69656e74> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +197.642 422.8787 Td +/F2.0 11 Tf +<203a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 396.4043 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 396.4043 Td +/F2.0 11 Tf +<646b2e6669726d612e6b6c69656e742e776562736572766963652e546573744365727469666963617465205465737420636572746966696361746573207573696e6720524153502066756e6374696f6e616c697479> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 375.9299 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 375.9299 Td +/F2.0 11 Tf +<646b2e6669726d612e6b6c69656e742e776562736572766963652e4f696f736952617370436c69656e742053656e642061207465737420646f63756d656e74> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 355.4554 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 355.4554 Td +/F2.0 11 Tf +<646b2e6669726d612e6b6c69656e742e776562736572766963652e54657374556464694c6f6f6b757020546573742055444449206c6f6f6b7570> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 328.981 Td +/F2.0 11 Tf +<536f7572636520636f646520616e642062696e6172792072656c6561736520286a61722066696c65292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 272.7823 Td +/F4.0 18 Tf +<332e2057686174206973206368616e6765643f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.5961 Tw + +BT +48.24 246.5926 Td +/F2.0 11 Tf +<496e2074686520666f6c6c6f77696e672070617274206f662074686520646f63756d656e742c20736f6d65206973737565206e756d6265727320617265206d656e74696f6e6564207468657365206e756d62657273> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.9015 Tw + +BT +48.24 232.1181 Td +/F2.0 11 Tf +<61726520696e7465726e616c206e756d626572732075736564206279204e656d68616e64656c20616e642044616e69736820427573696e65737320417574686f726974792c20736f20706c656173652069676e6f7265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 217.6437 Td +/F2.0 11 Tf +<74686573652061732065787465726e616c20646576656c6f7065722e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 170.235 Td +/F4.0 15 Tf +<332e312e204f494f524153502076657273696f6e20332e302e30> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 126.63 Td +/F4.0 12 Tf +<332e312e312e204e6577206665617475726573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 101.8983 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 101.8983 Td +/F2.0 11 Tf +<436f6e666967757265207468652074696d656f757420666f72204e485220554444492072657175657374732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +499.816 39.505 Td +/F2.0 9 Tf +<506167652031202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +15 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 14 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +>> +/XObject << /Stamp1 172 0 R +>> +>> +/Annots [21 0 R 22 0 R 23 0 R 25 0 R 26 0 R] +>> +endobj +16 0 obj +[15 0 R /XYZ 0 841.89 null] +endobj +17 0 obj +<< /Type /Names +/Dests 18 0 R +>> +endobj +18 0 obj +<< /Kids [76 0 R 77 0 R] +>> +endobj +19 0 obj +[15 0 R /XYZ 0 841.89 null] +endobj +20 0 obj +<< /Type /Font +/BaseFont /4c05ad+WorkSans-SemiBold +/Subtype /TrueType +/FontDescriptor 183 0 R +/FirstChar 32 +/LastChar 255 +/Widths 185 0 R +/ToUnicode 184 0 R +>> +endobj +21 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://nemhandel.dk/netvaerk-og-standarder) +>> +/Subtype /Link +/Rect [267.041 678.3896 518.831 691.2926] +/Type /Annot +>> +endobj +22 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://digitaliser.dk/group/405442/resources) +>> +/Subtype /Link +/Rect [287.8526 651.9151 529.7426 664.8181] +/Type /Annot +>> +endobj +23 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://nemhandel.dk/opdateringer-releases) +>> +/Subtype /Link +/Rect [48.24 637.4407 289.602 650.3437] +/Type /Annot +>> +endobj +24 0 obj +[15 0 R /XYZ 0 624.655 null] +endobj +25 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java/-/tree/master/dk.gov.oiosi.examples.client) +>> +/Subtype /Link +/Rect [194.974 434.6801 547.04 447.5831] +/Type /Annot +>> +endobj +26 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java/-/tree/master/dk.gov.oiosi.examples.client) +>> +/Subtype /Link +/Rect [48.24 420.2057 197.642 433.1087] +/Type /Annot +>> +endobj +27 0 obj +[15 0 R /XYZ 0 313.5223 null] +endobj +28 0 obj +[15 0 R /XYZ 0 202.185 null] +endobj +29 0 obj +[15 0 R /XYZ 0 155.79 null] +endobj +30 0 obj +<< /Length 13126 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 794.73 Td +/F4.0 12 Tf +<332e312e322e204669786573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 769.9983 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 769.9983 Td +/F2.0 11 Tf +<466978206275672072656c6174656420746f2074696d656f75742073657474696e677320666f72204c4441502d636c69656e74205b4e482d3637355d2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 725.3796 Td +/F4.0 12 Tf +<332e312e332e204368616e676573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 701.6743 Td +/F5.0 9.975 Tf +<52656c6174656420746f20737570706f727420666f72204d6974496420284e482d36373529> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 683.5222 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 683.5222 Td +/F2.0 11 Tf +<546865204f494f52415350204a617661206c696272617279206973206e6f7720636f6d70696c6564207573696e67204a6176612038202870726576696f7573204a6176612036292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 663.0478 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.0909 Tw + +BT +66.24 663.0478 Td +/F2.0 11 Tf +<53747275637475726520666f72204c64617053657474696e677320696e2052617370436f6e66696775726174696f6e2e786d6c206973207570646174656420746f2062652061626c6520746f20616464206e6577> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 648.5733 Td +/F2.0 11 Tf +<4c44415020686f737420666f72204d697449442063657274696669636174657320284e482d363735292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 628.0989 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 628.0989 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e20686173206265656e2075706461746564> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 607.6245 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0427 Tw + +BT +66.24 607.6245 Td +/F2.0 11 Tf +<456c656d656e7420> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +0.0427 Tw + +BT +115.0128 607.6245 Td +/F6.0 11 Tf +<536561726368436c69656e7454696d656f75744d736563> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0427 Tw + +BT +241.5128 607.6245 Td +/F2.0 11 Tf +<20696e204c64617053657474696e677320696e2052617370436f6e66696775726174696f6e2e786d6c2069732072656e616d656420746f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 593.15 Td +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +66.24 593.15 Td +/F6.0 11 Tf +<536f636b657454696d656f75744d736563> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +159.74 593.15 Td +/F2.0 11 Tf +<2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 572.6756 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 572.6756 Td +/F2.0 11 Tf +<426f756e6379436173746c65206c69627261727920686173206265656e207570646174656420746f2076657273696f6e20312e3638202866726f6d20312e34372920284e482d373537292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 547.2276 Td +/F5.0 9.975 Tf +<4f74686572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 529.0755 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 529.0755 Td +/F2.0 11 Tf +<5361786f6e2d4845206c69627261727920686173206265656e207570646174656420746f2076657273696f6e2031302e33202866726f6d20392920284e482d383531292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 508.6011 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 508.6011 Td +/F2.0 11 Tf +<496d70726f766564206572726f7220636f6465732f6d6573736167657320284e482d38303129> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 488.1266 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 488.1266 Td +/F2.0 11 Tf +<4c6f67346a206c69627261727920686173206265656e207570646174656420746f2076657273696f6e20322e31342e31202866726f6d20312e322e3137292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 467.6522 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 467.6522 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e20686173206265656e2073706c697420696e746f2074776f20646966666572656e742076657273696f6e733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 447.1778 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 447.1778 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e202864656661756c742920776869636820636f6e7461696e73204f494f55424c20616e64204e4b5320646f63756d656e742074797065732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 426.7034 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +3.6123 Tw + +BT +84.24 426.7034 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e5f457874656e64656420776869636820636f6e7461696e73204f494f55424c2c204e4b5320616e6420506570706f6c20646f63756d656e74> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 412.2289 Td +/F2.0 11 Tf +<74797065732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 367.6102 Td +/F4.0 12 Tf +<332e312e342e2052656d6f76616c73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 342.8785 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +16.4122 Tw + +BT +66.24 342.8785 Td +/F2.0 11 Tf +<46726f6d20436f6e66696775726174696f6e53656374696f6e20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +16.4122 Tw + +BT +247.8503 342.8785 Td +/F6.0 11 Tf +<4c64617053657474696e6773> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +16.4122 Tw + +BT +313.8503 342.8785 Td +/F2.0 11 Tf +<2c207468656e20656c656d656e747320> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +16.4122 Tw + +BT +451.9448 342.8785 Td +/F6.0 11 Tf +<4d6178526573756c7473> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +16.4122 Tw + +BT +506.9448 342.8785 Td +/F2.0 11 Tf +<20616e64> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +2.3621 Tw + +BT +66.24 328.4041 Td +/F6.0 11 Tf +<53656172636853657276657254696d656f75744d736563> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.3621 Tw + +BT +192.74 328.4041 Td +/F2.0 11 Tf +<20686173206265656e2072656d6f7665642e205468697320656c656d656e74206973206c656761637920616e6420686173206e6f74206265656e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.4395 Tw + +BT +66.24 313.9296 Td +/F2.0 11 Tf +<7573656420696e207365766572616c2072656c65617365732e204966206d756c7469706c6520726573756c74732061726520666f756e6420696e204c44415020726573706f6e73652c207468656e20636f6465> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 299.4552 Td +/F2.0 11 Tf +<63616e6e6f742064656369646520776869636820746f207573652c20736f2065786163746c79206f6e6520726573756c7420697320746865206f6e6c7920736f6c7574696f6e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 278.9808 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.8884 Tw + +BT +66.24 278.9808 Td +/F2.0 11 Tf +<46726f6d20436f6e66696775726174696f6e53656374696f6e20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +2.8884 Tw + +BT +220.8029 278.9808 Td +/F6.0 11 Tf +<55646469436f6e666967> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.8884 Tw + +BT +275.8029 278.9808 Td +/F2.0 11 Tf +<2c207468656e20656c656d656e7420> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +2.8884 Tw + +BT +367.5291 278.9808 Td +/F6.0 11 Tf +<46616c6c6261636b54696d656f75744d696e75746573> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.8884 Tw + +BT +488.5291 278.9808 Td +/F2.0 11 Tf +<20686173206265656e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 264.5064 Td +/F2.0 11 Tf +<72656d6f7665642e205468697320656c656d656e74206973206c656761637920616e6420686173206e6f74206265656e207573656420696e207365766572616c2072656c6561736573205b4e482d3739335d2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 244.0319 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +27.3517 Tw + +BT +66.24 244.0319 Td +/F2.0 11 Tf +<46726f6d20436f6e66696775726174696f6e53656374696f6e20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +27.3517 Tw + +BT +269.7295 244.0319 Td +/F6.0 11 Tf +<4f636573583530394365727469666963617465436f6e666967> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +27.3517 Tw + +BT +407.2295 244.0319 Td +/F2.0 11 Tf +<2c207468656e20656c656d656e7473> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 229.5575 Td +/F2.0 11 Tf +<506572736f6e616c43657274696669636174655375626a6563744b657920616e6420456d706c6f79656543657274696669636174655375626a6563744b657920686173206265656e2072656d6f7665642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 209.0831 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 209.0831 Td +/F2.0 11 Tf +<436c61737320456e64706f696e74416464726573734874747020686173206265656e206d657267656420696e746f2074686520706172656e7420636c61737320456e64706f696e74416464726573732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 164.4644 Td +/F4.0 12 Tf +<332e312e352e20486f7720746f2075706772616465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 139.7326 Td +/F2.0 11 Tf +<486f7720746f20757067726164652070726f6a6563742066726f6d204f494f52415350204a61766120322e312e3020746f2076657273696f6e20332e302e302e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.5 w +0.9333 0.9333 0.9333 SCN +108.24 124.2739 m +108.24 72.8506 l +S +Q +0.098 0.251 0.4863 scn +0.098 0.251 0.4863 SCN + +BT +66.24 89.5623 Td +/F7.1 24 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0576 Tw + +BT +120.24 109.2582 Td +/F2.0 11 Tf +<546865206775696465206d69676874206e6f7420626520313030252061636375726174652c20646570656e64696e67206f6e20796f757220757365206f6620746865206c69627261727921> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.7931 Tw + +BT +120.24 94.7838 Td +/F2.0 11 Tf +<536f6d65207374657073206d6967687420626520756e6e656365737361727920696e20796f75722073657475702c20616e64206f7468657273206d69676874206265206173> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +120.24 80.3094 Td +/F2.0 11 Tf +<64657461696c6564206173206e65656420696e20796f757220736574757021> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +498.079 39.505 Td +/F2.0 9 Tf +<506167652032202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +31 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 30 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +/F5.0 34 0 R +/F6.0 35 0 R +/F2.1 36 0 R +/F7.1 39 0 R +>> +/XObject << /Stamp2 173 0 R +>> +>> +>> +endobj +32 0 obj +[31 0 R /XYZ 0 841.89 null] +endobj +33 0 obj +[31 0 R /XYZ 0 754.5396 null] +endobj +34 0 obj +<< /Type /Font +/BaseFont /02104b+WorkSans-Italic +/Subtype /TrueType +/FontDescriptor 187 0 R +/FirstChar 32 +/LastChar 255 +/Widths 189 0 R +/ToUnicode 188 0 R +>> +endobj +35 0 obj +<< /Type /Font +/BaseFont /1fe63c+mplus1mn-regular +/Subtype /TrueType +/FontDescriptor 191 0 R +/FirstChar 32 +/LastChar 255 +/Widths 193 0 R +/ToUnicode 192 0 R +>> +endobj +36 0 obj +<< /Type /Font +/BaseFont /c9d34c+WorkSans-Regular +/Subtype /TrueType +/FontDescriptor 195 0 R +/FirstChar 32 +/LastChar 255 +/Widths 197 0 R +/ToUnicode 196 0 R +>> +endobj +37 0 obj +[31 0 R /XYZ 0 396.7702 null] +endobj +38 0 obj +[31 0 R /XYZ 0 193.6244 null] +endobj +39 0 obj +<< /Type /Font +/BaseFont /5714a6+FontAwesome5Free-Solid +/Subtype /TrueType +/FontDescriptor 199 0 R +/FirstChar 32 +/LastChar 255 +/Widths 201 0 R +/ToUnicode 200 0 R +>> +endobj +40 0 obj +<< /Length 9963 +>> +stream +q +/DeviceRGB cs +0.1333 0.1333 0.1333 scn +/DeviceRGB CS +0.1333 0.1333 0.1333 SCN + +BT +48.24 795.66 Td +/F2.0 11 Tf +<53746570733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +54.161 769.1856 Td +/F2.0 11 Tf +<312e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +12.4962 Tw + +BT +66.24 769.1856 Td +/F2.0 11 Tf +<446f776e6c6f6164206e65772072656c656173652066726f6d20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +12.4962 Tw + +BT +272.0178 769.1856 Td +/F2.0 11 Tf +<68747470733a2f2f6469676974616c697365722e646b2f67726f75702f3430353434322f7265736f7572636573> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +12.4962 Tw + +BT +519.7048 769.1856 Td +/F2.0 11 Tf +<206f72> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +66.24 754.7111 Td +/F2.0 11 Tf +<68747470733a2f2f6e656d68616e64656c2e646b2f6f706461746572696e6765722d72656c6561736573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.038 734.2367 Td +/F2.0 11 Tf +<322e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 734.2367 Td +/F2.0 11 Tf +<46696c65206368616e6765733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 713.7623 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 713.7623 Td +/F2.0 11 Tf +<5265706c61636520796f7572206f6c64204a41522066696c65207769746820746865206e65772028646b2e676f762e6f696f73692e6c6962726172792d332e302e302e5243312e32653039363030652e6a617229> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 693.2879 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 693.2879 Td +/F2.0 11 Tf +<5265706c61636520426f756e6379436173746c65206c6962726172792066696c65732077697468206e65772066696c65732076657273696f6e20312e36382e6a6172> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 672.8134 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 672.8134 Td +/F2.0 11 Tf +<5265706c616365205361786f6e206c6962726172792066696c652077697468206e65772076657273696f6e20286e65742e73662e7361786f6e2d5361786f6e2d48452d31302e332e6a6172292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 652.339 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.4793 Tw + +BT +84.24 652.339 Td +/F2.0 11 Tf +<5265706c616365206c6f67346a206c6962726172792066696c65732077697468206e65772066696c6573202865672e206c6f67346a2d636f72652d322e31342e312e6a6172202b206c6f67346a2d6170692d322e31342e312e6a6172> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 637.8646 Td +/F2.0 11 Tf +<2b206c6f67346a2d6a636c2d322e31342e312e6a6172292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 617.3901 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +10.7122 Tw + +BT +84.24 617.3901 Td +/F2.0 11 Tf +<4d69677261746520796f75722063757272656e74206c6f67346a2e786d6c20636f6e66696775726174696f6e20746f206c6f67346a322e786d6c20666f726d61742028736565> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +1.6197 Tw + +BT +84.24 602.9157 Td +/F2.0 11 Tf +<687474703a2f2f6c6f6767696e672e6170616368652e6f72672f6c6f67346a2f322e782f6d616e75616c2f6d6967726174696f6e2e68746d6c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.6197 Tw + +BT +397.652 602.9157 Td +/F2.0 11 Tf +<2073656374696f6e2022436f6e6669677572696e67204c6f67346a> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 588.4413 Td +/F2.0 11 Tf +<3222292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 567.9669 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.3845 Tw + +BT +84.24 567.9669 Td +/F2.0 11 Tf +<496e2067656e6572616c2074686520646570656e64656e6369657320666f72204f494f524153502063616e20626520666f756e6420696e20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +2.3845 Tw + +BT +424.489 567.9669 Td +/F2.0 11 Tf +<68747470733a2f2f7265702e657273742e646b2f6769742f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +84.24 553.4924 Td +/F2.0 11 Tf +<6f70656e65627573696e6573732f6c6962726172792f6a6176612f2d2f626c6f622f6d61737465722f646b2e676f762e6f696f73692e6c6962726172792f6976792e786d6c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.038 533.018 Td +/F2.0 11 Tf +<332e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 533.018 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e2e786d6c206d757374206265207570646174656421> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 512.5436 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 512.5436 Td +/F2.0 11 Tf +<53656520> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +107.736 512.5436 Td +/F2.0 11 Tf +<53656374696f6e20332e312e362c20d2436f6e66696775726174696f6ed3> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +264.156 512.5436 Td +/F2.0 11 Tf +<2073656374696f6e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 486.0691 Td +/F2.0 11 Tf +<546861742073686f756c64206265206974c921> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.2357 Tw + +BT +48.24 459.5947 Td +/F2.0 11 Tf +<497420796f75206d6565742070726f626c656d732c20746861742073686f756c6420626520696e636c7564656420696e20746869732067756964652c20706c6561736520706f737420796f757220636f6d6d656e747320746f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 445.1203 Td +/F2.0 11 Tf +<74686520666f6c6c6f77696e6720656d61696c20616464726573733a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +205.1 445.1203 Td +/F2.0 11 Tf +<737570706f7274406e656d68616e64656c2e646b> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 400.5016 Td +/F4.0 12 Tf +<332e312e362e20436f6e66696775726174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 371.7556 Td +/F4.0 11 Tf +<332e312e362e312e2052617370436f6e66696775726174696f6e2e786d6c20284f494f5241535020332e302e3029> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 345.1126 Td +/F4.0 9 Tf +<332e312e362e312e312e204368616e6765732066726f6d20322e312e3020746f20332e302e30> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.5468 Tw + +BT +48.24 321.1099 Td +/F2.0 11 Tf +<4173204f494f524153502076657273696f6e20332e302e30206973206e6f74206261636b776172647320636f6d70617469626c652077697468206561726c6965722076657273696f6e73206f66204f494f524153502c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 306.6354 Td +/F2.0 11 Tf +<746865206c6567616379206d617070696e677320666f7220322e302e31206261636b776172647320636f6d7061746962696c69747920686173206e6f77206265656e2072656d6f7665642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.4249 Tw + +BT +48.24 280.161 Td +/F2.0 11 Tf +<5468652052617370436f6e66696775726174696f6e20686173206265656e2073706c697420696e746f2074776f2076657273696f6e732e20412064656661756c7420636f6e7461696e696e6720746865204f494f55424c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 265.6866 Td +/F2.0 11 Tf +<646f63756d656e742074797065732c20616e6420616e20657874656e6465642076657273696f6e207769746820626f7468204f494f55424c20616e6420506570706f6c20646f63756d656e742074797065732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +1.0 1.0 1.0 scn +48.24 229.7534 249.4 20.4744 re +f +0.0 0.0 0.0 scn +1.0 1.0 1.0 scn +297.64 229.7534 249.4 20.4744 re +f +0.0 0.0 0.0 scn +0.5 w +0.8667 0.8667 0.8667 SCN +48.24 250.2279 m +297.64 250.2279 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +48.24 229.7534 m +297.64 229.7534 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +48.24 250.4779 m +48.24 229.5034 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 250.4779 m +297.64 229.5034 l +S +[] 0 d +1 w +0.0 0.0 0.0 SCN +0.1333 0.1333 0.1333 scn + +BT +51.24 236.2121 Td +/F2.0 11 Tf +<46696c65206e616d65> Tj +ET + +0.0 0.0 0.0 scn +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 250.2279 m +547.04 250.2279 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 229.7534 m +547.04 229.7534 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 250.4779 m +297.64 229.5034 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +547.04 250.4779 m +547.04 229.5034 l +S +[] 0 d +1 w +0.0 0.0 0.0 SCN +0.1333 0.1333 0.1333 scn + +BT +300.64 236.2121 Td +/F2.0 11 Tf +<446f63756d656e74207479706573> Tj +ET + +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +498.079 39.505 Td +/F2.0 9 Tf +<506167652033202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +41 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 40 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F2.0 11 0 R +/F2.1 36 0 R +/F4.0 20 0 R +>> +/XObject << /Stamp1 172 0 R +>> +>> +/Annots [42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R] +>> +endobj +42 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://digitaliser.dk/group/405442/resources) +>> +/Subtype /Link +/Rect [272.0178 766.5126 519.7048 779.4156] +/Type /Annot +>> +endobj +43 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://nemhandel.dk/opdateringer-releases) +>> +/Subtype /Link +/Rect [66.24 752.0381 307.602 764.9411] +/Type /Annot +>> +endobj +44 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://logging.apache.org/log4j/2.x/manual/migration.html) +>> +/Subtype /Link +/Rect [84.24 600.2427 397.652 613.1457] +/Type /Annot +>> +endobj +45 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java/-/blob/master/dk.gov.oiosi.library/ivy.xml) +>> +/Subtype /Link +/Rect [424.489 565.2939 547.04 578.1969] +/Type /Annot +>> +endobj +46 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java/-/blob/master/dk.gov.oiosi.library/ivy.xml) +>> +/Subtype /Link +/Rect [84.24 550.8194 456.491 563.7224] +/Type /Annot +>> +endobj +47 0 obj +<< /Border [0 0 0] +/Dest (_configuration) +/Subtype /Link +/Rect [107.736 509.8706 264.156 522.7736] +/Type /Annot +>> +endobj +48 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (mailto:support@nemhandel.dk) +>> +/Subtype /Link +/Rect [205.1 442.4473 333.866 455.3503] +/Type /Annot +>> +endobj +49 0 obj +[41 0 R /XYZ 0 429.6616 null] +endobj +50 0 obj +[41 0 R /XYZ 0 386.7856 null] +endobj +51 0 obj +[41 0 R /XYZ 0 358.2826 null] +endobj +52 0 obj +<< /Length 3366 +>> +stream +q +/DeviceRGB cs +1.0 1.0 1.0 scn +48.24 380.1316 249.4 425.7584 re +f +0.0 0.0 0.0 scn +1.0 1.0 1.0 scn +297.64 380.1316 249.4 425.7584 re +f +0.0 0.0 0.0 scn +0.5 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 805.89 m +297.64 805.89 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +48.24 380.1316 m +297.64 380.1316 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +48.24 806.14 m +48.24 379.8816 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 806.14 m +297.64 379.8816 l +S +[] 0 d +1 w +0.0 0.0 0.0 SCN +0.1333 0.1333 0.1333 scn + +BT +51.24 791.8743 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e> Tj +ET + +0.0 0.0 0.0 scn +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 805.89 m +547.04 805.89 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 380.1316 m +547.04 380.1316 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 806.14 m +297.64 379.8816 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +547.04 806.14 m +547.04 379.8816 l +S +[] 0 d +1 w +0.0 0.0 0.0 SCN +0.1333 0.1333 0.1333 scn + +BT +300.64 791.8743 Td +/F2.0 11 Tf +<46616b747572612076302e37> Tj +ET + + +BT +300.64 777.3999 Td +/F2.0 11 Tf +<4b72656469746e6f74612076302e37> Tj +ET + + +BT +300.64 762.9254 Td +/F2.0 11 Tf +<4170706c696b6174696f6e736d656464656c656c7365> Tj +ET + + +BT +300.64 748.451 Td +/F2.0 11 Tf +<4b6174616c6f67> Tj +ET + + +BT +300.64 733.9766 Td +/F2.0 11 Tf +<4b6174616c6f67666f72657370bf726773656c> Tj +ET + + +BT +300.64 719.5021 Td +/F2.0 11 Tf +<4f706461746572696e67206166206b6174616c6f67656c656d656e74> Tj +ET + + +BT +300.64 705.0277 Td +/F2.0 11 Tf +<4f706461746572696e67206166206b6174616c6f67707269736572> Tj +ET + + +BT +300.64 690.5533 Td +/F2.0 11 Tf +<536c65746e696e67206166206b6174616c6f67> Tj +ET + + +BT +300.64 676.0789 Td +/F2.0 11 Tf +<4b72656469746e6f7461> Tj +ET + + +BT +300.64 661.6044 Td +/F2.0 11 Tf +<46616b74757261> Tj +ET + + +BT +300.64 647.13 Td +/F2.0 11 Tf +<4f72647265> Tj +ET + + +BT +300.64 632.6556 Td +/F2.0 11 Tf +<4f72647265616e6e756c6c6572696e67> Tj +ET + + +BT +300.64 618.1811 Td +/F2.0 11 Tf +<4f7264726562656b72be6674656c7365> Tj +ET + + +BT +300.64 603.7067 Td +/F2.0 11 Tf +<4f72647265be6e6472696e67> Tj +ET + + +BT +300.64 589.2323 Td +/F2.0 11 Tf +<53696d70656c206f7264726562656b72be6674656c7365> Tj +ET + + +BT +300.64 574.7579 Td +/F2.0 11 Tf +<52796b6b6572> Tj +ET + + +BT +300.64 560.2834 Td +/F2.0 11 Tf +<4b6f6e746f7564746f67> Tj +ET + + +BT +300.64 545.809 Td +/F2.0 11 Tf +<466f7273796e696e6773737065636966696b6174696f6e> Tj +ET + + +BT +300.64 531.3346 Td +/F2.0 11 Tf +<466f7273656e64656c7365736164766973> Tj +ET + + +BT +300.64 516.8601 Td +/F2.0 11 Tf +<4e4b5320426574616c696e6773204f72647265> Tj +ET + + +BT +300.64 502.3857 Td +/F2.0 11 Tf +<4e4b53204b766974746572696e672030> Tj +ET + + +BT +300.64 487.9113 Td +/F2.0 11 Tf +<4e4b53204b766974746572696e672031> Tj +ET + + +BT +300.64 473.4369 Td +/F2.0 11 Tf +<4e4b53205265747572737661722032> Tj +ET + + +BT +300.64 458.9624 Td +/F2.0 11 Tf +<4e4b53205265747572737661722035> Tj +ET + + +BT +300.64 444.488 Td +/F2.0 11 Tf +<4e4b53205265747572737661722037> Tj +ET + + +BT +300.64 430.0136 Td +/F2.0 11 Tf +<4e4b53205265747572737661722038> Tj +ET + + +BT +300.64 415.5391 Td +/F2.0 11 Tf +<4e4b53205265747572737661722039> Tj +ET + + +BT +300.64 401.0647 Td +/F2.0 11 Tf +<4e4b532050552052657175657374> Tj +ET + + +BT +300.64 386.5903 Td +/F2.0 11 Tf +<4e4b5320505520526573706f6e7365> Tj +ET + +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +497.827 39.505 Td +/F2.0 9 Tf +<506167652034202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +53 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 52 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F2.0 11 0 R +>> +/XObject << /Stamp2 173 0 R +>> +>> +>> +endobj +54 0 obj +<< /Length 8345 +>> +stream +q +/DeviceRGB cs +1.0 1.0 1.0 scn +48.24 293.285 249.4 512.605 re +f +0.0 0.0 0.0 scn +1.0 1.0 1.0 scn +297.64 293.285 249.4 512.605 re +f +0.0 0.0 0.0 scn +0.5 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 805.89 m +297.64 805.89 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +48.24 293.285 m +297.64 293.285 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +48.24 806.14 m +48.24 293.035 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 806.14 m +297.64 293.035 l +S +[] 0 d +1 w +0.0 0.0 0.0 SCN +0.1333 0.1333 0.1333 scn + +BT +51.24 791.8743 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e5f457874656e646564> Tj +ET + +0.0 0.0 0.0 scn +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 805.89 m +547.04 805.89 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 293.285 m +547.04 293.285 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +297.64 806.14 m +297.64 293.035 l +S +[] 0 d +0.5 w +0.8667 0.8667 0.8667 SCN +547.04 806.14 m +547.04 293.035 l +S +[] 0 d +1 w +0.0 0.0 0.0 SCN +0.1333 0.1333 0.1333 scn + +BT +300.64 791.8743 Td +/F2.0 11 Tf +<46616b747572612076302e37> Tj +ET + + +BT +300.64 777.3999 Td +/F2.0 11 Tf +<4b72656469746e6f74612076302e37> Tj +ET + + +BT +300.64 762.9254 Td +/F2.0 11 Tf +<4170706c696b6174696f6e736d656464656c656c7365> Tj +ET + + +BT +300.64 748.451 Td +/F2.0 11 Tf +<4b6174616c6f67> Tj +ET + + +BT +300.64 733.9766 Td +/F2.0 11 Tf +<4b6174616c6f67666f72657370bf726773656c> Tj +ET + + +BT +300.64 719.5021 Td +/F2.0 11 Tf +<4f706461746572696e67206166206b6174616c6f67656c656d656e74> Tj +ET + + +BT +300.64 705.0277 Td +/F2.0 11 Tf +<4f706461746572696e67206166206b6174616c6f67707269736572> Tj +ET + + +BT +300.64 690.5533 Td +/F2.0 11 Tf +<536c65746e696e67206166206b6174616c6f67> Tj +ET + + +BT +300.64 676.0789 Td +/F2.0 11 Tf +<4b72656469746e6f7461> Tj +ET + + +BT +300.64 661.6044 Td +/F2.0 11 Tf +<46616b74757261> Tj +ET + + +BT +300.64 647.13 Td +/F2.0 11 Tf +<4f72647265> Tj +ET + + +BT +300.64 632.6556 Td +/F2.0 11 Tf +<4f72647265616e6e756c6c6572696e67> Tj +ET + + +BT +300.64 618.1811 Td +/F2.0 11 Tf +<4f7264726562656b72be6674656c7365> Tj +ET + + +BT +300.64 603.7067 Td +/F2.0 11 Tf +<4f72647265be6e6472696e67> Tj +ET + + +BT +300.64 589.2323 Td +/F2.0 11 Tf +<53696d70656c206f7264726562656b72be6674656c7365> Tj +ET + + +BT +300.64 574.7579 Td +/F2.0 11 Tf +<52796b6b6572> Tj +ET + + +BT +300.64 560.2834 Td +/F2.0 11 Tf +<4b6f6e746f7564746f67> Tj +ET + + +BT +300.64 545.809 Td +/F2.0 11 Tf +<466f7273796e696e6773737065636966696b6174696f6e> Tj +ET + + +BT +300.64 531.3346 Td +/F2.0 11 Tf +<466f7273656e64656c7365736164766973> Tj +ET + + +BT +300.64 516.8601 Td +/F2.0 11 Tf +<4e4b5320426574616c696e6773204f72647265> Tj +ET + + +BT +300.64 502.3857 Td +/F2.0 11 Tf +<4e4b53204b766974746572696e672030> Tj +ET + + +BT +300.64 487.9113 Td +/F2.0 11 Tf +<4e4b53204b766974746572696e672031> Tj +ET + + +BT +300.64 473.4369 Td +/F2.0 11 Tf +<4e4b53205265747572737661722032> Tj +ET + + +BT +300.64 458.9624 Td +/F2.0 11 Tf +<4e4b53205265747572737661722035> Tj +ET + + +BT +300.64 444.488 Td +/F2.0 11 Tf +<4e4b53205265747572737661722037> Tj +ET + + +BT +300.64 430.0136 Td +/F2.0 11 Tf +<4e4b53205265747572737661722038> Tj +ET + + +BT +300.64 415.5391 Td +/F2.0 11 Tf +<4e4b53205265747572737661722039> Tj +ET + + +BT +300.64 401.0647 Td +/F2.0 11 Tf +<4e4b532050552052657175657374> Tj +ET + + +BT +300.64 386.5903 Td +/F2.0 11 Tf +<4e4b5320505520526573706f6e7365> Tj +ET + + +BT +300.64 372.1159 Td +ET + + +BT +300.64 372.1159 Td +/F4.0 11 Tf +<4b6174616c6f672028506570706f6c29> Tj +ET + + +BT +300.64 357.6414 Td +ET + + +BT +300.64 357.6414 Td +/F4.0 11 Tf +<4170706c696b6174696f6e736d656464656c656c73652028506570706f6c29> Tj +ET + + +BT +300.64 343.167 Td +ET + + +BT +300.64 343.167 Td +/F4.0 11 Tf +<4b72656469746e6f74612028506570706f6c29> Tj +ET + + +BT +300.64 328.6926 Td +ET + + +BT +300.64 328.6926 Td +/F4.0 11 Tf +<46616b747572612028506570706f6c29> Tj +ET + + +BT +300.64 314.2181 Td +ET + + +BT +300.64 314.2181 Td +/F4.0 11 Tf +<4f726472652028506570706f6c29> Tj +ET + + +BT +300.64 299.7437 Td +ET + + +BT +300.64 299.7437 Td +/F4.0 11 Tf +<46616b747572612028506570706f6c204249532042696c6c696e6729> Tj +ET + +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 271.2957 Td +/F5.0 9.975 Tf +<446f63756d656e7454797065436f6e666967202852656d6f766564206d617070696e6773206578616d706c6529> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 264.1593 m +543.04 264.1593 l +545.2491 264.1593 547.04 262.3685 547.04 260.1593 c +547.04 52.24 l +547.04 50.0309 545.2491 48.24 543.04 48.24 c +52.24 48.24 l +50.0309 48.24 48.24 50.0309 48.24 52.24 c +48.24 260.1593 l +48.24 262.3685 50.0309 264.1593 52.24 264.1593 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 264.1593 m +543.04 264.1593 l +545.2491 264.1593 547.04 262.3685 547.04 260.1593 c +547.04 52.24 l +547.04 50.0309 545.2491 48.24 543.04 48.24 c +52.24 48.24 l +50.0309 48.24 48.24 50.0309 48.24 52.24 c +48.24 260.1593 l +48.24 262.3685 50.0309 264.1593 52.24 264.1593 c +h +S +Q +q +0.8999999999999999 w +0.9216 0.9216 0.9216 SCN +[3.6 3.6] 0.0 d +52.99 48.24 m +542.29 48.24 l +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 243.9523 Td +/F8.0 9 Tf +<3c446f63756d656e7454797065436f6e6669673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 232.2073 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 220.4623 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 208.7173 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 196.9723 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 185.2273 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 173.4823 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 161.7373 Td +/F8.0 9 Tf +<6564663737333263353666393c2f53657276696365436f6e7472616374544d6f64656c3e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 149.9923 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 138.2473 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 126.5023 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 114.7573 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 103.0123 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 91.2673 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 79.5223 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 67.7773 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 56.0323 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +498.088 39.505 Td +/F2.0 9 Tf +<506167652035202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +55 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 54 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F2.0 11 0 R +/F4.0 20 0 R +/F5.0 34 0 R +/F8.0 60 0 R +>> +/XObject << /Stamp1 172 0 R +>> +>> +>> +endobj +56 0 obj +<< /Length 12573 +>> +stream +q +q +/DeviceRGB cs +0.9216 0.9216 0.9216 scn +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 52.24 l +547.04 50.0309 545.2491 48.24 543.04 48.24 c +52.24 48.24 l +50.0309 48.24 48.24 50.0309 48.24 52.24 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +f +/DeviceRGB CS +0.8 0.8 0.8 SCN +0.75 w +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 52.24 l +547.04 50.0309 545.2491 48.24 543.04 48.24 c +52.24 48.24 l +50.0309 48.24 48.24 50.0309 48.24 52.24 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +S +Q +q +0.8999999999999999 w +/DeviceRGB CS +0.9216 0.9216 0.9216 SCN +[3.6 3.6] 0.0 d +52.99 805.89 m +542.29 805.89 l +S +Q +q +0.8999999999999999 w +/DeviceRGB CS +0.9216 0.9216 0.9216 SCN +[3.6 3.6] 0.0 d +52.99 48.24 m +542.29 48.24 l +S +Q +/DeviceRGB cs +0.0 0.4667 0.0 scn +/DeviceRGB CS +0.0 0.4667 0.0 SCN + +BT +59.24 800.229 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 788.484 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 776.739 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 764.994 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 753.249 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 741.504 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 729.759 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 718.014 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 706.269 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 694.524 Td +/F8.0 9 Tf +<3c52657175657374416374696f6e3e687474703a2f2f7265702e6f696f2e646b2f6f696f73692e6568616e64656c2e676f762e646b2f786d6c2f736368656d61732f323030372f30392f30312f496e766f6963653037496e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 682.779 Td +/F8.0 9 Tf +<746572666163652f5375626d6974496e766f6963653037526571756573743c2f52657175657374416374696f6e3e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 671.034 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 659.289 Td +/F8.0 9 Tf +<3c5265706c79416374696f6e3e687474703a2f2f7265702e6f696f2e646b2f6f696f73692e6568616e64656c2e676f762e646b2f786d6c2f736368656d61732f323030372f30392f30312f496e766f6963653037496e7465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 647.544 Td +/F8.0 9 Tf +<72666163652f5375626d6974496e766f6963653037526573706f6e73653c2f5265706c79416374696f6e3e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 635.799 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 624.054 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 612.309 Td +/F8.0 9 Tf +<7472616e736c617465282e2e2f636f6d3a416464726573732f636f6d3a49442c202746414b54555245494e47272c202766616b74757265696e672729203d2766616b7475726127206f72> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 600.564 Td +/F8.0 9 Tf +<7472616e736c617465282e2e2f636f6d3a416464726573732f636f6d3a49442c202746414b54555245494e47272c202766616b74757265696e672729> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 588.819 Td +/F8.0 9 Tf +<3d2766616b7475726572696e67275d2f636f6d3a4e616d653c2f58506174683e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 577.074 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 565.329 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 553.584 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 541.839 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 530.094 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 518.349 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 506.604 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 494.859 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 483.114 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 471.369 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 459.624 Td +/F8.0 9 Tf +<3c585061746845787072657373696f6e3e2f726f6f743a496e766f6963652f636f6d3a4275796572735265666572656e636549442f40736368656d6549443c2f585061746845787072657373696f6e3e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 447.879 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 436.134 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 424.389 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 412.644 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 400.899 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 389.154 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 377.409 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 365.664 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 353.919 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 342.174 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 330.429 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 318.684 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 306.939 Td +/F8.0 9 Tf +<3c585061746845787072657373696f6e3e2f726f6f743a496e766f6963652f636f6d3a53656c6c657250617274792f636f6d3a49442f40736368656d6549443c2f585061746845787072657373696f6e3e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 295.194 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 283.449 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 271.704 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 259.959 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 248.214 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 236.469 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 224.724 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 212.979 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 201.234 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 189.489 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 177.744 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 165.999 Td +/F8.0 9 Tf +<3c536368656d6174726f6e446f63756d656e74506174683e5265736f75726365732f536368656d6174726f6e732f4f494f584d4c5f76302e372f75626c696e766f6963652e78736c3c2f536368656d6174726f6e446f6375> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 154.254 Td +/F8.0 9 Tf +<6d656e74506174683e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 142.509 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 130.764 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 119.019 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 107.274 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 95.529 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 83.784 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 72.039 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 60.294 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +497.854 39.505 Td +/F2.0 9 Tf +<506167652036202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +57 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 56 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F8.0 60 0 R +/F2.0 11 0 R +>> +/XObject << /Stamp2 173 0 R +>> +>> +>> +endobj +58 0 obj +<< /Length 12579 +>> +stream +q +q +/DeviceRGB cs +0.9216 0.9216 0.9216 scn +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 741.856 l +547.04 739.6469 545.2491 737.856 543.04 737.856 c +52.24 737.856 l +50.0309 737.856 48.24 739.6469 48.24 741.856 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +f +/DeviceRGB CS +0.8 0.8 0.8 SCN +0.75 w +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 741.856 l +547.04 739.6469 545.2491 737.856 543.04 737.856 c +52.24 737.856 l +50.0309 737.856 48.24 739.6469 48.24 741.856 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +S +Q +q +0.8999999999999999 w +/DeviceRGB CS +0.9216 0.9216 0.9216 SCN +[3.6 3.6] 0.0 d +52.99 805.89 m +542.29 805.89 l +S +Q +/DeviceRGB cs +0.0 0.4667 0.0 scn +/DeviceRGB CS +0.0 0.4667 0.0 SCN + +BT +59.24 800.229 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 788.484 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 776.739 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 764.994 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 753.249 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 741.504 Td +/F8.0 9 Tf +<3c2f446f63756d656e7454797065436f6e6669673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 700.936 Td +/F4.0 11 Tf +<332e312e362e322e204d617070696e67732072656d6f76616c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 676.4473 Td +/F2.0 11 Tf +<496e204f494f524153502076657273696f6e20322e312e58206120666577206d617070696e677320776173206e656564656420666f72206261636b776172647320636f6d7061746962696c6974792e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 660.9886 m +543.04 660.9886 l +545.2491 660.9886 547.04 659.1977 547.04 656.9886 c +547.04 455.0686 l +547.04 452.8594 545.2491 451.0686 543.04 451.0686 c +52.24 451.0686 l +50.0309 451.0686 48.24 452.8594 48.24 455.0686 c +48.24 656.9886 l +48.24 659.1977 50.0309 660.9886 52.24 660.9886 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 660.9886 m +543.04 660.9886 l +545.2491 660.9886 547.04 659.1977 547.04 656.9886 c +547.04 455.0686 l +547.04 452.8594 545.2491 451.0686 543.04 451.0686 c +52.24 451.0686 l +50.0309 451.0686 48.24 452.8594 48.24 455.0686 c +48.24 656.9886 l +48.24 659.1977 50.0309 660.9886 52.24 660.9886 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 640.7816 Td +/F8.0 9 Tf +<3c4d617070696e67733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 629.0366 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 617.2916 Td +/F8.0 9 Tf +<6d617070696e67732061726520657373656e7469616c20746f206b65657020696e2072656c6174696f6e20746f204f494f55424c202d2d3e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 605.5466 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 593.8016 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 582.0566 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 570.3116 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 558.5666 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 546.8216 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 535.0766 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 523.3316 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 511.5866 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 499.8416 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 488.0966 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 476.3516 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 464.6066 Td +/F8.0 9 Tf +<3c2f4d617070696e67733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 428.0529 Td +/F2.0 11 Tf +<5468657365206d617070696e67732063616e2062652072656d6f76656420656e746972656c792066726f6d2076657273696f6e20332e302e302e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 412.5941 m +543.04 412.5941 l +545.2491 412.5941 547.04 410.8033 547.04 408.5941 c +547.04 359.3591 l +547.04 357.15 545.2491 355.3591 543.04 355.3591 c +52.24 355.3591 l +50.0309 355.3591 48.24 357.15 48.24 359.3591 c +48.24 408.5941 l +48.24 410.8033 50.0309 412.5941 52.24 412.5941 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 412.5941 m +543.04 412.5941 l +545.2491 412.5941 547.04 410.8033 547.04 408.5941 c +547.04 359.3591 l +547.04 357.15 545.2491 355.3591 543.04 355.3591 c +52.24 355.3591 l +50.0309 355.3591 48.24 357.15 48.24 359.3591 c +48.24 408.5941 l +48.24 410.8033 50.0309 412.5941 52.24 412.5941 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 392.3871 Td +/F8.0 9 Tf +<3c4d617070696e67733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 380.6421 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 368.8971 Td +/F8.0 9 Tf +<3c2f4d617070696e67733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 328.3291 Td +/F4.0 11 Tf +<332e312e362e332e2054696d656f757420666f72204e48522055444449207265717565737473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.5533 Tw + +BT +48.24 303.8404 Td +/F2.0 11 Tf +<5468652074696d656f75742076616c756520666f72204e4852205544444920726571756573747320636120626520636f6e6669677572656420696e207468652052617370436f6e66696775726174696f6e2e786d6c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.4385 Tw + +BT +48.24 289.366 Td +/F2.0 11 Tf +<66696c652c20627920616464696e6720746865206e657720656c656d656e7420> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +1.4385 Tw + +BT +231.8697 289.366 Td +/F6.0 11 Tf +<556464694c6f6f6b757054696d656f75745365636f6e6473> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.4385 Tw + +BT +363.8697 289.366 Td +/F2.0 11 Tf +<20696e73696465206561636820> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +1.4385 Tw + +BT +436.6821 289.366 Td +/F6.0 11 Tf +<5265676973747279> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.4385 Tw + +BT +480.6821 289.366 Td +/F2.0 11 Tf +<207365676d656e7420696e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 274.8916 Td +/F2.0 11 Tf +<74686520436f6e66696775726174696f6e53656374696f6e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +186.51 274.8916 Td +/F6.0 11 Tf +<55646469436f6e666967> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +241.51 274.8916 Td +/F2.0 11 Tf +<3a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 259.4329 m +543.04 259.4329 l +545.2491 259.4329 547.04 257.642 547.04 255.4329 c +547.04 100.4929 l +547.04 98.2837 545.2491 96.4929 543.04 96.4929 c +52.24 96.4929 l +50.0309 96.4929 48.24 98.2837 48.24 100.4929 c +48.24 255.4329 l +48.24 257.642 50.0309 259.4329 52.24 259.4329 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 259.4329 m +543.04 259.4329 l +545.2491 259.4329 547.04 257.642 547.04 255.4329 c +547.04 100.4929 l +547.04 98.2837 545.2491 96.4929 543.04 96.4929 c +52.24 96.4929 l +50.0309 96.4929 48.24 98.2837 48.24 100.4929 c +48.24 255.4329 l +48.24 257.642 50.0309 259.4329 52.24 259.4329 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 239.2259 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 227.4809 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 215.7359 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 203.9909 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 192.2459 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +469.64 192.2459 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 180.5009 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 168.7559 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 157.0109 Td +/F8.0 9 Tf +<3c456e64706f696e743e687474703a2f2f646973636f766572797075626c69632e6e656d68616e64656c2e646b2f756464692f73657276696365732f696e71756972793c2f456e64706f696e743e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 145.2659 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 133.5209 Td +/F8.0 9 Tf +<6261636b75702e646b2f756464692f73657276696365732f696e71756972793c2f456e64706f696e743e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 121.7759 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 110.0309 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +50.865 78.7679 Td +/F6.1 10.5 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +63.99 79.4771 Td +/F2.0 11 Tf +<546865206e657720656c656d656e742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 53.0027 Td +/F2.0 11 Tf +<496620656c656d656e74206973206e6f742070726573656e742c20612064656661756c742076616c7565206f6620313230207365636f6e647320697320757365642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +498.277 39.505 Td +/F2.0 9 Tf +<506167652037202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +59 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 58 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F8.0 60 0 R +/F4.0 20 0 R +/F2.0 11 0 R +/F6.0 35 0 R +/F6.1 63 0 R +>> +/XObject << /Stamp1 172 0 R +>> +>> +>> +endobj +60 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Courier +/Encoding /WinAnsiEncoding +>> +endobj +61 0 obj +[59 0 R /XYZ 0 715.966 null] +endobj +62 0 obj +[59 0 R /XYZ 0 343.3591 null] +endobj +63 0 obj +<< /Type /Font +/BaseFont /e94940+mplus1mn-regular +/Subtype /TrueType +/FontDescriptor 203 0 R +/FirstChar 32 +/LastChar 255 +/Widths 205 0 R +/ToUnicode 204 0 R +>> +endobj +64 0 obj +<< /Length 12718 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 795.66 Td +/F4.0 11 Tf +<332e312e362e342e204c64617053657474696e6773> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0605 Tw + +BT +48.24 771.1713 Td +/F2.0 11 Tf +<4e657720686f737420616e6420706f727420656c656d656e74732061726520726571756972656420666f7220746865204d69744944204c444150207365727665722c20616e6420697420697320726571756972656420746f206265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 756.6969 Td +/F2.0 11 Tf +<61626c6520746f2064697374696e6775697368206265747765656e204e656d494420616e64204d69744944204c44415020686f7374732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.0333 Tw + +BT +48.24 730.2224 Td +/F2.0 11 Tf +<5468652063757272656e7420436f6e66696775726174696f6e53656374696f6e20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +2.0333 Tw + +BT +238.0839 730.2224 Td +/F6.0 11 Tf +<4c64617053657474696e6773> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.0333 Tw + +BT +304.0839 730.2224 Td +/F2.0 11 Tf +<206e6565647320746f2062652072657374727563747572656420746f2074686520666f6c6c6f77696e67> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 715.748 Td +/F2.0 11 Tf +<73796e7461783a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 700.2893 m +543.04 700.2893 l +545.2491 700.2893 547.04 698.4984 547.04 696.2893 c +547.04 541.3493 l +547.04 539.1401 545.2491 537.3493 543.04 537.3493 c +52.24 537.3493 l +50.0309 537.3493 48.24 539.1401 48.24 541.3493 c +48.24 696.2893 l +48.24 698.4984 50.0309 700.2893 52.24 700.2893 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 700.2893 m +543.04 700.2893 l +545.2491 700.2893 547.04 698.4984 547.04 696.2893 c +547.04 541.3493 l +547.04 539.1401 545.2491 537.3493 543.04 537.3493 c +52.24 537.3493 l +50.0309 537.3493 48.24 539.1401 48.24 541.3493 c +48.24 696.2893 l +48.24 698.4984 50.0309 700.2893 52.24 700.2893 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 680.0823 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 668.3373 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +313.04 668.3373 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 656.5923 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 644.8473 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 633.1023 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 621.3573 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +313.04 621.3573 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 609.6123 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 597.8673 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 586.1223 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 574.3773 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +383.24 574.3773 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 562.6323 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 550.8873 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +50.865 519.6243 Td +/F6.1 10.5 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.8096 Tw + +BT +63.99 520.3336 Td +/F2.0 11 Tf +<54686520686f737420616e6420706f727420656c656d656e7473206d757374206265207772617070656420696e206120> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +1.8096 Tw + +BT +359.6714 520.3336 Td +/F6.0 11 Tf +<4365727469666963617465496e667261737472756374757265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.8096 Tw + +BT +497.1714 520.3336 Td +/F2.0 11 Tf +<20656c656d656e74> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +63.99 505.8591 Td +/F2.0 11 Tf +<686f6c64696e67207468652069642076616c756520> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +174.287 505.8591 Td +/F6.0 11 Tf +<4e656d4944> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +201.787 505.8591 Td +/F2.0 11 Tf +<206f7220> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +220.377 505.8591 Td +/F6.0 11 Tf +<4d69744944> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +247.877 505.8591 Td +/F2.0 11 Tf +<2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +50.865 484.6754 Td +/F6.1 10.5 Tf +<22> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +8.6174 Tw + +BT +63.99 485.3847 Td +/F2.0 11 Tf +<5468652074696d656f75742076616c7565732061726520636f6e6669677572656420676c6f62616c6c7920666f7220626f7468204c44415020686f7374732f4365727469666963617465> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +63.99 470.9103 Td +/F2.0 11 Tf +<496e667261737472756374757265732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 444.4359 Td +/F2.0 11 Tf +<426f746820> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +77.192 444.4359 Td +/F6.0 11 Tf +<4365727469666963617465496e667261737472756374757265> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +214.692 444.4359 Td +/F2.0 11 Tf +<20656c656d656e747320617265206d616e6461746f72792e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 413.9471 Td +/F4.0 11 Tf +<332e312e362e352e20526f6f7420636572746966696361746573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +22.6847 Tw + +BT +48.24 389.4584 Td +/F2.0 11 Tf +<546865206b657973746f726520636f6e7461696e696e6720726f6f7420636572746966696361746573202873656520436f6e66696775726174696f6e53656374696f6e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +1.4945 Tw + +BT +48.24 374.984 Td +/F6.0 11 Tf +<526f6f744365727469666963617465436f6c6c656374696f6e436f6e666967> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.4945 Tw + +BT +218.74 374.984 Td +/F2.0 11 Tf +<2029206d75737420626520757064617465643a2041646420746865206e6577204d6974494420726f6f7420636572746966696361746520746f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 360.5096 Td +/F2.0 11 Tf +<746865206b657973746f72652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 334.0351 Td +/F2.0 11 Tf +<546865206e6577204d6974494420726f6f74206365727469666963617465732063616e20626520646f776e6c6f6164656420686572653a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 307.5607 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 307.5607 Td +/F2.0 11 Tf +<50524f443a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +103.431 307.5607 Td +/F2.0 11 Tf +<687474703a2f2f6361312e676f762e646b2f6f6365732f726f6f742f6361636572742f726f6f742e636572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +335.696 307.5607 Td +/F2.0 11 Tf +<20286e6f742061637469766520756e74696c205134203230323129> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 287.0863 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 287.0863 Td +/F2.0 11 Tf +<544553543a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +100.604 287.0863 Td +/F2.0 11 Tf +<687474703a2f2f6361312e6374692d676f762e646b2f6f6365732f726f6f742f6361636572742f726f6f742e636572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 260.6119 Td +/F2.0 11 Tf +<52656d656d62657220746865206c6162656c2f707265666978207573656420696e20746865206b657973746f72652028646566696e6564207573696e6720> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6941 0.1294 0.2745 scn +0.6941 0.1294 0.2745 SCN + +BT +392.32 260.6119 Td +/F6.0 11 Tf +<4b65794c6162656c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +436.32 260.6119 Td +/F2.0 11 Tf +<292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 213.2031 Td +/F4.0 15 Tf +<332e322e20524153502076657273696f6e20322e312e30> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0025 Tw + +BT +48.24 187.7424 Td +/F2.0 11 Tf +<4d61696e20707572706f736573206f6620746869732072656c656173652068617665206265656e3a202a2055706461746520636f646520746f20656e61626c6520506570706f6c2042495320646f63756d656e747320696e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 173.268 Td +/F2.0 11 Tf +<44616e697368204e656d68616e64656c2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 128.6493 Td +/F4.0 12 Tf +<332e322e312e204e6577206665617475726573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 103.9176 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 103.9176 Td +/F2.0 11 Tf +<537570706f7274206d756c7469706c6520736368656d6174726f6e2076616c69646174696f6e732070657220646f63756d656e7420747970652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 83.4431 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.1624 Tw + +BT +66.24 83.4431 Td +/F2.0 11 Tf +<4974206973206e6f7720706f737369626c6520746f2073656e64206120646f63756d656e742c20686176696e6720612053656e64657220706172742077697468206f74686572204b657954797065207468616e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.1458 Tw + +BT +66.24 68.9687 Td +/F2.0 11 Tf +<7468652076616c69642044616e697368207265636569766572204b657954797065732028746f20737570706f727420506570706f6c20726563656976656420646f63756d656e74732c20686176696e6720652e672e2061> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 54.4943 Td +/F2.0 11 Tf +<53453a4f52474e4f2061732073656e646572206b657974797065292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +497.782 39.505 Td +/F2.0 9 Tf +<506167652038202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +65 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 64 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +/F6.0 35 0 R +/F8.0 60 0 R +/F6.1 63 0 R +>> +/XObject << /Stamp2 173 0 R +>> +>> +/Annots [68 0 R 69 0 R] +>> +endobj +66 0 obj +[65 0 R /XYZ 0 841.89 null] +endobj +67 0 obj +[65 0 R /XYZ 0 428.9771 null] +endobj +68 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://ca1.gov.dk/oces/root/cacert/root.cer) +>> +/Subtype /Link +/Rect [103.431 304.8877 335.696 317.7907] +/Type /Annot +>> +endobj +69 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://ca1.cti-gov.dk/oces/root/cacert/root.cer) +>> +/Subtype /Link +/Rect [100.604 284.4133 352.174 297.3163] +/Type /Annot +>> +endobj +70 0 obj +[65 0 R /XYZ 0 245.1531 null] +endobj +71 0 obj +[65 0 R /XYZ 0 157.8093 null] +endobj +72 0 obj +<< /Length 11073 +>> +stream +q + +-0.5 Tc +/DeviceRGB cs +0.1333 0.1333 0.1333 scn +/DeviceRGB CS +0.1333 0.1333 0.1333 SCN + +BT +56.147 794.8743 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 794.8743 Td +/F2.0 11 Tf +<436f6e66696775726174696f6e48616e646c657223696e6974456e7669726f6e6d656e74206e6f7720636865636b20666f722070726573656e6365206f66204a43452e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 774.3999 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.3631 Tw + +BT +66.24 774.3999 Td +/F2.0 11 Tf +<78706174682070617273696e67206f662076616c75657320696e2052617370436f6e66696775726174696f6e20686173206265656e20757064617465642c20736f206974d57320706f737369626c6520746f207365742061> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 759.9254 Td +/F2.0 11 Tf +<66697865642076616c756520696e7374656164206f6620616e20787061746820d02065672e20737472696e6728d445414ed5292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 739.451 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.127 Tw + +BT +66.24 739.451 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e3a204974206e6f7720706f737369626c6520746f2073657420616e20656d70747920737472696e672061732076616c756520666f72203c536368656d61506174683e20746f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 724.9766 Td +/F2.0 11 Tf +<64697361626c6520536368656d612076616c69646174696f6e20666f7220612073696e676c6520646f63756d656e7420747970652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 704.5021 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.238 Tw + +BT +66.24 704.5021 Td +/F2.0 11 Tf +<7361786f6e3968652e6a6172206d75737420626520616464656420746f2070726f6a65637420746f2062652061626c6520746f20736368656d6174726f6e2076616c696461746520506570706f6c2066696c6573> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 690.0277 Td +/F2.0 11 Tf +<286265636175736520697420757365732058534c542032292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 645.409 Td +/F4.0 12 Tf +<332e322e322e204669786573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 620.6773 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.1101 Tw + +BT +66.24 620.6773 Td +/F2.0 11 Tf +<536368656d6174726f6e56616c696461746f7253415848616e646c6572436f6e66696720686173206265656e207570646174656420746f20616c6c6f77206461736820282d292061732070617274206f6620616e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 606.2029 Td +/F2.0 11 Tf +<787061746820286e656564656420666f72204465737061746368416476696365207870617468292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 585.7284 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.4841 Tw + +BT +66.24 585.7284 Td +/F2.0 11 Tf +<416e2061637469766520556464694c6f6f6b7570526573706f6e73652066726f6d204e48522c20686176696e6720616e2065787069726554696d65206c617465722073616d6520646174652c20776173> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 571.254 Td +/F2.0 11 Tf +<696e7465727072657465642061732065787069726564205b313533305d2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 550.7796 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 550.7796 Td +/F2.0 11 Tf +<4d696e6f7220666978657320746f206c6f6767696e6720616e6420696e7465726e616c2063616c6c732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 506.1609 Td +/F4.0 12 Tf +<332e322e332e204368616e676573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 481.4291 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 481.4291 Td +/F2.0 11 Tf +<4d6973632e2072656e616d696e67206f6620696e7465726e616c2063616c6c732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 460.9547 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.3423 Tw + +BT +66.24 460.9547 Td +/F2.0 11 Tf +<496e20636f6e7374727563746f727320666f72204c6f6f6b7570506172616d6574657273207468652061636365707465645472616e73706f727450726f746f636f6c7320706172742063616e206e6f77206265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 446.4803 Td +/F2.0 11 Tf +<4e756c6c2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 426.0059 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +27.5489 Tw + +BT +66.24 426.0059 Td +/F2.0 11 Tf +<496e2052617370436f6e66696775726174696f6e2e786d6c206974207761732070726576696f7573207468652076616c756520696e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.8701 Tw + +BT +66.24 411.5314 Td +/F2.0 11 Tf +<2f2f446f63756d656e7454797065436f6e6669672f456e64706f696e74547970652f50726f66696c6549645850617468207468617420776173207573656420696e2052415350204a6176612e2054686973> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +5.4222 Tw + +BT +66.24 397.057 Td +/F2.0 11 Tf +<686173206265656e2073747265616d6c696e65642077697468202e4e45542c20736f2066726f6d206e6f772c207468652076616c7565206d757374206265206c6f636174656420696e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 382.5826 Td +/F2.0 11 Tf +<2f2f446f63756d656e7454797065436f6e6669672f50726f66696c6549645850617468> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 337.9639 Td +/F4.0 12 Tf +<332e322e342e2052656d6f76616c73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 313.2321 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +3.214 Tw + +BT +66.24 313.2321 Td +/F2.0 11 Tf +<436c61737365732072656d6f7665643a204954696d656443616368652c204365727469666963617465436865636b65722c205175616e7469747943616368652028646570726563617465642073696e6365> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 298.7577 Td +/F2.0 11 Tf +<312e332e30292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 278.2833 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 278.2833 Td +/F2.0 11 Tf +<4f746865722064657072656361746564206d6574686f64732072656d6f7665642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 257.8089 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 257.8089 Td +/F2.0 11 Tf +<52656d6f76616c206f6620756e7573656420457863657074696f6e20636c61737365732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 237.3344 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 237.3344 Td +/F2.0 11 Tf +<5573656c65737320456e64706f696e744164647265737354797065436f64652072656d6f766564202868747470732c20656d61696c2c206f7468657229205b313334385d2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 216.86 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 216.86 Td +/F2.0 11 Tf +<556e757365642070726f706572747920556464694c6f6f6b7570526573706f6e73652e7465726d734f6655736555726c2072656d6f7665642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 196.3856 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 196.3856 Td +/F2.0 11 Tf +<4964656e74696669657220737562636c61737365732072656d6f7665642c20616e64206d61696e204964656e74696669657220636c617373207265666163746f7265642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 175.9111 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 175.9111 Td +/F2.0 11 Tf +<52656d6f76656420636f646520696e7465726e616c6c7920666f7220636f6e6669677572696e67206d61696c2f534d5450206173207472616e73706f72742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 131.2924 Td +/F4.0 12 Tf +<332e322e352e20486f7720746f2075706772616465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 106.5607 Td +/F2.0 11 Tf +<486f7720746f20757067726164652070726f6a6563742066726f6d2052415350204a61766120322e302e3120746f2076657273696f6e20322e312e30> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.5118 Tw + +BT +48.24 80.0863 Td +/F2.0 11 Tf +<546869732066696c652073686f756c64206265207365656e206173206120677569646520666f72206d6967726174696e67206f776e20636f646520746f204f494f52415350206c6962726172792076657273696f6e20322e312e30> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.1546 Tw + +BT +48.24 65.6119 Td +/F2.0 11 Tf +<546865206775696465206d69676874206e6f7420626520313030252061636375726174652c20646570656e64696e67206f6e20796f757220757365206f6620746865206c6962726172792120536f6d65207374657073> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 51.1374 Td +/F2.0 11 Tf +<6d6967687420626520756e6e656365737361727920696e20796f75722073657475702c20616e64206f7468657273206d696768742062652061732064657461696c6564206173206e65656420696e20796f757220736574757021> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +497.773 39.505 Td +/F2.0 9 Tf +<506167652039202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +73 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 72 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F2.0 11 0 R +/F4.0 20 0 R +>> +/XObject << /Stamp1 172 0 R +>> +>> +>> +endobj +74 0 obj +[73 0 R /XYZ 0 674.569 null] +endobj +75 0 obj +[73 0 R /XYZ 0 535.3209 null] +endobj +76 0 obj +<< /Limits [(__anchor-top) (_ldapsettings)] +/Names [(__anchor-top) 16 0 R (_changes) 33 0 R (_changes_2) 75 0 R (_changes_from_2_1_0_to_3_0_0) 51 0 R (_compatibility) 94 0 R (_configuration) 49 0 R (_fixes) 32 0 R (_fixes_2) 74 0 R (_how_to_upgrade) 38 0 R (_how_to_upgrade_2) 79 0 R (_installation) 93 0 R (_introduction) 19 0 R (_known_issues) 95 0 R (_ldapsettings) 66 0 R] +>> +endobj +77 0 obj +<< /Limits [(_licenses) (what_is_changed)] +/Names [(_licenses) 98 0 R (_mappings_removal) 61 0 R (_new_features) 29 0 R (_new_features_2) 71 0 R (_nhr_uddi_lookup_urls) 84 0 R (_oiorasp_version_3_0_0) 28 0 R (_raspconfiguration_xml_oiorasp_3_0_0) 50 0 R (_raspconfiguration_xml_update) 87 0 R (_release_content) 24 0 R (_removals) 37 0 R (_removals_2) 78 0 R (_root_certificates) 67 0 R (_system_requirements) 92 0 R (_timeout_for_nhr_uddi_requests) 62 0 R (rasp_2_1_0) 70 0 R (what_is_changed) 27 0 R] +>> +endobj +78 0 obj +[73 0 R /XYZ 0 367.1239 null] +endobj +79 0 obj +[73 0 R /XYZ 0 160.4524 null] +endobj +80 0 obj +<< /Length 9980 +>> +stream +q +/DeviceRGB cs +0.1333 0.1333 0.1333 scn +/DeviceRGB CS +0.1333 0.1333 0.1333 SCN + +BT +48.24 794.8743 Td +/F2.0 11 Tf +<5374657073> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +54.161 768.3999 Td +/F2.0 11 Tf +<312e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 768.3999 Td +/F2.0 11 Tf +<446f776e6c6f6164206e65772072656c656173652066726f6d20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +222.033 768.3999 Td +/F2.0 11 Tf +<68747470733a2f2f6469676974616c697365722e646b2f67726f75702f3430353434322f7265736f7572636573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.038 747.9254 Td +/F2.0 11 Tf +<322e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 747.9254 Td +/F2.0 11 Tf +<46696c65206368616e6765733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 727.451 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 727.451 Td +/F2.0 11 Tf +<5265706c61636520796f7572206f6c64204a41522066696c65207769746820746865206e65772028646b2e676f762e6f696f73692e6c6962726172792d322e312e302e78787878782e6a617229> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 706.9766 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 706.9766 Td +/F2.0 11 Tf +<52656d6f766520736d74706661756c742e6d6172> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 686.5021 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 686.5021 Td +/F2.0 11 Tf +<5265706c61636520726173702a2e6d6172207769746820726173702d322e312e302e6d6172> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +73.377 666.0277 Td +/F2.1 11 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.6718 Tw + +BT +84.24 666.0277 Td +/F2.0 11 Tf +<416464207361786f6e3968652e6a617220746f2070726f6a6563742028746f2062652061626c6520746f20776f726b20776974682078736c7420322e302066696c6573207573656420696e20506570706f6c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +84.24 651.5533 Td +/F2.0 11 Tf +<736368656d6174726f6e2066696c657329> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.038 631.0789 Td +/F2.0 11 Tf +<332e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 631.0789 Td +/F2.0 11 Tf +<52617370436f6e66696775726174696f6e2e786d6c206d757374206265207570646174656421205365652052617370436f6e66696775726174696f6e2d7570646174652d322e312e302e706466> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +51.73 610.6044 Td +/F2.0 11 Tf +<342e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 610.6044 Td +/F2.0 11 Tf +<436f646520757064617465733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +41.1307 Tw + +BT +48.24 584.13 Td +/F2.0 11 Tf +<446f63756d656e7454797065436f6e6669672e676574536368656d6174726f6e56616c69646174696f6e436f6e6669672829206973207265706c61636564206279> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.764 Tw + +BT +48.24 569.6556 Td +/F2.0 11 Tf +<446f63756d656e7454797065436f6e6669672e676574536368656d6174726f6e56616c69646174696f6e436f6e6669674c6973742829206265636175736520506570706f6c20646f63756d656e747320686173> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +31.17 Tw + +BT +48.24 555.1811 Td +/F2.0 11 Tf +<6d756c7469706c6520736368656d6174726f6e2066696c65732e205772617020796f7572206e6f726d616c20757365206f66> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +76.48 Tw + +BT +48.24 540.7067 Td +/F2.0 11 Tf +<446f63756d656e7454797065436f6e6669672e676574536368656d6174726f6e56616c69646174696f6e436f6e666967282920776974683a20666f72> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +89.372 Tw + +BT +48.24 526.2323 Td +/F2.0 11 Tf +<28536368656d6174726f6e56616c69646174696f6e436f6e66696720736368656d6174726f6e56616c69646174696f6e436f6e666967203a> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 511.7579 Td +/F2.0 11 Tf +<646f63756d656e7454797065436f6e6669672e676574536368656d6174726f6e56616c69646174696f6e436f6e6669674c697374282929207b207d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.8903 Tw + +BT +48.24 485.2834 Td +/F2.0 11 Tf +<4d697373696e6743726564656e7469616c73457863657074696f6e20616e64206f7468657220457863657074696f6e7320686173206265656e2072656d6f766564202d20706c6561736520757365206f74686572> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 470.809 Td +/F2.0 11 Tf +<7375697461626c6520657863657074696f6e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 444.3346 Td +/F2.0 11 Tf +<4964656e7469666965722e6765744b65795479706556616c7565282920686173206265656e2072656d6f766564202d20706c6561736520757365204964656e7469666965722e676574547970652829206e6f772e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.6208 Tw + +BT +48.24 417.8601 Td +/F2.0 11 Tf +<656e756d20456e64706f696e744164647265737354797065436f646520686173206265656e20636c65616e656420666f7220756e757361626c652076616c756573202868747470732c20656d61696c2c20667470> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 403.3857 Td +/F2.0 11 Tf +<616e64206f7468657229> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 376.9113 Td +/F2.0 11 Tf +<546861742073686f756c642062652069742e2e21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.2357 Tw + +BT +48.24 350.4369 Td +/F2.0 11 Tf +<497420796f75206d6565742070726f626c656d732c20746861742073686f756c6420626520696e636c7564656420696e20746869732067756964652c20706c6561736520706f737420796f757220636f6d6d656e747320746f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 335.9624 Td +/F2.0 11 Tf +<74686520666f6c6c6f77696e6720656d61696c20616464726573733a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +205.1 335.9624 Td +/F2.0 11 Tf +<737570706f7274406e656d68616e64656c2e646b> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 291.3437 Td +/F4.0 12 Tf +<332e322e362e204e48522055444449206c6f6f6b75702055524cd573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.1101 Tw + +BT +48.24 266.612 Td +/F2.0 11 Tf +<54686520707572706f7365206f6620746869732075706461746520697320746f206368616e67652074686520446973636f76657279206c6f6f6b75702055524cd5733a202a204d61696e3a204d616b6520746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.7247 Tw + +BT +48.24 252.1376 Td +/F2.0 11 Tf +<446973636f766572794261636b757020686f7374206e616d65206c6f6f6b757020726f757465206d6f726520726f62757374202a205365636f6e643a205068617365206f7574207468652062696e64696e6720746f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 237.6631 Td +/F2.0 11 Tf +<74686520676f762e646b20646f6d61696e2e204974206973207265636f6d6d656e64656420746f206d616b6520746865206368616e676520617320736f6f6e20617320706f737369626c652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 212.2152 Td +/F5.0 9.975 Tf +<55646469436f6e666967> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 194.063 Td +/F2.0 11 Tf +<496e2052617370436f6e66696775726174696f6e2e786d6c2c20696e207468652073656374696f6e206964656e7469666965642062793a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 178.6043 m +543.04 178.6043 l +545.2491 178.6043 547.04 176.8135 547.04 174.6043 c +547.04 125.3693 l +547.04 123.1602 545.2491 121.3693 543.04 121.3693 c +52.24 121.3693 l +50.0309 121.3693 48.24 123.1602 48.24 125.3693 c +48.24 174.6043 l +48.24 176.8135 50.0309 178.6043 52.24 178.6043 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 178.6043 m +543.04 178.6043 l +545.2491 178.6043 547.04 176.8135 547.04 174.6043 c +547.04 125.3693 l +547.04 123.1602 545.2491 121.3693 543.04 121.3693 c +52.24 121.3693 l +50.0309 121.3693 48.24 123.1602 48.24 125.3693 c +48.24 174.6043 l +48.24 176.8135 50.0309 178.6043 52.24 178.6043 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 158.3973 Td +/F8.0 9 Tf +<3c436f6e66696775726174696f6e53656374696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 146.6523 Td +/F8.0 9 Tf +<7873693a747970653d2255646469436f6e666967223e2f4c6f6f6b7570526567697374727946616c6c6261636b436f6e6669672f5072696f726974697a656452656769737472794c697374> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 134.9073 Td +/F8.0 9 Tf +<746f64617920686176652076616c756573206c696b653a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +494.218 39.505 Td +/F2.0 9 Tf +<50616765203130202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +81 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 80 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F2.0 11 0 R +/F2.1 36 0 R +/F4.0 20 0 R +/F5.0 34 0 R +/F8.0 60 0 R +>> +/XObject << /Stamp2 173 0 R +>> +>> +/Annots [82 0 R 83 0 R] +>> +endobj +82 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://digitaliser.dk/group/405442/resources) +>> +/Subtype /Link +/Rect [222.033 765.7269 469.72 778.6299] +/Type /Annot +>> +endobj +83 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (mailto:support@nemhandel.dk) +>> +/Subtype /Link +/Rect [205.1 333.2894 333.866 346.1924] +/Type /Annot +>> +endobj +84 0 obj +[81 0 R /XYZ 0 320.5037 null] +endobj +85 0 obj +<< /Length 9551 +>> +stream +q +q +/DeviceRGB cs +0.9216 0.9216 0.9216 scn +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 693.93 l +547.04 691.7209 545.2491 689.93 543.04 689.93 c +52.24 689.93 l +50.0309 689.93 48.24 691.7209 48.24 693.93 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +f +/DeviceRGB CS +0.8 0.8 0.8 SCN +0.75 w +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 693.93 l +547.04 691.7209 545.2491 689.93 543.04 689.93 c +52.24 689.93 l +50.0309 689.93 48.24 691.7209 48.24 693.93 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +S +Q +/DeviceRGB cs +0.0 0.4667 0.0 scn +/DeviceRGB CS +0.0 0.4667 0.0 SCN + +BT +59.24 785.683 Td +/F8.0 9 Tf +<3c52656769737472793e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 773.938 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 762.193 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 750.448 Td +/F8.0 9 Tf +<3c456e64706f696e743e687474703a2f2f646973636f766572797075626c69632e756464692e6568616e64656c2e676f762e646b2f756464692f73657276696365732f696e71756972793c2f456e64706f696e743e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 738.703 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 726.958 Td +/F8.0 9 Tf +<3c456e64706f696e743e687474703a2f2f646973636f766572796261636b75702e756464692e6568616e64656c2e676f762e646b2f756464692f73657276696365732f696e71756972793c2f456e64706f696e743e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 715.213 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 703.468 Td +/F8.0 9 Tf +<3c2f52656769737472793e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 666.9143 Td +/F2.0 11 Tf +<54686573652076616c756573206d757374206265207570646174656420746f3a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 651.4556 m +543.04 651.4556 l +545.2491 651.4556 547.04 649.6647 547.04 647.4556 c +547.04 551.2406 l +547.04 549.0314 545.2491 547.2406 543.04 547.2406 c +52.24 547.2406 l +50.0309 547.2406 48.24 549.0314 48.24 551.2406 c +48.24 647.4556 l +48.24 649.6647 50.0309 651.4556 52.24 651.4556 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 651.4556 m +543.04 651.4556 l +545.2491 651.4556 547.04 649.6647 547.04 647.4556 c +547.04 551.2406 l +547.04 549.0314 545.2491 547.2406 543.04 547.2406 c +52.24 547.2406 l +50.0309 547.2406 48.24 549.0314 48.24 551.2406 c +48.24 647.4556 l +48.24 649.6647 50.0309 651.4556 52.24 651.4556 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 631.2486 Td +/F8.0 9 Tf +<3c52656769737472793e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 619.5036 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 607.7586 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 596.0136 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 584.2686 Td +/F8.0 9 Tf +<6261636b75702e646b2f756464692f73657276696365732f696e71756972793c2f456e64706f696e743e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 572.5236 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 560.7786 Td +/F8.0 9 Tf +<3c2f52656769737472793e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 506.0806 Td +/F4.0 12 Tf +<332e322e372e2052617370436f6e66696775726174696f6e2e786d6c20757064617465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.9713 Tw + +BT +48.24 481.3489 Td +/F2.0 11 Tf +<54686520707572706f7365206f662074686520524153502076657273696f6e20322e312e3020697320746f20616c6c6f7720506570706f6c2042495320646f63756d656e747320746f2062652065786368616e676564> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 466.8744 Td +/F2.0 11 Tf +<76696120746865204e656d68616e64656c20696e667261737472756374757265202b2072656d6f7665207472697669616c204b657954797065206d617070696e67732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 441.4265 Td +/F5.0 9.975 Tf +<446f63756d656e7454797065206964656e74696669636174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 423.2743 Td +/F2.0 11 Tf +<5072696f722c206120446f63756d656e745479706520776173206964656e74696669656420696e7369646520746865203c446f63756d656e7454797065436f6e6669673e207573696e673a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 407.8156 m +543.04 407.8156 l +545.2491 407.8156 547.04 406.0247 547.04 403.8156 c +547.04 295.8556 l +547.04 293.6465 545.2491 291.8556 543.04 291.8556 c +52.24 291.8556 l +50.0309 291.8556 48.24 293.6465 48.24 295.8556 c +48.24 403.8156 l +48.24 406.0247 50.0309 407.8156 52.24 407.8156 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 407.8156 m +543.04 407.8156 l +545.2491 407.8156 547.04 406.0247 547.04 403.8156 c +547.04 295.8556 l +547.04 293.6465 545.2491 291.8556 543.04 291.8556 c +52.24 291.8556 l +50.0309 291.8556 48.24 293.6465 48.24 295.8556 c +48.24 403.8156 l +48.24 406.0247 50.0309 407.8156 52.24 407.8156 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 387.6086 Td +/F8.0 9 Tf +<3c526f6f744e616d6573706163653e75726e3a6f617369733a6e616d65733a73706563696669636174696f6e3a75626c3a736368656d613a7873643a496e766f6963652d323c2f526f6f744e616d6573706163653e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 375.8636 Td +/F8.0 9 Tf +<3c526f6f744e616d653e496e766f6963653c2f526f6f744e616d653e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 364.1186 Td +/F8.0 9 Tf +<3c4964656e7469666965724469736372696d696e61746f72733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 352.3736 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 340.6286 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 328.8836 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 317.1386 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 305.3936 Td +/F8.0 9 Tf +<3c2f4964656e7469666965724469736372696d696e61746f72733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +3.7405 Tw + +BT +48.24 268.8399 Td +/F2.0 11 Tf +<4279207574696c697a696e6720746865206578697374696e67203c58506174684469736372696d696e61746f72436f6e6669673e2c20697420697320706f737369626c6520746f206469736372696d696e61746520746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 254.3655 Td +/F2.0 11 Tf +<4f494f55424c20496e766f6963652066726f6d2074686520506570706f6c2042495320496e766f6963652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 228.9175 Td +/F5.0 9.975 Tf +<536368656d6174726f6e2076616c69646174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 210.7654 Td +/F2.0 11 Tf +<5072696f722c2052415350206f6e6c7920737570706f72746564206f6e6520536368656d6174726f6e2f58534c542066696c652070657220446f63756d656e7454797065207573696e673a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 184.2909 Td +/F2.0 11 Tf +<496e20506570706f6c20646f63756d656e74732c206d756c7469706c6520736368656d6174726f6e2066696c6573206172652070726f76696465642070657220446f63756d656e74547970652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +9.8765 Tw + +BT +48.24 157.8165 Td +/F2.0 11 Tf +<546869732073656374696f6e206d757374207468657265666f7265206e6f77206265207772617070656420696e206120636f6e7461696e657220636c6173732063616c6c6564> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 143.3421 Td +/F2.0 11 Tf +<3c536368656d6174726f6e56616c69646174696f6e436f6e666967733e3a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +496.306 39.505 Td +/F2.0 9 Tf +<50616765203131202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +86 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 85 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F8.0 60 0 R +/F2.0 11 0 R +/F4.0 20 0 R +/F5.0 34 0 R +>> +/XObject << /Stamp1 172 0 R +>> +>> +>> +endobj +87 0 obj +[86 0 R /XYZ 0 535.2406 null] +endobj +88 0 obj +<< /Length 7141 +>> +stream +q +q +/DeviceRGB cs +0.9216 0.9216 0.9216 scn +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 705.675 l +547.04 703.4659 545.2491 701.675 543.04 701.675 c +52.24 701.675 l +50.0309 701.675 48.24 703.4659 48.24 705.675 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +f +/DeviceRGB CS +0.8 0.8 0.8 SCN +0.75 w +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 705.675 l +547.04 703.4659 545.2491 701.675 543.04 701.675 c +52.24 701.675 l +50.0309 701.675 48.24 703.4659 48.24 705.675 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +S +Q +/DeviceRGB cs +0.0 0.4667 0.0 scn +/DeviceRGB CS +0.0 0.4667 0.0 SCN + +BT +59.24 785.683 Td +/F8.0 9 Tf +<3c536368656d6174726f6e56616c69646174696f6e436f6e666967733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 773.938 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 762.193 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 750.448 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 738.703 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 726.958 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 715.213 Td +/F8.0 9 Tf +<3c2f536368656d6174726f6e56616c69646174696f6e436f6e666967733e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +4.1366 Tw + +BT +48.24 678.6593 Td +/F2.0 11 Tf +<5468697320616c6c6f777320666f72206d756c7469706c65203c536368656d6174726f6e56616c69646174696f6e436f6e6669673e20656c656d656e74732e20546865736520656c656d656e747320617265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 664.1849 Td +/F2.0 11 Tf +<76616c69646174656420696e20746865206c6973746564206f726465722e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 638.7369 Td +/F5.0 9.975 Tf +<4b6579547970654d617070696e6745787072657373696f6e73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.5275 Tw + +BT +48.24 620.5848 Td +/F2.0 11 Tf +<546865204964656e746966696572204b65795479706520696e73696465206561636820446f63756d656e7454797065436f6e666967206973206e6f77206469726563746c7920737570706f7274656420696e20746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 606.1103 Td +/F2.0 11 Tf +<4e4852205544444920496e717565727920696e746572666163652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +44.2612 Tw + +BT +48.24 579.6359 Td +/F2.0 11 Tf +<5468657265666f7265206d616e79206f6620746865206f6c64206d617070696e677320696e73696465> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.2738 Tw + +BT +48.24 565.1615 Td +/F2.0 11 Tf +<2f2f4d617070696e6745787072657373696f6e732f4b6579547970654d617070696e6745787072657373696f6e732f4d617070696e67732063616e2062652072656d6f7665642e204578616d706c6573206f66> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 550.687 Td +/F2.0 11 Tf +<7374616e64617264206d617070696e677320746861742073686f756c642062652072656d6f766564206e6f773a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 535.2283 m +543.04 535.2283 l +545.2491 535.2283 547.04 533.4375 547.04 531.2283 c +547.04 376.2883 l +547.04 374.0792 545.2491 372.2883 543.04 372.2883 c +52.24 372.2883 l +50.0309 372.2883 48.24 374.0792 48.24 376.2883 c +48.24 531.2283 l +48.24 533.4375 50.0309 535.2283 52.24 535.2283 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 535.2283 m +543.04 535.2283 l +545.2491 535.2283 547.04 533.4375 547.04 531.2283 c +547.04 376.2883 l +547.04 374.0792 545.2491 372.2883 543.04 372.2883 c +52.24 372.2883 l +50.0309 372.2883 48.24 374.0792 48.24 376.2883 c +48.24 531.2283 l +48.24 533.4375 50.0309 535.2283 52.24 535.2283 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 515.0213 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 503.2763 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 491.5313 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 479.7863 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 468.0413 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 456.2963 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 444.5513 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 432.8063 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 421.0613 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 409.3163 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 397.5713 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 385.8263 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0757 Tw + +BT +48.24 349.2726 Td +/F2.0 11 Tf +<466f72206261636b7761726420636f6d7061746962696c697479207768656e2073656e64696e6720746f2052415350204a61766120322e302e7820656e64706f696e74732c2036206f6c64206d617070696e677320617265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 334.7982 Td +/F2.0 11 Tf +<657373656e7469616c20746f206b65657020696e2072656c6174696f6e20746f204f494f55424c3a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +494.569 39.505 Td +/F2.0 9 Tf +<50616765203132202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +89 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 88 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F8.0 60 0 R +/F2.0 11 0 R +/F5.0 34 0 R +>> +/XObject << /Stamp2 173 0 R +>> +>> +>> +endobj +90 0 obj +<< /Length 7889 +>> +stream +q +q +/DeviceRGB cs +0.9216 0.9216 0.9216 scn +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 506.01 l +547.04 503.8009 545.2491 502.01 543.04 502.01 c +52.24 502.01 l +50.0309 502.01 48.24 503.8009 48.24 506.01 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +f +/DeviceRGB CS +0.8 0.8 0.8 SCN +0.75 w +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 506.01 l +547.04 503.8009 545.2491 502.01 543.04 502.01 c +52.24 502.01 l +50.0309 502.01 48.24 503.8009 48.24 506.01 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +S +Q +/DeviceRGB cs +0.0 0.4667 0.0 scn +/DeviceRGB CS +0.0 0.4667 0.0 SCN + +BT +59.24 785.683 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 773.938 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 762.193 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 750.448 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 738.703 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 726.958 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 715.213 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 703.468 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 691.723 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 679.978 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 668.233 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 656.488 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 644.743 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 632.998 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 621.253 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 609.508 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 597.763 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 586.018 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 574.273 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 562.528 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 550.783 Td +/F8.0 9 Tf +<3c4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 539.038 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 527.293 Td +/F8.0 9 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 515.548 Td +/F8.0 9 Tf +<3c2f4d617070696e673e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.8931 Tw + +BT +48.24 478.9943 Td +/F2.0 11 Tf +<496e2067656e6572616c2c207468652065786368616e676564204b6579547970652076616c7565206d757374206265206f6e65206f662074686520666f6c6c6f77696e673a2045414e2f474c4e2c20444b3a4356522c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.5825 Tw + +BT +48.24 464.5199 Td +/F2.0 11 Tf +<444b3a53452c20444b3a56414e532c20444b3a502c204942414e2c2044554e5320616e6420444b3a4350522e20446570656e64696e67206f6e2065786368616e67656420646f63756d656e742074797065732c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 450.0454 Td +/F2.0 11 Tf +<6f74686572206d617070696e6773206d69676874206265206e656564656420696e20637573746f6d6572207370656369666963207365747570732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 393.8467 Td +/F4.0 18 Tf +<342e2053797374656d20526571756972656d656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 367.657 Td +/F2.0 11 Tf +<536565204f494f524153505f4a6176615f496e7374616c6c6174696f6e47756964652e61646f63> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 311.4583 Td +/F4.0 18 Tf +<352e20496e7374616c6c6174696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 285.2686 Td +/F2.0 11 Tf +<536565204f494f524153505f4a6176615f496e7374616c6c6174696f6e47756964652e61646f63> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 229.0699 Td +/F4.0 18 Tf +<362e20436f6d7061746962696c697479> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.0839 Tw + +BT +48.24 202.8801 Td +/F2.0 11 Tf +<54686973204f494f5241535020332e302e302e5243312072656c6561736520686173206265656e20746573746564204f4b2077697468204f494f5241535020322e312e7820666f7220626f7468204a61766120616e64> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 188.4057 Td +/F2.0 11 Tf +<2e4e4554207768656e2072756e6e696e67207769746820466f6365733220636572746966696361746573206f6e20626f74682073656e64657220616e6420726563656976657220736964652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 132.207 Td +/F4.0 18 Tf +<372e204b6e6f776e20697373756573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.6886 Tw + +BT +48.24 106.0173 Td +/F2.0 11 Tf +<50726f63657373696e67206c617267652073697a656420646f63756d656e74732077696c6c20636f6e73756d65206c617267652073697a65206f662052414d20616e64204350552e205468652052415350> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.6977 Tw + +BT +48.24 91.5429 Td +/F2.0 11 Tf +<6c69627261727920697473656c662073686f756c64206e6f206c6f6e67657220626520746865206f62737461636c6520666f722073656e64696e6720616e642068616e646c696e67206c617267652066696c65732c2062757420746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.8655 Tw + +BT +48.24 77.0684 Td +/F2.0 11 Tf +<6861726477617265206d7573742062652077656c6c2d65717569707065642c2061732077656c6c20617320696e7465726e657420636f6e6e656374696f6e207370656564206265747765656e2073656e646572> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 62.594 Td +/F2.0 11 Tf +<616e642072656365697665722e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +494.569 39.505 Td +/F2.0 9 Tf +<50616765203133202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +91 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 90 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F8.0 60 0 R +/F2.0 11 0 R +/F4.0 20 0 R +>> +/XObject << /Stamp1 172 0 R +>> +>> +>> +endobj +92 0 obj +[91 0 R /XYZ 0 434.5867 null] +endobj +93 0 obj +[91 0 R /XYZ 0 352.1983 null] +endobj +94 0 obj +[91 0 R /XYZ 0 269.8099 null] +endobj +95 0 obj +[91 0 R /XYZ 0 172.947 null] +endobj +96 0 obj +<< /Length 5414 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 789.15 Td +/F4.0 18 Tf +<382e204c6963656e736573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.1206 Tw + +BT +48.24 762.9603 Td +/F2.0 11 Tf +<536f6d6520736f7572636520636f6465206973206c6963656e73656420756e64657220746865204d6f7a696c6c61205075626c6963204c6963656e73652056657273696f6e20312e312e205468652075736564206c6963656e7365> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 748.4859 Td +/F2.0 11 Tf +<6973207374617465642062656c6f772e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 733.0271 m +543.04 733.0271 l +545.2491 733.0271 547.04 731.2363 547.04 729.0271 c +547.04 503.6171 l +547.04 501.408 545.2491 499.6171 543.04 499.6171 c +52.24 499.6171 l +50.0309 499.6171 48.24 501.408 48.24 503.6171 c +48.24 729.0271 l +48.24 731.2363 50.0309 733.0271 52.24 733.0271 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 733.0271 m +543.04 733.0271 l +545.2491 733.0271 547.04 731.2363 547.04 729.0271 c +547.04 503.6171 l +547.04 501.408 545.2491 499.6171 543.04 499.6171 c +52.24 499.6171 l +50.0309 499.6171 48.24 501.408 48.24 503.6171 c +48.24 729.0271 l +48.24 731.2363 50.0309 733.0271 52.24 733.0271 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 712.8201 Td +/F8.0 9 Tf +<2f2a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 701.0751 Td +/F8.0 9 Tf +<2a2054686520636f6e74656e7473206f6620746869732066696c6520617265207375626a65637420746f20746865204d6f7a696c6c61205075626c6963> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 689.3301 Td +/F8.0 9 Tf +<2a204c6963656e73652056657273696f6e20312e31202874686520224c6963656e736522293b20796f75206d6179206e6f74207573652074686973> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 677.5851 Td +/F8.0 9 Tf +<2a2066696c652065786365707420696e20636f6d706c69616e6365207769746820746865204c6963656e73652e20596f75206d6179206f627461696e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 665.8401 Td +/F8.0 9 Tf +<2a206120636f7079206f6620746865204c6963656e736520617420687474703a2f2f7777772e6d6f7a696c6c612e6f72672f4d504c2f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 654.0951 Td +/F8.0 9 Tf +<2a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 642.3501 Td +/F8.0 9 Tf +<2a20536f66747761726520646973747269627574656420756e64657220746865204c6963656e7365206973206469737472696275746564206f6e20616e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 630.6051 Td +/F8.0 9 Tf +<2a20224153204953222062617369732c20574954484f55542057415252414e5459204f4620414e59204b494e442c206569746865722065787072657373> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 618.8601 Td +/F8.0 9 Tf +<2a206f7220696d706c6965642e2053656520746865204c6963656e736520666f7220746865207370656369666963206c616e677561676520676f7665726e696e67> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 607.1151 Td +/F8.0 9 Tf +<2a2072696768747320616e64206c696d69746174696f6e7320756e64657220746865204c6963656e73652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 595.3701 Td +/F8.0 9 Tf +<2a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 583.6251 Td +/F8.0 9 Tf +<2a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 571.8801 Td +/F8.0 9 Tf +<2a20546865204f726967696e616c20436f6465206973204f494f52415350204a61766120746f6f6c6b69742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 560.1351 Td +/F8.0 9 Tf +<2a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 548.3901 Td +/F8.0 9 Tf +<2a2054686520496e697469616c20446576656c6f706572206f6620746865204f726967696e616c20436f6465206973204c656e696f2e20506f7274696f6e73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 536.6451 Td +/F8.0 9 Tf +<2a2063726561746564206279204c656e696f2061726520436f707972696768742028432920323030372044616e697368204e6174696f6e616c20495420616e64> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 524.9001 Td +/F8.0 9 Tf +<2a2054656c65636f6d204167656e63792028687474703a2f2f7777772e64696773742e646b292e20416c6c205269676874732052657365727665642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 513.1551 Td +/F8.0 9 Tf +<2a202a2f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.2425 Tw + +BT +48.24 476.6014 Td +/F2.0 11 Tf +<4c6963656e73657320666f722065787465726e616c20646570656e64656e636965732064697374726962757465642077697468207468652052415350206c6962726172792063616e20626520666f756e6420756e646572> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 462.127 Td +/F2.0 11 Tf +<746865202f6c696220666f6c6465722e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +494.317 39.505 Td +/F2.0 9 Tf +<50616765203134202f203134> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +97 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 96 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +/F8.0 60 0 R +>> +/XObject << /Stamp2 173 0 R +>> +>> +>> +endobj +98 0 obj +[97 0 R /XYZ 0 841.89 null] +endobj +99 0 obj +<< /Border [0 0 0] +/Dest (_introduction) +/Subtype /Link +/Rect [48.24 758.873 125.757 771.776] +/Type /Annot +>> +endobj +100 0 obj +<< /Border [0 0 0] +/Dest (_introduction) +/Subtype /Link +/Rect [542.75 758.873 547.04 771.776] +/Type /Annot +>> +endobj +101 0 obj +<< /Border [0 0 0] +/Dest (_release_content) +/Subtype /Link +/Rect [48.24 741.57 150.155 754.473] +/Type /Annot +>> +endobj +102 0 obj +<< /Border [0 0 0] +/Dest (_release_content) +/Subtype /Link +/Rect [542.75 741.57 547.04 754.473] +/Type /Annot +>> +endobj +103 0 obj +<< /Border [0 0 0] +/Dest (what_is_changed) +/Subtype /Link +/Rect [48.24 724.267 156.832 737.17] +/Type /Annot +>> +endobj +104 0 obj +<< /Border [0 0 0] +/Dest (what_is_changed) +/Subtype /Link +/Rect [542.75 724.267 547.04 737.17] +/Type /Annot +>> +endobj +105 0 obj +<< /Border [0 0 0] +/Dest (_oiorasp_version_3_0_0) +/Subtype /Link +/Rect [60.24 706.964 200.732 719.867] +/Type /Annot +>> +endobj +106 0 obj +<< /Border [0 0 0] +/Dest (_oiorasp_version_3_0_0) +/Subtype /Link +/Rect [542.75 706.964 547.04 719.867] +/Type /Annot +>> +endobj +107 0 obj +<< /Border [0 0 0] +/Dest (_new_features) +/Subtype /Link +/Rect [72.24 689.661 172.054 702.564] +/Type /Annot +>> +endobj +108 0 obj +<< /Border [0 0 0] +/Dest (_new_features) +/Subtype /Link +/Rect [542.75 689.661 547.04 702.564] +/Type /Annot +>> +endobj +109 0 obj +<< /Border [0 0 0] +/Dest (_fixes) +/Subtype /Link +/Rect [72.24 672.358 129.528 685.261] +/Type /Annot +>> +endobj +110 0 obj +<< /Border [0 0 0] +/Dest (_fixes) +/Subtype /Link +/Rect [540.627 672.358 547.04 685.261] +/Type /Annot +>> +endobj +111 0 obj +<< /Border [0 0 0] +/Dest (_changes) +/Subtype /Link +/Rect [72.24 655.055 147.271 667.958] +/Type /Annot +>> +endobj +112 0 obj +<< /Border [0 0 0] +/Dest (_changes) +/Subtype /Link +/Rect [540.627 655.055 547.04 667.958] +/Type /Annot +>> +endobj +113 0 obj +<< /Border [0 0 0] +/Dest (_removals) +/Subtype /Link +/Rect [72.24 637.752 154.047 650.655] +/Type /Annot +>> +endobj +114 0 obj +<< /Border [0 0 0] +/Dest (_removals) +/Subtype /Link +/Rect [540.627 637.752 547.04 650.655] +/Type /Annot +>> +endobj +115 0 obj +<< /Border [0 0 0] +/Dest (_how_to_upgrade) +/Subtype /Link +/Rect [72.24 620.449 187.949 633.352] +/Type /Annot +>> +endobj +116 0 obj +<< /Border [0 0 0] +/Dest (_how_to_upgrade) +/Subtype /Link +/Rect [540.627 620.449 547.04 633.352] +/Type /Annot +>> +endobj +117 0 obj +<< /Border [0 0 0] +/Dest (_configuration) +/Subtype /Link +/Rect [72.24 603.146 174.661 616.049] +/Type /Annot +>> +endobj +118 0 obj +<< /Border [0 0 0] +/Dest (_configuration) +/Subtype /Link +/Rect [540.627 603.146 547.04 616.049] +/Type /Annot +>> +endobj +119 0 obj +<< /Border [0 0 0] +/Dest (rasp_2_1_0) +/Subtype /Link +/Rect [60.24 585.843 180.591 598.746] +/Type /Annot +>> +endobj +120 0 obj +<< /Border [0 0 0] +/Dest (rasp_2_1_0) +/Subtype /Link +/Rect [540.264 585.843 547.04 598.746] +/Type /Annot +>> +endobj +121 0 obj +<< /Border [0 0 0] +/Dest (_new_features_2) +/Subtype /Link +/Rect [72.24 568.54 174.177 581.443] +/Type /Annot +>> +endobj +122 0 obj +<< /Border [0 0 0] +/Dest (_new_features_2) +/Subtype /Link +/Rect [540.264 568.54 547.04 581.443] +/Type /Annot +>> +endobj +123 0 obj +<< /Border [0 0 0] +/Dest (_fixes_2) +/Subtype /Link +/Rect [72.24 551.237 131.651 564.14] +/Type /Annot +>> +endobj +124 0 obj +<< /Border [0 0 0] +/Dest (_fixes_2) +/Subtype /Link +/Rect [540.253 551.237 547.04 564.14] +/Type /Annot +>> +endobj +125 0 obj +<< /Border [0 0 0] +/Dest (_changes_2) +/Subtype /Link +/Rect [72.24 533.934 149.394 546.837] +/Type /Annot +>> +endobj +126 0 obj +<< /Border [0 0 0] +/Dest (_changes_2) +/Subtype /Link +/Rect [540.253 533.934 547.04 546.837] +/Type /Annot +>> +endobj +127 0 obj +<< /Border [0 0 0] +/Dest (_removals_2) +/Subtype /Link +/Rect [72.24 516.631 156.17 529.534] +/Type /Annot +>> +endobj +128 0 obj +<< /Border [0 0 0] +/Dest (_removals_2) +/Subtype /Link +/Rect [540.253 516.631 547.04 529.534] +/Type /Annot +>> +endobj +129 0 obj +<< /Border [0 0 0] +/Dest (_how_to_upgrade_2) +/Subtype /Link +/Rect [72.24 499.328 190.072 512.231] +/Type /Annot +>> +endobj +130 0 obj +<< /Border [0 0 0] +/Dest (_how_to_upgrade_2) +/Subtype /Link +/Rect [540.253 499.328 547.04 512.231] +/Type /Annot +>> +endobj +131 0 obj +<< /Border [0 0 0] +/Dest (_nhr_uddi_lookup_urls) +/Subtype /Link +/Rect [72.24 482.025 232.675 494.928] +/Type /Annot +>> +endobj +132 0 obj +<< /Border [0 0 0] +/Dest (_nhr_uddi_lookup_urls) +/Subtype /Link +/Rect [535.908 482.025 547.04 494.928] +/Type /Annot +>> +endobj +133 0 obj +<< /Border [0 0 0] +/Dest (_raspconfiguration_xml_update) +/Subtype /Link +/Rect [72.24 464.722 266.654 477.625] +/Type /Annot +>> +endobj +134 0 obj +<< /Border [0 0 0] +/Dest (_raspconfiguration_xml_update) +/Subtype /Link +/Rect [538.46 464.722 547.04 477.625] +/Type /Annot +>> +endobj +135 0 obj +<< /Border [0 0 0] +/Dest (_system_requirements) +/Subtype /Link +/Rect [48.24 447.419 180.504 460.322] +/Type /Annot +>> +endobj +136 0 obj +<< /Border [0 0 0] +/Dest (_system_requirements) +/Subtype /Link +/Rect [536.337 447.419 547.04 460.322] +/Type /Annot +>> +endobj +137 0 obj +<< /Border [0 0 0] +/Dest (_installation) +/Subtype /Link +/Rect [48.24 430.116 121.918 443.019] +/Type /Annot +>> +endobj +138 0 obj +<< /Border [0 0 0] +/Dest (_installation) +/Subtype /Link +/Rect [536.337 430.116 547.04 443.019] +/Type /Annot +>> +endobj +139 0 obj +<< /Border [0 0 0] +/Dest (_compatibility) +/Subtype /Link +/Rect [48.24 412.813 133.292 425.716] +/Type /Annot +>> +endobj +140 0 obj +<< /Border [0 0 0] +/Dest (_compatibility) +/Subtype /Link +/Rect [536.337 412.813 547.04 425.716] +/Type /Annot +>> +endobj +141 0 obj +<< /Border [0 0 0] +/Dest (_known_issues) +/Subtype /Link +/Rect [48.24 395.51 134.92 408.413] +/Type /Annot +>> +endobj +142 0 obj +<< /Border [0 0 0] +/Dest (_known_issues) +/Subtype /Link +/Rect [536.337 395.51 547.04 408.413] +/Type /Annot +>> +endobj +143 0 obj +<< /Border [0 0 0] +/Dest (_licenses) +/Subtype /Link +/Rect [48.24 378.207 108.454 391.11] +/Type /Annot +>> +endobj +144 0 obj +<< /Border [0 0 0] +/Dest (_licenses) +/Subtype /Link +/Rect [536.029 378.207 547.04 391.11] +/Type /Annot +>> +endobj +145 0 obj +<< /Type /Outlines +/Count 25 +/First 146 0 R +/Last 170 0 R +>> +endobj +146 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 147 0 R +/Dest [7 0 R /XYZ 0 841.89 null] +>> +endobj +147 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 148 0 R +/Prev 146 0 R +/Dest [13 0 R /XYZ 0 841.89 null] +>> +endobj +148 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 149 0 R +/Prev 147 0 R +/Dest [15 0 R /XYZ 0 841.89 null] +>> +endobj +149 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 150 0 R +/Prev 148 0 R +/Dest [15 0 R /XYZ 0 624.655 null] +>> +endobj +150 0 obj +<< /Title +/Parent 145 0 R +/Count 15 +/First 151 0 R +/Last 158 0 R +/Next 166 0 R +/Prev 149 0 R +/Dest [15 0 R /XYZ 0 313.5223 null] +>> +endobj +151 0 obj +<< /Title +/Parent 150 0 R +/Count 6 +/First 152 0 R +/Last 157 0 R +/Next 158 0 R +/Dest [15 0 R /XYZ 0 202.185 null] +>> +endobj +152 0 obj +<< /Title +/Parent 151 0 R +/Count 0 +/Next 153 0 R +/Dest [15 0 R /XYZ 0 155.79 null] +>> +endobj +153 0 obj +<< /Title +/Parent 151 0 R +/Count 0 +/Next 154 0 R +/Prev 152 0 R +/Dest [31 0 R /XYZ 0 841.89 null] +>> +endobj +154 0 obj +<< /Title +/Parent 151 0 R +/Count 0 +/Next 155 0 R +/Prev 153 0 R +/Dest [31 0 R /XYZ 0 754.5396 null] +>> +endobj +155 0 obj +<< /Title +/Parent 151 0 R +/Count 0 +/Next 156 0 R +/Prev 154 0 R +/Dest [31 0 R /XYZ 0 396.7702 null] +>> +endobj +156 0 obj +<< /Title +/Parent 151 0 R +/Count 0 +/Next 157 0 R +/Prev 155 0 R +/Dest [31 0 R /XYZ 0 193.6244 null] +>> +endobj +157 0 obj +<< /Title +/Parent 151 0 R +/Count 0 +/Prev 156 0 R +/Dest [41 0 R /XYZ 0 429.6616 null] +>> +endobj +158 0 obj +<< /Title +/Parent 150 0 R +/Count 7 +/First 159 0 R +/Last 165 0 R +/Prev 151 0 R +/Dest [65 0 R /XYZ 0 245.1531 null] +>> +endobj +159 0 obj +<< /Title +/Parent 158 0 R +/Count 0 +/Next 160 0 R +/Dest [65 0 R /XYZ 0 157.8093 null] +>> +endobj +160 0 obj +<< /Title +/Parent 158 0 R +/Count 0 +/Next 161 0 R +/Prev 159 0 R +/Dest [73 0 R /XYZ 0 674.569 null] +>> +endobj +161 0 obj +<< /Title +/Parent 158 0 R +/Count 0 +/Next 162 0 R +/Prev 160 0 R +/Dest [73 0 R /XYZ 0 535.3209 null] +>> +endobj +162 0 obj +<< /Title +/Parent 158 0 R +/Count 0 +/Next 163 0 R +/Prev 161 0 R +/Dest [73 0 R /XYZ 0 367.1239 null] +>> +endobj +163 0 obj +<< /Title +/Parent 158 0 R +/Count 0 +/Next 164 0 R +/Prev 162 0 R +/Dest [73 0 R /XYZ 0 160.4524 null] +>> +endobj +164 0 obj +<< /Title +/Parent 158 0 R +/Count 0 +/Next 165 0 R +/Prev 163 0 R +/Dest [81 0 R /XYZ 0 320.5037 null] +>> +endobj +165 0 obj +<< /Title +/Parent 158 0 R +/Count 0 +/Prev 164 0 R +/Dest [86 0 R /XYZ 0 535.2406 null] +>> +endobj +166 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 167 0 R +/Prev 150 0 R +/Dest [91 0 R /XYZ 0 434.5867 null] +>> +endobj +167 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 168 0 R +/Prev 166 0 R +/Dest [91 0 R /XYZ 0 352.1983 null] +>> +endobj +168 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 169 0 R +/Prev 167 0 R +/Dest [91 0 R /XYZ 0 269.8099 null] +>> +endobj +169 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Next 170 0 R +/Prev 168 0 R +/Dest [91 0 R /XYZ 0 172.947 null] +>> +endobj +170 0 obj +<< /Title +/Parent 145 0 R +/Count 0 +/Prev 169 0 R +/Dest [97 0 R /XYZ 0 841.89 null] +>> +endobj +171 0 obj +<< /Nums [0 << /P (i) +>> 1 << /P (ii) +>> 2 << /P (1) +>> 3 << /P (2) +>> 4 << /P (3) +>> 5 << /P (4) +>> 6 << /P (5) +>> 7 << /P (6) +>> 8 << /P (7) +>> 9 << /P (8) +>> 10 << /P (9) +>> 11 << /P (10) +>> 12 << /P (11) +>> 13 << /P (12) +>> 14 << /P (13) +>> 15 << /P (14) +>>] +>> +endobj +172 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 162 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 54.0 m +547.04 54.0 l +S +Q +Q + +endstream +endobj +173 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 162 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 54.0 m +547.04 54.0 l +S +Q +Q + +endstream +endobj +174 0 obj +<< /Length1 7876 +/Length 4366 +/Filter [/FlateDecode] +>> +stream +xXml[y>^,DJ6RWe%òbӤHI˲iIcK,ˎI4vɏvh~E6CftY1dŐl[6`Űm ݊eH{sdّ.F<{8c1'Lq6ycV1^}b& cN(z DN_jW>0 rEi^|5< qkϾ*iݼ}!(\ZY'LrG_/vcb +q̐: \*}NO]4h!_f8׼w'yOg[~?5vDȭ* ;T_,ňu+U5>ӋO];ͥňbH4>VwуLll\N +#T|{<#k5ءtnD&Mc^?}Z>3lzzvkGĉy.9zBpDL9TU9ғ2( +Em很 !a&A /u^yEyov𹾿 R%^u$ڪ8s"Q GMU|ՠ|M.8;lUH]Je$ {ea,>O*wᶢ .j(K+FmMlG(S2i&Scd +Pbc\T璁5*GmƢWw>'621É+M{Xyxr`3=TS}S@eMd_wGo +6l6FG{X9SXDu=Wu\Qtr9vgEh$A'E1G6 & )I'pCsA`2T6 QFIfG@/TwuwMpAՋuc}}>Jmz18TumMi87Şhˎh5m.Tw#Nu;U5t?K#lp}}}cHsYmv(Nu+ZԬB$,)?mK5Ixj×Ӌ?_7G~{wO\L;FՒsz53j4˿q^l}Up~]~nԮ=>? ]7Jt>vAW2+{^͜>l/} T~6ީaYazW @UVXXoJyj춝==}hP"1ixφ]Ç[B ;e۪:~S PpӛKQur4t! Pm xj'Ѱ8 wovB.w#ͭ TWq>䓓7 S2Ji,hD]A&z?iY!kL*W F/gV ފog/m(n)}5,k|u+-}wJoVv00'.0Yn*gXب:?dJZ՟-jKݗ$|J5Lp +bX{buřCyIQ7V0"eU,cRg"@#MmM־杧Zff -^T#QU'2`!O,>p˴mdx\ݬ?i2ظ~\Wl\ɶI{Yz>Ug,{ͱ v/oWg2q`B=^KLmFthPԅg$WN{B] +B[IM6,KĠJPcM[Nv,,"|l$7DŽja35N#)4# AZ i}#ƍGi}2Mc&Vb[HPLո)bQCnF Q1~!Eo[mi]E2Mln-9?C#+rhMSjnM2QkB,|0zJOn?`H=1ibH FX jp€1Α;ݡs-<܃>9DÒaIQN- ][mwqpej]$n)o)uC>IՍVmFL *LBM'A{A HɝRo !Ih Wp$R gUʗP3]JmѐaŶfp*{AP5qU>x!5x)1dɋi[aZd77\+& 0J4 DC`̼^  .ѣ-n倬Y9_ ?gA"'m,H7,H/6)6\Z~Ecy +SM 0Cywca铥n4i{饏ik}>߾}\C{|`G> +endobj +176 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +177 0 obj +[276 587 587 587 587 587 587 587 587 587 587 587 587 385 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 749 587 587 587 587 587 587 587 319 527 587 587 587 810 842 726 587 731 629 587 587 587 587 587 587 587 587 587 587 587 587 587 607 587 587 587 622 587 587 587 587 587 587 289 587 587 645 587 587 587 515 424 587 578 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587] +endobj +178 0 obj +<< /Length1 19068 +/Length 11640 +/Filter [/FlateDecode] +>> +stream +x{ xcWy9^jvٖW-ɲdI-oZ,y푷55g!%eBYJB2%<&P +-ɓ' %@}m(~)}Jx!ZF~9W23^9v;#(dC+'Kg^xZ6[yW +O޿¿/?ygO <}ZIx B$N.!p +=s]> co3ϝ?ogJ'׾!B#0j}y9svLgp3N^}YV.wtƟ#B7~0x +JlQj75:mw`W(ɨQo_`ph8JgFѱ,u,إ?pW |~<8$Z0"B;cq{xxh "38 j_y:otuUO ( &ēT0ƅ)&+ܴZЪ2\ck0u[-fE{j4f?}hs9r㰔`2 RM|RXJJ S a5)LdMۓNGrNSLi4 +σEitZZV)2X3h'Lg UW=5rq\;H%|W( H}u.D4&$ʠ @}:9;rV(7i0PRT⒠"``#z#:ht )A{T:P(!AX3_,vY2m?e:;l7QM28<#RQQrjtĢ7??2Y9zGá1w,n675{f/~ :t㳝pSijq{bMް|p3S S*)Pl鶶tM}7?~JfpWd0>DSn ,.-D /=j FY/ըQ+eQqA@gxM[,`4V&xq/\I7qܹ''>]:\.,VL&/Lgoˏ?)V)FϞmG#Ilt'`r>a"\8G +w9ݸ)hH=~[3_3E>QCd*&\$)[ͱ}-E¾>[lhP3nVV,Dm% (IN>/< z3Hp"ˍso.5z"Sfl;lLpwWnO9qǛi``" +S˰Qh Es8K3eTutp]f(E1QGvM]t$nؼG?f f NML4\)reU/ZOG ħY Pi +KkP$M]5Q;S͜1E&#bŅWYŏ5}s0_ZH?H Yʑ\y7_?6 7J&|X ^pSwS,ɘ8E~ވmw *%j  1FEWs; lHFsYOn4=U"Jd,'UΈ+1>]{i+]3Kk#rh(٭v[P2#WJ"#3R( Fȗ0QJRyN Uer6I@k'c.oF 4Hx'~73/O9h~6rH:hw,&M -#A0Z2Yb$lG8 ka;ϒH]EqoO.uE!~tpFא7ɹW'8E{@їh\/ ҇. c:u|uw{mAd^]*c+;CaC"Z7 +aV {M4 c?Μ>T*F JAԳ*O伢cNK#Ƈ1Zx4·K?9P>?Q8Q+K(` Xs H xX^)[ V()Rf_V(1EEq[/|lvGg '^_'-ռ yVAs*!sx@1t|Q\:sgu$}Oxv_m8^!9>:L{xJ9+䒋 $ 8ƣ/wu+?OҥWi]kRdd4 ATׂdMHmAcCFU[ߨ܃}owB1,ws'MI=9{i T2/Ŧ:I{du2b0@?t.H*#.*:2)|BT$?vaJ'ś`3 Ť6ʂ/ +))z!A~ԽfG;Fc-axF%|bT~KmSwpC#սqvT*V`\q%"/IGK7*)6$Jg UH'I4~sl-A ;Cl5\AGǴAD&zZ+1 #WriZXhr7o;1Nc! fDzu sγ3Bo4Gm\F-Wʕ +2ǂÔw#rk |t߰},]3Nke|f=l=Z3VyYd`4ŽZf9JO!$A+&/ + RYHirM&d29 ȿN*wGwDŜO^{L=YY9G﩮wyMWҩ DCq c\[ n(h= aErv'Wilϼe%Zߢ/>S`5VuN;9I#=+==+䊴%߼)ߚ/թYcAaF2bd6j-: lifgp)ZBfw%HƦ/ W* OB^dҰ@CW*#&M:+/&K KK]Vr^f*. Ak7ClzlV:=1o궹[TN+nJXbxcW{Xo/yDd6LXl\S'Y1C_AAQ} 8rW.ؓm,`!݈TL6У/dИf9;SnGa)L"5 f ۗyx" vN`AN<8t|hxnbnvk;jiӽTx]ٙ C{M-M9עZEv^=Ĩ@!u$( +螄qRvy0a蟋N @+\Yt6Ѕ>tYn4h7zՐ$r7JJIb#H]_*RJA7bb:>4NU j!6%Flpr~VL̝Lts +\87\2w Җ6'T-=4q05!<ѶY=Հݤs +]&GO gs+QB*֎=}<ZM{T% MQشm]6wCjCkI5CtN; Zh5K=H{ 4C*3fM$슇BMtӶƠ֢i2Cs[*DQBGdcCƜg)kI14Nީ**XI$S+'ᅻS`tܵ'J(BQҀ#AbȖMO':|&u:ܮ&R)= J6j>^n3(4dndnkBcaאs-N\ںbpG'w{?, F)v` EK +^7zTOx[m~.ښSfw?Dz(MlBu@~[ATrh h +۫jT͒FzbѨk 7:;Sk.6e k X=qk&Ozb܎'t-yw!Q] %-!l{IWӻE4M 6^ZVaٝlʵF ѱkk1&F_KeK0xzSG1kk:nBK1}*yܭby@T>멖PÊuƧ%NRf5AR7Z<˵?49AHC q%Jp|[qlnJ!ȸj߈h=IqCynѠ4ScI^l0̾j'Hw~ ~m: u-i0ޑDO'*? M}\;PL/`O7nbR =6dk{潑9Alu{غa&aШtP5|`QsMYl`po=hf$q[JdwgO;8vqI+YQqP{,dm**k U6:<As31HEfk簎D.IJ gV3n$XjJ8fQrK %}, "Dz"(].Xj0yJvIݙ̗ut7QhOi뚘ޯEJhZ%k`omF*Vqܤ {R}E jBI|JڬkŤ:{ͱky`JmIh[:uc}6 qwV~4o}hQ/PO`O%]vYbLć}] +frpXbvϥaцatܙާ NhE;F:@,ZnE.!"=2h2L}$zDw]vz^(pݬ^[d>gd+O(.!c yh <~VTxr`T礒rm[g ۀ UR.CVljUˮArBh7rƢ5c3u$Pj&;;229'0hשl* +/쿂_r!tx =C(7I)( s: ~BC,lwV~_h({ fsX;>NQQc{ef3^/DA4EWWGUʗe8k*/W GE&f%bܢWBt2qvĀMg!<,n;m#ZrРOۯb'Ps׿EZ Jba(fcN KPǃ8"_/{ .C<4 R*q >RgG7B)PL1l2X V==e`H]~ 6bg9#X=ۛhP.xsFtn,>|s};x%dl"s>d>EsdX4 |n΍OEY4%m:L1F~^sHx?%IOˋSjR%mDFl"fŤU^ܫBk-C?gxd6t:vҧϤ"]放o&>b7O3iUR;C ?Lkb׀wpьi&vmrnTY*Ѭ5N4878QA9_Q@Vt#BpA֯͢8>OgA qhvG_#ρ}[#C_~6+d;R~MNvjgQJ/^wZ#qRl!k/Pgџsq\/h#_OBMN UNrp?c+"W!yRs_qQYR*sO+_Q)U Y;U_VRRߥ\H&%{k}U]s]_g +CpE}w_2weEser9K caۇl=g˨Fxz4͒[Bo3@1rc#DN("?YACdHh@Y܎`(|H raHBI&\ +#cIj#^@@0y5q_@.RD ZSL4HΡ$p )3ނ?XAw"iv1pCa +<-p#N, "ds5 ?qwK(E*[~fa19|`;_awѧ  ,~- fZѻa/A!{BE=X-y +ƁS}6Zbv!hA$@`4F"W/7,B2 -A.GH_MY ! i9Q>.R rT? +ND]cVhAM̆PxEchM<80 ; B_2eoSWI)U…S'BT]#^ƕ} ¼goz?[ pUJSyԆ5UX?t*G6jUX UXUX{Wa-vL֡("0{_摎pV!QA#gQFg,:vtv394-kp] q8TMпFgvf?:ꂿcŸ1NzpKv@][wnqfac0jA"\n,kLmDucnnpG;Wq0nig 5 + 2 PGjh[Juή^P8k&bI11R*J*BG1)1$@%]R}y*V<iy]CrU&V356z6s]3zbvl5jJcV5RKMy:i99m`sUP3OHg̩FơT gPgL?9'm~tnW;aT7?2;ei3HH'&ScC"'ݼo jW>A| Ϛuy5ϫ/iA:vюOOB#.R9_h*ԀF /mnpaVkEU2)%Yy_hd捠2 +8ha)[t8uL,۷T壎 Ke.IX؝2*QF +2,;8Pv,,e.X}3[P:S6e bΤ7\L2e@Z Ba +ӔkMNzUg&b O,Z (s%D+[3*ݱ(?_(}W۱6]ɖ%gsg/\(@S˽-6PM;G9DC’q( +K}* +Pgپ RʚJ.Q";ޞ/P%_zVV(Ƴ2tX\-*E*#eY$d +KeALb4C;r&ncuC8vNʮ]"JYsBgqq 傽4[\΢[>;Kβ(+35p+E01]*#Gx) β2-q"EYaԪW:ɦ}-QvF ^KTLNRv؁Z4"-}eBmvCOi!*vY6ɖWK#e}Pr]fNhwpg2Dz&`V.2ˎˎY6KHU֮:˦@~f)?'5ڝnb2f6Len90FO[A +/aY)°lɴк[Yo L"+SFCWcڲ"QL;eVS4C2z I i* 3}f~{ +Ze[`k=^66xz6dؐks`Cז^[JzĚ"eAm:ˁ֭[γR#u7b+et'Nt* ѫW/Gv5p 0 +~x9t 1H7(w]1ð'FoV+Rk17t,5rط!ÖxGedx'p1M޸&ߛBۑiGލ(P^{@]S,A@g7zYݎcˣ(8%~!4bl1ĬeW m:_0gn4GP,PvsI,=;dSGXLS-bn,\oۓY^2gJv˻~L H@ @"Ka|7YD61(C'aVDp[uk! dV* q4UV8JZ!eFt/)F w;I7Dj;(ԵL3Y8 #H+2K;W@1fط]®M@9u @1` QArFd>=K%֩}s ڐGeŔ'DpU;Y9 +8Ie N**7["Xmi pS| 06q'>LQ)fA܎DԠS \E(@LUZf`-sgyCCfZ3x +KmS> +endobj +180 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +181 0 obj +[341 272 403 639 500 856 500 500 350 350 572 604 266 510 266 437 622 390 583 583 611 582 608 561 616 617 296 500 604 500 604 542 958 660 653 686 721 638 610 724 734 296 566 656 598 854 734 748 610 748 665 641 604 708 648 961 601 500 500 348 500 348 500 539 500 566 627 560 627 577 393 532 619 266 266 567 306 953 619 600 627 627 408 527 419 617 520 836 533 516 534 351 500 351 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 430 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 895 600 500 500 500 500 500 500 500 500 500 870 341 500 500 500 500 500 664 500 443 443 255 255 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +182 0 obj +<< /Length1 14528 +/Length 8921 +/Filter [/FlateDecode] +>> +stream +xz t[u{c'@$|c!Fp $%lIedjlq,z三ر+ۙqSnlINNdzi2L=I3I=x:38Pw{w{߃FQROOՇOL~5PD6)d;zBP. +uW_yUĖc7pb'3 +OA#H=?I0x'U38Cd{Z\:aO7 +W;;cXmcTF XXyP[&b4Gsl"BrinA#f&%"xh8)u$:s#=GBQ{wOC`^ ^Zkɋ(29h8> gA $@Q"R@QQ#e +(ӂ@Ҁr8x(D{G'kĴNƢ"m Cc@K-XwB7 -,c#mH O;6aKS۳/FmJ}ӈjQ:RictO1O;LGj\b[4P1I K.} 0S>wx鍿$^]//=HؾR̝@gzk1Q@7Q#!PH`#Qf# 7sźz@g.W u>YN}+7TZT3Y@T.9Q4EV0J 46`t:}RC1h6z\- #oR:DEH=v&ں}վlw[Pk:M>_GCCHNذ=kWk뮮i;N&;BǢ`>VG!to1iGC]n!=LYT1f"] !Y-:-5M6t/8۲ KI +qDS25d{7| +,IY# +d3QTFC! +.H1[iut''?0pje(>MO_iyرgg|DrylPZg@>d)g}tP?}n<^,SIz؎@%X#/(* z4TB)eq^%$! W"f'@ 3rއ^'ůk!+οy'+@ >Z2Iocb ƸyP 6_lW~҉~'g"?qg|1dwÎUȗiB7|,3 N$ G*7]u`IԌ7o|CS;ɀ)D?#_ 5 *\":f7(PT9YȘaҏOOV=US˦mݦ TܞmM]j7$/ ~o<yŽ|/(=6tK?@]O T8É&_ +‡1K'cNs,dN+ IŐ0lK2D,='@g¿LX___z.o\>}4CdTIF- ݞKiQESR_7r)-VB7*W0Թ>ӹmT ++eF.h-D뎅tG7;g6vTC][k/V33g{:쥗qP`u؇X%!́rUV3Rqcn\P)fC?CEeLv-<{DV."8ux]^a}ZA[tZ1|,Fl\ꍎ- %Z%%־OUG޳3;Q 7p7HhP?V%C7Z/(䠨>˗PD!cjT ^~ Jg9MvYf]Ë?PVy;R4hlqE}rh+LnՕAo-[9m[ vǡ'.\tᙟ_gÁf[X&kQg)TWvG"Ѽ3f^5oـϒ gd&F$f8mV4=!a,E*k9>rzlJk!V4AqmVFuV9JU,m/e-pP;h0c('C8:V o77V_z;Շ'JT Kx+jȝq1fDf8o0aO?+_>͙𾑞~}=/|-@ +[N/?ҕG􉥕'Nw^#1P + ʽ޼JSeöUM/ip. HVg|_f3QpcsOq M4ZHPBˮ A}T S9ǂAٖL]w]dI?}k V-V]У_-~p6y]%.(P˿n<=\N02i5pӰrA9g[._O]DT*,:\5&=Vl8SٯA"s.N㟑qC_俭ҫ|UWU?RZ %]-mSt~w/!b#coʙ6ɦTYfVh"yנvj/!+Ba2<hP Y)$h}KhJA],#Cyx +h2F~ 8C +4m9;B@kC d$D67 4^Z!&kFXm_7Ff~Ldz&P"-BJۗz tzb)y-ư2L0UybV} Ly\2/ʰewʰe 6&;S`3X-]W`U0^됎{ TPtz3)v F38@PϜBadEV?: Ijk*h>aqb^ZA'apMA[GvޕYX$h qس >`Us`UVc>{Oy> +SL~7w T:+QYc6 Vɴd:Q0ؖ*.V-Z.<]9A)+s"yEt)0,ţ0sG^+bRy 11ɭ,`5jY + hO aSRfۣ"xi}[VZ,n}+A3 +/E 6sltk !6išԟN*Z $jSĿ;N{];aiq Z{ٹ]mÁDUpLJn65b嘍Ưo`TA_@L[B])KOA30r)ͅk0k+e%0)[C2^Bd%"k"lHW3 0ՅjM(7ml>|!UpH TJeFnYt*ARq@!^x o%S1рA-y +-`U B@D6U]Аl虙, E,β% /7W6.K#5<>=?> =0neߨɸ-!r`Zٍ*e/;@/ +fAð#kحWH8aVe} +7r@^9^#*Ӗ=65/WKYqP6%090E, o\lJ܆M @n` OۚGO[wxCEۺ mZچREzD.QK&"M:&S&#&[gI1Ї1Ly+et;O?Jmm}mmm??ڶfaֵ B 9[(5޶[1c⇨U*vH4Z 7>^I=HMOl}p#2M< )Fy +VSpqcz$S^A)vDt8 ,|;AE0 aiY -G%QY5oEz- 4d_E~j Yru%4 s {Jzs K +|x)i!б; ԥ˱]`l")U N PXVD(|Cͽz*aT/B1ؚul~HR-n2HZFbdvJ}yPtU!}^(J%QFIZrEQ*!ٙϻ!=F2;2뻿\X + rwhh6L}(*(4*ej~EEԲ +@%p(xPxCI?ӤDXjx +e:!w*R^w#RfK P[r;x؇rfONh&AdvA˓N"4@LUFf`#g])P +̅_Xh ̠B5HG0x 1h?c tO +8H"`P`PšaF@G]:1F3(tE. +btQhdܳӬ'gOz qS@YFa])“zVjUppz0XȆdͲy+:rKK+}6]qtce>omз7wܜFn⑷$<CSc\`3m+? +endstream +endobj +183 0 obj +<< /Type /FontDescriptor +/FontName /4c05ad+WorkSans-SemiBold +/FontFile2 182 0 R +/FontBBox [-216 -337 1283 1100] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +184 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +185 0 obj +[306 500 500 500 500 500 500 500 376 376 500 500 500 500 281 500 636 416 591 589 633 582 613 591 623 500 500 500 500 500 500 583 500 671 672 683 719 500 612 500 739 310 500 679 601 890 739 741 646 500 680 644 635 710 500 984 500 500 500 500 500 500 500 500 500 574 627 564 627 579 407 549 619 282 500 602 319 945 619 599 627 627 422 531 430 618 546 876 569 546 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 280 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +186 0 obj +<< /Length1 12112 +/Length 7090 +/Filter [/FlateDecode] +>> +stream +xy tcu}A B Ip+$ˀ;0\f8l4eIl8NGN:خ:9L,MdDOVe:j$>urZWj$zRñ!}}$n3x&?}SMCg |셍~q/!G龎[E{E-C8cG#߽8 /\z4M||z<8 m6|GSxi\p֩}z<LGvĎY[M!@0"mdXi^'!j3``t546h>?O(י>\!, kH QNZx]cJUb3o%/d;-Te#,X@wC$\Ƙ8N{c=?87 +_=_zu;T*?ڙx3DoԔdrްot!ǭfNRQ3V +&Oȶ6ҵD}g"(&;qaf3gؓ(|vȢ_y-͍ .gŠ/ +Fg0b-Lot`tB<@otu:R7zbPXᛇ{z[}Ò) Y/tIѥg GCΖ`$?:G.%s淠"0OqGY9? C@8ni@#.o!-zqjd%PM28JΟzgYh +ӑκ=?= +f&"q3/gOgM=}}SKg:ҝIkOZ`n-Pq'2Nȼaa%,I4gk\sd)o3/L'/WvP;/1z⑖C:eP?.rU+ D+bWNh̅{pSKe}cbl\#'|Dx@z,ˡ JY .Ľ MNd #J0[/T11R7:(>%u]G/}[#̋/3=+FOPO(7vC1iPqIEZ+F7K}Vv]#֗?CzT3eU-SB<'$N񖩏<@3#)+A/cYAp}U n 47K6 JPC6PZ-#ŌVZ<#F[cѼ!̉_:x/rqbh%wB} ( i7^r7ra@5pqyմ&RLKԒzؘ_.uGw3m?GVZ¼xry0f@+Ph@'.Xju%3rm6 _^Uˆ4c0 M .]NRI.!¨riueȕ%g֚<דt ?8]|9[78NxBW3j}hk1w'c@߀%ks GμoQ5%tec^Dzk)nL9Q7(AeոEWZMрYFlUɩK!I=tl'2Ϟ 7ɿ(? C 2M`?|:fi'E9ZidujCHp_S=x4ž*LM]NCoMht;R0hc cL)6[fp{{-7cg#-1CeHl;Ny /ZpZrZi<\gW%w1jFVzJ=AUґK>2xf'݁iBϴgBШ8 Mu4=ɼWۍj}`3=vM>GZ9mj>2dӠm6ڦ#6°?3Jw,sKwU址 d-I:X +駽^{h#Nh++kA(!;6_2ܛt;ǎ֌Bt-f2ƆZ@K NHg[ՈVķyc݈j0/2h4R0s,Z/)+;ބ|^3w#q͆iCYzv 4:3ò1yIG5mH?h!Y kMީ|5n`C?|9^'Y^PBtl&9.+^BJ?%_Dvػc/zdc{@w$inY'_d Ĕgt:i_t_@\1{Ooٰ8ї~9kwF2Cg;us'C$0X ''eVm.9; + bjǶhKqK]+ XF~ᙎ6s&1dž#=QB)z"Y~DC埢S*8.Q_nl4jI-]heፆ_Xw;!WF8PN35#!DeUŭȒjݨw<fbԴB]Ks b4-MR}0qj}} Px6JWBE@3ĥr-@W( JڽmJ;%ٽVj6!旽fT]\Nfỏ7B;X$m24y"?<?U~Gjegs/ӾwWDRhCjKn'Du#FHwoTz~'D n:Fc[-Zt"aec-b~l,:.=U|Z(~7e#節'8pm #Q0¤W7UʦD˯lFpr/;ހijU:%k ov4c'2UzPK:~n^tQq-:-3#L`"SMDpDRb<|sN7.D] +ХV*~M1#\bDN0u$ge%&n:B +t^QtŒ[:r{pJ_QUĆxdː&SdX&!Y, +LHH̆ɔlKBSɒMLjQQ6J2}:> ٳ졫MlmĆ8Iln+IB.$Aّdg*MQ9.H˺t#D9ť8R˃ŒJ6n璉9q(ʆl+"(4@ZwdcjCŜ 3؃slt[(2Si Jq|~n5 &#%a+LB*))$Z²NQ7jB, I"n}[ + 2%^]nއZb>'=yQ/zX BHIch(ZTJJ.R(3dBgX [HO<%)L(BkLJ';=SHFDR(zAL_ԨM "nd%V*NWc]#M"Ѝ:#i-yPafq",[BH*9uZH",xEQ:ek ^-C3˹9u[ңaY,n۔u{\>%bRiȡk%Kf˂dD[,&+Tʛk- Ua[0J%D'quav+%u|)rLz9'KI1-$t9tE;W6H&Tvdq%>(:zQ>:P>:Q>:P>:|t@؉1G + )b4Fv䮠܅ك11)ìRqPRѪK&]Y#Hݣ{~~J@'(O$3@I"N +lP)6) ( NQ +V@h[Bg(TY/ +Sy/ +]@2> /Q+$.chvT<<{exTTWAJAO yO*3)RAJ4QAJaAUf +GUL)sS#x^)U]UZ\Y1l_OɠߒYojGA2&TޭD#d4ӍOEJ +SHM*?1o9dK^D;#|ATG7"4 +endstream +endobj +187 0 obj +<< /Type /FontDescriptor +/FontName /02104b+WorkSans-Italic +/FontFile2 186 0 R +/FontBBox [-261 -292 1316 1100] +/Flags 68 +/StemV 0 +/ItalicAngle -13.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +188 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +189 0 obj +[336 500 500 500 500 500 500 500 342 342 500 500 500 510 500 500 500 500 500 500 500 571 589 538 500 500 500 500 500 500 500 500 500 500 500 674 706 625 500 500 719 290 500 637 500 837 719 742 500 500 637 639 592 693 500 500 500 500 500 500 500 500 500 500 500 616 500 538 616 572 385 613 600 258 500 500 303 934 600 595 616 500 388 512 402 598 493 500 519 504 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +190 0 obj +<< /Length1 5916 +/Length 4010 +/Filter [/FlateDecode] +>> +stream +xW{tWzw$[~m=ƌ<~ey,Y߲¶e#َlɖ%[n B a9ʲ!DmʶMiCYJhR7ɲ Cdl߽3&lc{ww Zxg^S|VO3,]A( +zͱJBҀFwMr぀ߛy.zOcu rCUu5`7O8gBޠٽG(EP|)} ia<=㟎}^ +{֏MSZ~ +/#GFXfU\BDepaDsf= )PBbR2.OIK*&=#3+{]E|g?0&BFVYlTrZxwccZMdWjL86\~W7G#4qDcVy+uf~1`"LSd`gvF( 3J\_Zbz|a$|_MQ` `+phΗ/D!#->(Me0ǧ= O407O N=|R8ImTߛHraWg\b8"lU U+jTf#;~-|v*e2ߵ*W4%TkPgff&IS $1ҋpAWvb`]`P7?ԽƜ3,sټw8ϡ +7_`_!~Qr@AyL $׵*&鬶v. nX<ݼk1_C_J8dL\"&ak|~,.YI0*\1iJ t?9 ̂Po5VH}e2Uя3/ԋu"=jPm$Mj5]Za(ΌlS0-U)HGmlq:vpjs8 .wb%EsGG/Fwͻ̌jɞ=8Oq۴ +TP[cTZbߣ !s%Oڣ{ypp=TEG;6;fTM.| u#x耫ZgYS31lwEmO󚹒brEږ6MSTߧ5CMbi2'^hysRS/^S#>J^ˡ9&A(i!z]ƃ@|`!#s><-mObN!)dnl*|#|s*c9+Xr $7 EfĈ{ !|l17D jC$z-`ga]fic2/0o1d)2lH[vDvF3y@&?%E~QnC/0'|Gw>ݖ΄y|>5f/ukci{L=+cnOLSP bHmqc[=15dCizcX*a;[VZctv{іd,6FOYL#ZNQ/<9^/Oŕc^n`Y,^Z>sb` +()AReD(9macvɋ:b^LrZON$jd{LǖmlIFD· GQ5jrQ68kNb~zRݵ,67P;h+馥l:&αn{O6=(E96D@!CY,Az+dQ2pM[BD:0"$q[*b]htP#nZ|9^7;hYs`> +endobj +192 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +193 0 obj +[364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 500 364 364 364 364 500 364 364 364 500 364 364 364 364 364 364 364 364 364 500 500 364 500 364 364 500 364 500 500 500 500 500 364 364 500 500 500 500 364 364 500 364 364 364 364 364 364 364 364 500 500 500 500 500 500 500 500 500 364 500 500 500 500 500 500 364 500 500 500 500 500 364 500 500 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364] +endobj +194 0 obj +<< /Length1 6080 +/Length 2990 +/Filter [/FlateDecode] +>> +stream +xXml[~\cnSMP6@'MS iZH}0[g4mBlh?nZِ m&:A^IǟŲssysDTG]׊ӅYF3,&MSOq!`L ԁ}NM/\ ._uD!8~Ӆ 9ЗG?z)LO(>+mD3;71띳?~uDxDm`mq|D!埸5`oA:F1S(p4Ͱnjlnhc~QFW>}x)^QWB1~\Gܷ \'-}Om"O Lx IFȂ;Qa^5 }t"=DD'$𘸢Nb}c/ZШf5eme, =8@GtqC6|{5'>@)k)e i8>Pwa,\M^q \oW S4G)ZN 4`@G@gh( =u΢=<ޡW[v5=q)Y34 yp1^rڱ{bex4&1k +9ĐD]b?iҭ72#q͜\8Gw3ZHIXDp9虤{󊘹?13™٩ÒH:"Ğ経a)YB1ԇ4N% +c:Tk@˲ XeSh賸T,pI*uqLCt55+ذ\rgkxS@bX +Hǔ9)hD($Qkkm;pq/^~ז֜32wϒa<zT+׾rg? <Lof]!S*AY©j!zjS7X5` 2;-po7}#il59:Pqyq)TT^µ@~|[ő께~* ԟwU +X __CȄfa G:/kP`)DȖe9)zddX>UQՑ˟cYeǔ|^NuV +gjUD.8=/eIbSdNVDjBE Eѫu@e$]V,׉"]HR?lPT!^R EA 5hQ$4(bge9/U#dK&{x,뚥VU7a]Hf{x$;|3Fc7k{Rs,659JR1GrJ! .+ȇxSed6t,L7SpْC$ֵɺA +]f z9[Bl䒑˪&+%*Pr(X6 |IlT*J-UqBn">nw!>n;ۤ-{u'-NcV;jNAyZo2JH(ͥvvAњv(wFn[ޭ=y{ ۩g!vVu@SSI{ބ^}/RDm2)nC5$' _IDKyULCn9'pEm.h{h  ؋B[F(sƘsg%܅PHh/ g{y癧#Qi +'qޓA9Ja0'`RtJ/FOhMiMk~1ƽ+ =α躗BoZAsa+==ySdOxڃL%p[Y˺_ ӟ ӿ>Y2kds޿_ ӿA_LM2A&`/n_qU(h4~=̥jBf.T։[B+Mi ?{?ڋ;aޫYWy/bp281g/o/* +endstream +endobj +195 0 obj +<< /Type /FontDescriptor +/FontName /c9d34c+WorkSans-Regular +/FontFile2 194 0 R +/FontBBox [-216 -337 1283 1100] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +196 0 obj +<< /Length 228 +/Filter [/FlateDecode] +>> +stream +x]n <"ANi.9liD!o?CNЏyx/?r4#p>،kܲAp7Z7N7Wl9SvJ1U/}p0 +endstream +endobj +197 0 obj +[341 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +198 0 obj +<< /Length1 2080 +/Length 925 +/Filter [/FlateDecode] +>> +stream +xTAoGf6YA0XMSp6 !T^ʻ`"9pҞZT\*q(+jVRi' "H\7yof0430V [;+\]ot|1A.) K8fcJ,Cy9 ۄ >aq<]s +PG=2gO ?I>C?C/4W7 nv`7yXȔjʙBј׎/`d4]_vKriihg5vk=,ŢG5[FI:=Wf B_{!`.:J{ ;ZOJXMkl OlE :Kn )FrƆn˯Zn8NniIcP3 ,Ku+tJܔJ-J,+ ۓib+Is8~:9UvI~䇠+W%?7Ƙ M0 %]^RgGKBϯvCɣx*r W;uf6E +endstream +endobj +199 0 obj +<< /Type /FontDescriptor +/FontName /5714a6+FontAwesome5Free-Solid +/FontFile2 198 0 R +/FontBBox [-39 -148 1291 900] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 875 +/Descent -125 +/CapHeight 421 +/XHeight 314 +>> +endobj +200 0 obj +<< /Length 227 +/Filter [/FlateDecode] +>> +stream +x]Mn bTM7YGM{&Ej9d0ԅ-?=ay +wJv>DG,ŒK[nu,$ӱ\h-[NO. 98}]&Ӟ (1 C/&A6<:C9m|oᖍE2qAY6$tϋJqcF=Fsٝ#3,5ExTNR~ pZ +endstream +endobj +201 0 obj +[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000] +endobj +202 0 obj +<< /Length1 3352 +/Length 2022 +/Filter [/FlateDecode] +>> +stream +xV}l[W?ىi4YC]}y]6DMԭNqBqB~kK + tʇ4 +:*&M4 !M[+ +&j@h `I85hc{;6h T(ԉH|~)`hK)~#gC`nawfM#`.nCNL{^݂P)V%q_G}hg~Cp{{]s5 lӁz S/li{? m‚6>LC_Dr}8%ux"mr6E&7._]Ȓy.}sY[^AVԱiw'mONoKFG.ԗU./^Zά\!oYyn}/m,}NA{N o(9H_ϝ/ŦƵ`/''2Y#I4SC۶{b;wc VmA~rGV_Y@NYht:On y|OH5门?U_["RS,Inү. P +Qذ[`ɷ޼DC΀'L<\9kHv)vI f\GP+88wp g崃K  -9 ]w:xl" o$-N  +>C +A s~1oTdElXhJyҺ +ሿϳ%(b +|)`"!$ C/^NLfƬTs" XĀZ*[^B?1́ށ^S(_`0(`Jt1Px҂.s?]*/=Z檔{|&2)bt1+,3Mf6_1Jtj4UF1MӹUɝXLTz*gei"ҢE t.K:RYABrF>Rv(@)1&4.e&>rpvMMƓIzt(:8YlgyjW1Vq';( @lydK#V o=y1:]*mRʙe.s礅%r- YE-$( Rr2ⶦ5%]7Rc`ey碰_,ލ$B\':z͠6'nn;|ף(q iRCh;CM"{}^a%f5=b-5_! +.γy3 'ٓ̊͏쑯g_Ativl:+[H^܅6,2s+ЍGC@uImoAݬ3<ڮ +;ljf͠\eWZy}^=5QFm6CJXMVC=TJN(2>Q+hIDzJ,ʹ,hU^q+T6ѵWj +k &|^16^*X8~{%tEԾ6VjNj|/N0C.<{BSN`ʰ c %4e~3Vj#}_;i,-bķ +endstream +endobj +203 0 obj +<< /Type /FontDescriptor +/FontName /e94940+mplus1mn-regular +/FontFile2 202 0 R +/FontBBox [0 -270 1000 1025] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 860 +/Descent -140 +/CapHeight 860 +/XHeight 0 +>> +endobj +204 0 obj +<< /Length 232 +/Filter [/FlateDecode] +>> +stream +x]P=o 7&CMNJM߃Dԁ==!=G3b͸- gX/zSnM8}- E"גw8<8l10<~pPcJEGA:]4X}OS| A4_˘hqM`aF&NI`QW̷L +vMZ{%S[E[p֨{ELEZZ-T]ˬr* +endstream +endobj +205 0 obj +[500 1000 1000 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364 364] +endobj +xref +0 206 +0000000000 65535 f +0000000015 00000 n +0000000278 00000 n +0000000482 00000 n +0000000645 00000 n +0000000696 00000 n +0000000968 00000 n +0000008638 00000 n +0000008973 00000 n +0000009723 00000 n +0000012225 00000 n +0000012403 00000 n +0000012578 00000 n +0000028710 00000 n +0000029399 00000 n +0000037592 00000 n +0000037980 00000 n +0000038024 00000 n +0000038073 00000 n +0000038117 00000 n +0000038161 00000 n +0000038337 00000 n +0000038527 00000 n +0000038720 00000 n +0000038907 00000 n +0000038952 00000 n +0000039191 00000 n +0000039429 00000 n +0000039475 00000 n +0000039520 00000 n +0000039564 00000 n +0000052744 00000 n +0000053139 00000 n +0000053183 00000 n +0000053229 00000 n +0000053403 00000 n +0000053578 00000 n +0000053753 00000 n +0000053799 00000 n +0000053845 00000 n +0000054026 00000 n +0000064042 00000 n +0000064457 00000 n +0000064651 00000 n +0000064838 00000 n +0000065040 00000 n +0000065279 00000 n +0000065517 00000 n +0000065648 00000 n +0000065820 00000 n +0000065866 00000 n +0000065912 00000 n +0000065958 00000 n +0000069377 00000 n +0000069707 00000 n +0000078105 00000 n +0000078474 00000 n +0000091101 00000 n +0000091444 00000 n +0000104077 00000 n +0000104459 00000 n +0000104555 00000 n +0000104600 00000 n +0000104646 00000 n +0000104821 00000 n +0000117593 00000 n +0000117999 00000 n +0000118043 00000 n +0000118089 00000 n +0000118279 00000 n +0000118473 00000 n +0000118519 00000 n +0000118565 00000 n +0000129692 00000 n +0000130035 00000 n +0000130080 00000 n +0000130126 00000 n +0000130522 00000 n +0000131044 00000 n +0000131090 00000 n +0000131136 00000 n +0000141169 00000 n +0000141575 00000 n +0000141766 00000 n +0000141938 00000 n +0000141984 00000 n +0000151588 00000 n +0000151957 00000 n +0000152003 00000 n +0000159197 00000 n +0000159553 00000 n +0000167495 00000 n +0000167851 00000 n +0000167897 00000 n +0000167943 00000 n +0000167989 00000 n +0000168034 00000 n +0000173501 00000 n +0000173857 00000 n +0000173901 00000 n +0000174027 00000 n +0000174154 00000 n +0000174283 00000 n +0000174412 00000 n +0000174540 00000 n +0000174668 00000 n +0000174804 00000 n +0000174940 00000 n +0000175067 00000 n +0000175194 00000 n +0000175314 00000 n +0000175435 00000 n +0000175557 00000 n +0000175680 00000 n +0000175803 00000 n +0000175927 00000 n +0000176056 00000 n +0000176186 00000 n +0000176314 00000 n +0000176443 00000 n +0000176567 00000 n +0000176692 00000 n +0000176820 00000 n +0000176949 00000 n +0000177070 00000 n +0000177192 00000 n +0000177316 00000 n +0000177441 00000 n +0000177565 00000 n +0000177691 00000 n +0000177822 00000 n +0000177954 00000 n +0000178089 00000 n +0000178225 00000 n +0000178368 00000 n +0000178511 00000 n +0000178645 00000 n +0000178780 00000 n +0000178907 00000 n +0000179035 00000 n +0000179163 00000 n +0000179292 00000 n +0000179417 00000 n +0000179544 00000 n +0000179666 00000 n +0000179789 00000 n +0000179867 00000 n +0000180088 00000 n +0000180280 00000 n +0000180464 00000 n +0000180661 00000 n +0000180893 00000 n +0000181137 00000 n +0000181323 00000 n +0000181495 00000 n +0000181677 00000 n +0000181863 00000 n +0000182073 00000 n +0000182265 00000 n +0000182498 00000 n +0000182686 00000 n +0000182859 00000 n +0000183041 00000 n +0000183227 00000 n +0000183437 00000 n +0000183675 00000 n +0000183927 00000 n +0000184141 00000 n +0000184327 00000 n +0000184517 00000 n +0000184702 00000 n +0000184856 00000 n +0000185139 00000 n +0000185410 00000 n +0000185681 00000 n +0000190138 00000 n +0000190361 00000 n +0000191724 00000 n +0000192639 00000 n +0000204372 00000 n +0000204592 00000 n +0000205955 00000 n +0000206870 00000 n +0000215883 00000 n +0000216104 00000 n +0000217467 00000 n +0000218382 00000 n +0000225564 00000 n +0000225786 00000 n +0000227149 00000 n +0000228064 00000 n +0000232165 00000 n +0000232380 00000 n +0000233743 00000 n +0000234658 00000 n +0000237739 00000 n +0000237959 00000 n +0000238263 00000 n +0000239178 00000 n +0000240193 00000 n +0000240417 00000 n +0000240720 00000 n +0000241859 00000 n +0000243972 00000 n +0000244187 00000 n +0000244495 00000 n +trailer +<< /Size 206 +/Root 2 0 R +/Info 1 0 R +>> +startxref +245412 +%%EOF diff --git a/dk.gov.oiosi.library/released/OIORASP_Java_Tutorials.pdf b/dk.gov.oiosi.library/released/OIORASP_Java_Tutorials.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4073ef5a6a3ba97ee2911eadb82d733ba3d748f5 --- /dev/null +++ b/dk.gov.oiosi.library/released/OIORASP_Java_Tutorials.pdf @@ -0,0 +1,4068 @@ +%PDF-1.4 +% +1 0 obj +<< /Title (OIORASP Java - Tutorials) +/Author (Danish Business Authority) +/Creator (Asciidoctor PDF 1.5.3, based on Prawn 2.2.2) +/Producer (Danish Business Authority) +/ModDate (D:20210525140142+02'00') +/CreationDate (D:20210527131845+02'00') +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +/Names 17 0 R +/Outlines 60 0 R +/PageLabels 70 0 R +/PageMode /UseOutlines +/OpenAction [7 0 R /FitH 841.89] +/ViewerPreferences << /DisplayDocTitle true +>> +>> +endobj +3 0 obj +<< /Type /Pages +/Count 7 +/Kids [7 0 R 13 0 R 15 0 R 29 0 R 31 0 R 37 0 R 44 0 R] +>> +endobj +4 0 obj +<< /Length 2 +>> +stream +q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +>> +>> +endobj +6 0 obj +<< /Length 7610 +>> +stream +q +q +0.0 0.0091 m +595.28 0.0091 l +595.28 841.8809 l +0.0 841.8809 l +h +W n +/DeviceRGB cs +0.0 0.0 0.0 scn +0.99997 0.00000 0.00000 0.99997 0.00000 0.02828 cm +1.00000 0.00000 0.00000 1.00000 0.00000 -0.00000 cm +q +Q +q +0.9569 0.9608 0.9686 scn +0.0 333.8809 595.3 144.1 re +f +Q +q +0.9529 0.9608 0.9647 scn +0.0 320.5809 595.3 157.4 re +f +Q +q +q +Q +q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +295.7 377.2809 m +295.7 385.7809 306.2 389.6809 311.8 383.3809 c +312.0 383.1809 l +370.4 313.8809 l +370.4 377.2809 l +370.4 382.2809 374.4 386.3809 379.4 386.4809 c +379.6 386.4809 l +384.6 386.4809 388.7 382.4809 388.8 377.4809 c +388.8 377.2809 l +388.8 288.6809 l +388.8 280.1809 378.3 276.2809 372.7 282.5809 c +372.5 282.7809 l +314.1 352.0809 l +314.1 288.6809 l +314.1 283.6809 310.1 279.5809 305.1 279.4809 c +304.9 279.4809 l +299.9 279.4809 295.8 283.4809 295.7 288.4809 c +295.7 288.6809 l +295.7 377.2809 l +h +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +424.0 385.4809 m +483.4 385.4809 l +488.5 385.4809 492.6 381.3809 492.6 376.2809 c +492.6 371.1809 488.5 367.0809 483.4 367.0809 c +424.0 367.0809 l +418.9 367.0809 414.8 371.1809 414.8 376.2809 c +414.8 381.3809 418.9 385.4809 424.0 385.4809 c +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +424.0 341.8809 m +483.4 341.8809 l +488.5 341.8809 492.6 337.7809 492.6 332.6809 c +492.6 327.5809 488.5 323.4809 483.4 323.4809 c +424.0 323.4809 l +418.9 323.4809 414.8 327.5809 414.8 332.6809 c +414.8 337.7809 418.9 341.8809 424.0 341.8809 c +f +Q +Q +q +q +q +q +0.0 320.5809 595.3 157.4 re +Q +Q +W n +0.902 0.9137 0.9216 scn +2 j +607.0 382.6809 m +612.2 389.7809 623.4 386.1809 623.7 377.4809 c +623.7 377.1809 l +623.7 288.5809 l +623.7 283.4809 619.6 279.3809 614.5 279.3809 c +609.5 279.3809 605.4 283.3809 605.3 288.3809 c +605.3 288.5809 l +605.3 349.0809 l +578.5 312.4809 l +574.9 307.4809 567.4 307.4809 563.7 312.3809 c +563.6 312.5809 l +537.3 348.8809 l +537.3 288.6809 l +537.3 283.6809 533.3 279.5809 528.3 279.4809 c +528.1 279.4809 l +523.1 279.4809 519.0 283.4809 518.9 288.4809 c +518.9 288.6809 l +518.9 377.2809 l +518.9 386.0809 530.1 389.7809 535.4 382.8809 c +535.6 382.6809 l +571.1 333.5809 l +607.0 382.6809 l +h +f +Q +Q +Q +q +q +Q +q +Q +q +q +q +q +52.6 493.9809 138.9 15.0 re +Q +Q +W n +0.0 0.5176 0.4745 scn +2 j +78.6 508.6809 m +79.3 508.6809 79.9 508.0809 79.9 507.3809 c +79.9 506.6809 79.3 506.0809 78.6 506.0809 c +70.4 506.0809 l +69.7 506.0809 69.1 506.6809 69.1 507.3809 c +69.1 508.0809 69.7 508.6809 70.4 508.6809 c +78.6 508.6809 l +h +78.6 502.6809 m +79.3 502.6809 79.9 502.0809 79.9 501.3809 c +79.9 500.6809 79.3 500.0809 78.6 500.0809 c +70.4 500.0809 l +69.7 500.0809 69.1 500.6809 69.1 501.3809 c +69.1 502.0809 69.7 502.6809 70.4 502.6809 c +78.6 502.6809 l +h +78.6 496.5809 m +79.3 496.5809 79.9 495.9809 79.9 495.2809 c +79.9 494.5809 79.3 493.9809 78.6 493.9809 c +70.4 493.9809 l +69.7 493.9809 69.1 494.5809 69.1 495.2809 c +69.1 495.9809 69.7 496.5809 70.4 496.5809 c +78.6 496.5809 l +h +98.1 507.5809 m +98.1 495.1809 l +98.1 494.4809 97.5 493.8809 96.8 493.8809 c +96.1 493.8809 95.5 494.4809 95.5 495.0809 c +95.5 495.0809 l +95.5 503.4809 l +91.8 498.3809 l +91.3 497.6809 90.3 497.6809 89.7 498.3809 c +89.7 498.3809 l +86.1 503.3809 l +86.1 494.9809 l +86.1 494.2809 85.5 493.6809 84.9 493.6809 c +84.9 493.6809 l +84.2 493.6809 83.6 494.2809 83.6 494.8809 c +83.6 494.8809 l +83.6 507.1809 l +83.6 508.3809 85.2 508.8809 85.9 507.9809 c +85.9 507.9809 l +90.8 501.1809 l +95.8 507.9809 l +96.5 509.2809 98.1 508.7809 98.1 507.5809 c +54.8 508.3809 m +54.8 508.3809 l +62.9 498.6809 l +62.9 507.4809 l +62.9 508.1809 63.5 508.7809 64.1 508.7809 c +64.1 508.7809 l +64.8 508.7809 65.4 508.1809 65.4 507.5809 c +65.4 507.5809 l +65.4 495.2809 l +65.4 494.0809 63.9 493.5809 63.2 494.3809 c +63.2 494.3809 l +55.1 503.9809 l +55.1 495.1809 l +55.1 494.4809 54.5 493.8809 53.9 493.8809 c +53.9 493.8809 l +53.2 493.8809 52.6 494.4809 52.6 495.0809 c +52.6 507.4809 l +52.6 508.7809 54.1 509.2809 54.8 508.3809 c +f +Q +Q +q +q +q +q +52.6 493.9809 138.9 15.0 re +Q +Q +W n +0.0863 0.2431 0.3176 scn +2 j +190.0 494.0809 m +190.4 494.0809 190.8 494.3809 190.8 494.8809 c +190.8 495.2809 190.5 495.6809 190.0 495.6809 c +182.4 495.6809 l +182.4 508.0809 l +182.4 508.5809 182.0 508.8809 181.6 508.8809 c +181.2 508.8809 180.8 508.4809 180.8 508.0809 c +180.8 494.8809 l +180.8 494.3809 181.2 494.0809 181.6 494.0809 c +190.0 494.0809 l +h +176.7 494.0809 m +177.1 494.0809 177.5 494.3809 177.5 494.8809 c +177.5 495.2809 177.2 495.6809 176.7 495.6809 c +168.3 495.6809 l +168.3 500.8809 l +175.7 500.8809 l +176.1 500.8809 176.5 501.1809 176.5 501.6809 c +176.5 502.0809 176.2 502.4809 175.7 502.4809 c +168.3 502.4809 l +168.3 507.4809 l +176.6 507.4809 l +177.0 507.4809 177.4 507.7809 177.4 508.2809 c +177.4 508.6809 177.1 509.0809 176.6 509.0809 c +167.5 509.0809 l +167.1 509.0809 166.7 508.6809 166.7 508.2809 c +166.7 495.2809 l +166.7 494.7809 167.1 494.4809 167.5 494.4809 c +176.7 494.4809 l +h +155.7 507.2809 m +152.3 507.2809 l +152.3 495.6809 l +155.7 495.6809 l +159.4 495.6809 161.8 498.1809 161.8 501.4809 c +161.8 501.4809 l +161.8 504.6809 159.4 507.2809 155.7 507.2809 c +155.7 508.7809 m +160.3 508.7809 163.5 505.5809 163.5 501.4809 c +163.5 501.4809 l +163.5 497.3809 160.3 494.0809 155.7 494.0809 c +151.4 494.0809 l +151.0 494.0809 150.6 494.4809 150.6 494.8809 c +150.6 507.8809 l +150.6 508.3809 151.0 508.6809 151.4 508.6809 c +155.7 508.6809 l +h +135.2 493.9809 m +135.7 493.9809 136.0 494.3809 136.0 494.7809 c +136.0 506.1809 l +145.1 494.4809 l +145.4 494.1809 145.6 493.9809 146.0 493.9809 c +146.1 493.9809 l +146.5 493.9809 146.9 494.2809 146.9 494.7809 c +146.9 508.0809 l +146.9 508.4809 146.5 508.8809 146.1 508.8809 c +145.6 508.8809 145.3 508.4809 145.3 508.0809 c +145.3 496.9809 l +136.4 508.3809 l +136.2 508.6809 135.9 508.8809 135.6 508.8809 c +135.4 508.8809 l +135.0 508.8809 134.6 508.4809 134.6 508.0809 c +134.6 494.8809 l +134.4 494.2809 134.8 493.9809 135.2 493.9809 c +124.4 506.9809 m +121.0 499.4809 l +127.8 499.4809 l +124.4 506.9809 l +h +124.5 508.9809 m +125.0 508.9809 125.3 508.6809 125.5 508.2809 c +131.5 495.2809 l +131.6 495.1809 131.6 494.9809 131.6 494.8809 c +131.6 494.4809 131.2 494.0809 130.8 494.0809 c +130.4 494.0809 130.1 494.3809 130.0 494.6809 c +128.5 498.0809 l +120.4 498.0809 l +118.9 494.6809 l +118.8 494.2809 118.5 494.0809 118.1 494.0809 c +117.7 494.0809 117.3 494.3809 117.3 494.8809 c +117.3 494.9809 117.3 495.1809 117.4 495.2809 c +123.4 508.3809 l +123.5 508.6809 123.8 508.9809 124.5 508.9809 c +124.5 508.9809 l +h +113.5 493.9809 m +113.9 493.9809 114.3 494.3809 114.3 494.7809 c +114.3 507.9809 l +114.3 508.4809 113.9 508.7809 113.5 508.7809 c +113.0 508.7809 112.7 508.3809 112.7 507.9809 c +112.7 502.1809 l +104.2 502.1809 l +104.2 507.9809 l +104.2 508.4809 103.8 508.7809 103.4 508.7809 c +103.0 508.7809 102.6 508.3809 102.6 507.9809 c +102.6 494.7809 l +102.6 494.2809 103.0 493.9809 103.4 493.9809 c +103.9 493.9809 104.2 494.3809 104.2 494.7809 c +104.2 500.6809 l +112.7 500.6809 l +112.7 494.7809 l +112.6 494.2809 113.0 493.9809 113.5 493.9809 c +f +Q +Q +Q +Q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN + +q +149.64 0.0 0.0 51.0136 48.24 754.8764 cm +/I1 Do +Q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN + +BT +48.24 425.694 Td +/F3.0 18 Tf +<4f494f52415350204a617661202d205475746f7269616c73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0941 0.0941 0.0941 scn +0.0941 0.0941 0.0941 SCN + +BT +48.24 395.9324 Td +/F2.0 13 Tf +<44616e69736820427573696e65737320417574686f72697479> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 367.7041 Td +/F2.0 11 Tf +<56657273696f6e20332e302e302e524331> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q + +endstream +endobj +7 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 6 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F3.0 10 0 R +/F2.0 11 0 R +>> +/XObject << /I1 8 0 R +>> +>> +>> +endobj +8 0 obj +<< /Type /XObject +/Subtype /Image +/Height 90 +/Width 264 +/BitsPerComponent 8 +/ColorSpace /DeviceRGB +/SMask 9 0 R +/Length 489 +/Filter [/FlateDecode] +/DecodeParms [<< /Predictor 15 +/Colors 3 +/BitsPerComponent 8 +/Columns 264 +>>] +>> +stream +xKN@q&R)Ȳ38043N\{>޿]GyuV^GH+c{״4TX13lL={BV @0 0|os\} F?K^FS̮>!'tR`TVi]%/+ٕVͱUXQ魤eo~("}FM-JöCFCcߖ`u\+$l_ +~|{3 /bΊ~X>L- ,O?M*ZpVuӵiD+5##pZ)cFΌ~6nbQx@'VӖJA`@w_G+`@@0  @0  @0  <+@ `PƌV +2Z)Ri(cW +2f Rxk+P'Mk% +endstream +endobj +9 0 obj +<< /Type /XObject +/Subtype /Image +/Height 90 +/Width 264 +/BitsPerComponent 8 +/ColorSpace /DeviceGray +/Decode [0 1] +/Length 2238 +/Filter [/FlateDecode] +/DecodeParms [<< /Predictor 15 +/Colors 1 +/BitsPerComponent 8 +/Columns 264 +>>] +>> +stream +x\YnV Jx+T@RI +b*DħȲey=|F?ؙ͌t36YlOlN~f\ZƑ#r ?Pl<_l8`:6' ߰ K^H#_"Rāf#>*.DIؚq@d><61ezÙyddL2̾fј-`1<8S؉0ZޫVһ.vp#82Ux\LXi%v`Bvg!tGGc3,_vrz1/kh p=' e')Xxϰ!/~*I;t`44G'Ϭ el Cɰ| o#@#Rth Tht,Ѳj +E`:U(:z18%  1ib@ct\݊YyN!/\Ð1/)˻gV6E0<YHF7@ro BgS,֢+Yg\1]b %cR]l69G4LveJ1cSۢ*o m-Ԕ6Lf2Lcic%LHLNG<$LDSXg?%vA3m0Rj2dꀍ_YM_^jBBs 0zW̮ѓY JoA暴BF{H?ؑ}ߊ(Z/AO_^u ݊]|a+_ksx}v=3xF|߱#\]mT)VOYk?niB݂IހTnGHJxJe !cWO:B_`#źpt@(@QƾheC# T-1CGrR^@]@8OGR  >ҼW?ڼZoL,#/o`vuB"6+'@\Lg:әt3L߅~ +¾ +( hiw󵀊#?5ԌYQ{xaꢪsX 2Těe&)1+C6J؜`*ϊ',:|ì;,چY7hIuِc(] +U{lR7p!*UMYSrDU Q7ZvM_ŴS7jsiċ,оΝ[\–0*snn|I7GW=աEz }cM2$9T3:vndڝSf^."A V\m%ܒ{$juʰe,-:(l]$,‘x]PG5H7WVj]aAʽ4b2̹OL2"%,^`cҫ -gih٥B9 +DOmpyeiP vju4I,{i٫R4wQ9H^5g5'Unԍ3k2qIu5/fj W5)ޓ6UOI7nͩw1!nԍ-k5Z[fI3c=S*d0[z*{2f"},ev+WD8 +u: +b]K][nҍu,[K.'uɝ960f;e')c` %Φ2M\n=c 嶟Ah[&x۟- IB5,r["SMP@3 vZ>ľvֆM8Jٍ*:C;oRVI E%p ͺ텎PGZ sSnzߒ!Ѡ}NxON&B~Ku5Zk`;iW3\)ԕf%b>[5?;sexV릀Fbn.A`^ w_pQ>\4a|Qg:g +endstream +endobj +10 0 obj +<< /Type /Font +/BaseFont /8ca789+Montserrat-SemiBold +/Subtype /TrueType +/FontDescriptor 74 0 R +/FirstChar 32 +/LastChar 255 +/Widths 76 0 R +/ToUnicode 75 0 R +>> +endobj +11 0 obj +<< /Type /Font +/BaseFont /132827+WorkSans-Regular +/Subtype /TrueType +/FontDescriptor 78 0 R +/FirstChar 32 +/LastChar 255 +/Widths 80 0 R +/ToUnicode 79 0 R +>> +endobj +12 0 obj +<< /Length 4904 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 789.15 Td +/F4.0 18 Tf +<5461626c65206f6620436f6e74656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 761.546 Td +/F2.0 11 Tf +<312e20496e74726f64756374696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +127.8382 761.546 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 761.546 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 761.546 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 744.243 Td +/F2.0 11 Tf +<322e2050726572657175697369746573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +134.5152 744.243 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 744.243 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 744.243 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 726.94 Td +/F2.0 11 Tf +<332e204c6573736f6e3a204372656174652061205241535020636c69656e7420616e642073657276696365> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +288.0862 726.94 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 726.94 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 726.94 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +60.24 709.637 Td +/F2.0 11 Tf +<332e312e20546865206578616d706c6520636c69656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +194.6082 709.637 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +541.8123 709.637 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +542.75 709.637 Td +/F2.0 11 Tf +<31> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +60.24 692.334 Td +/F2.0 11 Tf +<332e322e205468652073657276696365206578616d706c65> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +199.1622 692.334 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.6892 692.334 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.627 692.334 Td +/F2.0 11 Tf +<33> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +60.24 675.031 Td +/F2.0 11 Tf +<332e332e204372656174696e672061204a617661206b65792073746f726520666f7220796f7572204e656d68616e64656c20636572746966696361746573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +399.1643 675.031 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.3812 675.031 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.319 675.031 Td +/F2.0 11 Tf +<34> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +60.24 657.728 Td +/F2.0 11 Tf +<332e342e20436f6e6669677572696e6720746865206578616d706c657320746f2072756e206f6e20796f7572206f776e206b65792073746f7265> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6627 0.6627 0.6627 scn +0.6627 0.6627 0.6627 SCN + +BT +386.1292 657.728 Td +/F2.0 11 Tf +<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +BT +539.7003 657.728 Td +/F2.0 2.75 Tf + Tj +ET + +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +540.638 657.728 Td +/F2.0 11 Tf +<35> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q + +endstream +endobj +13 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 12 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +>> +>> +/Annots [46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R 59 0 R] +>> +endobj +14 0 obj +<< /Length 6293 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 789.15 Td +/F4.0 18 Tf +<312e20496e74726f64756374696f6e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.9865 Tw + +BT +48.24 762.9603 Td +/F2.0 11 Tf +<546865204f494f52415350204c69627261727920666f72204a6176612069732061204a61766120626173656420746f6f6c6b697420666f7220696d706c656d656e746174696f6e206f66204f494f52415350> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 748.4859 Td +/F2.0 11 Tf +<627573696e657373206170706c69636174696f6e732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 722.0114 Td +/F2.0 11 Tf +<5468697320646973747269627574696f6e2069732076657273696f6e20332e302e302e524331> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.9605 Tw + +BT +48.24 695.537 Td +/F2.0 11 Tf +<54686520646973747269627574696f6e2069732070617274206f6620746865204f494f534920776f726b20666f722065786368616e67696e6720627573696e65737320646f63756d656e747320696e206120736563757265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 681.0626 Td +/F2.0 11 Tf +<616e642072656c6961626c6520776179207573696e672074686520696e7465726e65742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.4584 Tw + +BT +48.24 654.5881 Td +/F2.0 11 Tf +<546865206672616d65776f726b2063616e20626520646f776e6c6f616465642066726f6d20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +2.4584 Tw + +BT +287.8526 654.5881 Td +/F2.0 11 Tf +<687474703a2f2f6469676974616c697365722e646b2f67726f75702f3430353434322f7265736f7572636573> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.4584 Tw + +BT +529.7426 654.5881 Td +/F2.0 11 Tf +<206f72> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +4.2106 Tw + +BT +48.24 640.1137 Td +/F2.0 11 Tf +<636c6f6e65642066726f6d20746865206f70656e20736f75726365204769744c6162207265706f7369746f72793a20> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +4.2106 Tw + +BT +339.525 640.1137 Td +/F2.0 11 Tf +<68747470733a2f2f7265702e657273742e646b2f6769742f6f70656e65627573696e6573732f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 625.6393 Td +/F2.0 11 Tf +<6c6962726172792f6a617661> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.3589 Tw + +BT +48.24 599.1649 Td +/F2.0 11 Tf +<54686520696e74656e6465642061756469656e636520697320646576656c6f706572732077686f2077616e7420746f20696e7465677261746520746865204f494f52415350206672616d65776f726b20696e746f> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 584.6904 Td +/F2.0 11 Tf +<7468656972206f776e206170706c69636174696f6e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 558.216 Td +/F2.0 11 Tf +<4265666f72652072656164696e67207468697320646f63756d656e742c20706c656173652074616b65207468652074696d6520746f20726561642074686520666f6c6c6f77696e6720646f63756d656e74733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 531.7416 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 531.7416 Td +/F2.0 11 Tf +<4f494f524153505f4a6176615f52656c656173654e6f7465732e706466> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +56.147 511.2671 Td +/F2.0 11 Tf + Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 511.2671 Td +/F2.0 11 Tf +<4f494f524153505f4a6176615f496e7374616c6c6174696f6e47756964652e706466> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 455.0684 Td +/F4.0 18 Tf +<322e2050726572657175697369746573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.5799 Tw + +BT +48.24 428.8787 Td +/F2.0 11 Tf +<5468657365207475746f7269616c7320737570706f736520796f752061726520776f726b696e67207769746820496e74656c6c694a20494445412c20546f6d6361742039206f72206c6174657220616e6420617265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 414.4043 Td +/F2.0 11 Tf +<72756e6e696e6720416e742066726f6d2077697468696e20494445412e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +3.6597 Tw + +BT +48.24 387.9299 Td +/F2.0 11 Tf +<4265666f7265207374617274696e672c206d616b65207375726520796f75206861766520676f6e65207468726f7567682074686520696e7374616c6c6174696f6e20646f63756d656e7420666f7220746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 373.4554 Td +/F2.0 11 Tf +<4f494f52415350206c6962726172792e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 317.2567 Td +/F4.0 18 Tf +<332e204c6573736f6e3a204372656174652061205241535020636c69656e7420616e642073657276696365> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 291.067 Td +/F2.0 11 Tf +<54686973207475746f7269616c20617373756d6573207468617420746865206578616d706c65732070726f6a656374732068617665206265656e20696d706f7274656420696e746f20494445412e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 243.6583 Td +/F4.0 15 Tf +<332e312e20546865206578616d706c6520636c69656e7473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +236.25 Tc + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +28.5724 Tw + +BT +48.24 218.1976 Td +/F2.0 11 Tf +<546865206578616d706c6520636c69656e742070726f6a656374206861732074686520666f6c6c6f77696e67207374727563747572653a> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +236.25 Tc + +0.0 Tc + +236.25 Tc + +0.0 Tc +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +503.587 39.505 Td +/F2.0 9 Tf +<506167652031202f2035> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +15 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 14 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +>> +/XObject << /Stamp1 71 0 R +>> +>> +/Annots [21 0 R 22 0 R 23 0 R] +>> +endobj +16 0 obj +[15 0 R /XYZ 0 841.89 null] +endobj +17 0 obj +<< /Type /Names +/Dests 18 0 R +>> +endobj +18 0 obj +<< /Names [(__anchor-top) 16 0 R (_configuring_the_examples_to_run_on_your_own_key_store) 45 0 R (_creating_a_java_key_store_for_your_nemhandel_certificates) 40 0 R (_introduction) 19 0 R (_lesson_create_a_rasp_client_and_service) 25 0 R (_prerequisites) 24 0 R (_the_example_clients) 26 0 R (_the_service_example) 32 0 R] +>> +endobj +19 0 obj +[15 0 R /XYZ 0 841.89 null] +endobj +20 0 obj +<< /Type /Font +/BaseFont /df33f4+WorkSans-SemiBold +/Subtype /TrueType +/FontDescriptor 82 0 R +/FirstChar 32 +/LastChar 255 +/Widths 84 0 R +/ToUnicode 83 0 R +>> +endobj +21 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://digitaliser.dk/group/405442/resources) +>> +/Subtype /Link +/Rect [287.8526 651.9151 529.7426 664.8181] +/Type /Annot +>> +endobj +22 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java) +>> +/Subtype /Link +/Rect [339.525 637.4407 547.04 650.3437] +/Type /Annot +>> +endobj +23 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://rep.erst.dk/git/openebusiness/library/java) +>> +/Subtype /Link +/Rect [48.24 622.9663 108.212 635.8693] +/Type /Annot +>> +endobj +24 0 obj +[15 0 R /XYZ 0 495.8084 null] +endobj +25 0 obj +[15 0 R /XYZ 0 357.9967 null] +endobj +26 0 obj +[15 0 R /XYZ 0 275.6083 null] +endobj +27 0 obj +<< /Type /XObject +/Subtype /Image +/ColorSpace /DeviceRGB +/BitsPerComponent 8 +/Width 315 +/Height 355 +/Length 36447 +/Filter [/DCTDecode] +>> +stream +JFIF``"ExifMM*C  + + + +    C  c;" + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((?%?SU@?%?SU +śzu X&M<v*f=+>%;?~ R#hQ;PiRHU*A {?ſ%拫i>U8dӞ YZ4i4-nYQ'<[ (׼?O 7ZxvK9[vHoˆ. mݍ6>:xc\׵+'V_Ȱ]@i0Y"cG_ͶqO &:}ȵ{%ͨyfD(OA>xí,𾶺j^T$X$70̾dH+6<' ?Ok#Gv<ij31,I=X^7 ]LLi {'+ouǑ]=uOcVeRJ9J{$[uسV_W :IfFoޝtAxQvP$lUO(/٣P3W%+ySX~nMU6ꨑXqAo<\2?QkWy׭xUƳ,^S޺nim(C0PK$WjƫOYI๮]G_-.[xh[8ˆRw9Wwt$zi}mc(J{E_▃Gi?}YKˈ[6G?!hdh9+42ƞ?P> +z՜~"~^6aw?,~Zo|oGVl͍i6Lk x2ֿc7$[Z| c|9nE~>OᶭhicoRwn?Vti]gQF1:~?6xMtcPRowNfк)$Q,w { ѫBړ_j=s4gK[+6l _/2\\4FgY#iPKm?\_|kCiZ.[dnn.V定)^@;k~ /OTGdukIu} [YH;"7-sP> +kLjAkiw֡.nZOw+;FxDEE?m$flxM'VׄXHC6IwDQ_ZŦk b%1\ad$ t>Rq^xW⯆<Mf\VnlF3j .e+I:u?@u, -o[\4;[_=B=}?n[kS/,<6,3Dtot ~?->#ѿu3|3y⿉;M6h 幰קʮ)U~Ox}~"&γS/M;=k-_QQkooݴk?@>)E[cB񅍝Y~$᫢䭾oo3lj  dPőxw<;/'UԓX|AsK/to +x[N~ۼ4DXG|gG!hv[|Hmb]ƽVZL?ͥeZK̶Wi W"IİΰC~*%h?/?6ko̺7 ƺͨW o;K 6i"NooGP^&4?jwZ'u?iΛ-ͥvf[KIeCev Aug@Կ%ZoSe?,IE&j6ɢIauo+2GJܰea{j?~ċO ᅔ6w&[yɊ xm&򠴅4\ǯ?UO xO{M Z\ixY.[EҬqkhd/*}!EPEPEPEPEPEPEPEP^J/^^J/@\KOxvtxǁm ➕Y/éhuSQ*x-÷S: *'+/_x;$>~f[Aɽm)G w$DJ}/_>xge$ZUo3? +I~ 8+2~~+G/U.m\:f<ד3ڵ\*IBA%.]nk>  z^~[[O6E2+?=V hO5g߉6?|,rr-.+{"I!_knnwyv,Hѣl +wcs ?xsʛZײn<>;J1&Zk]ѝ:G>"xf:_ /-[IF1yR4CI#L$<~5о+oFǃ]ݭ5m*kGueB~Zkv++4]B6G+Kh,pFX*ɾW\8XԬ_*VO MKJdghXkTg0(6V[;f:Eŷee}UVQ5+os{  K[xGW<{jm +z2C ٸYfd7ۄf@nckxWvO&w`n[$Ml,n~+T_ >gdЅĶqsOfмmsxmME#zE { Ɨk}ׂt2hK_i>0"Y*e#V1'y[ɾࣰ(((((((((((((?%?SU@?%?SU@᥼־Y&꺓Y$ +Ӳ2EyaHT@?A\KOxv\7W?bk&MBtK e60 ,"Ts=s-?>xW]G\m"l\@: +,|v_++_ Śƽkw{0l+xk@ +I9'߃u?guKAy}BZM TZwʓ\}C!dt?O;;ZNIuJM3YKMӠrM̹YM a44RKg~k7XDZ]y47CIm:zfZ%p+'~-j?֣'xWZYW^-]+j:_t}cXӯbI44-̾KD-DEPEPEPEPEPEPEPEPEPEPEP^J/^^J/@\(/ +]mjt0 F"d,f$H J)uEs />ۗѷUԣ}:M۷x۷o<: +hhηV]S# O+ W lYL+ԯ6|Sѭf'6d7y~pݷv7ymߏ2'+_[۫h<6Etdu+3dp$uXYk;Nu'V!sَqx+u6\V7sim跺G J-bT, ȣ95wx>w4^] wZnL'hnOki? Ys<ҷcClhfmLF7vo;h U*1wFKd,T1{ łH)??׉+}G=kM?߅5=;{ᯊ"Ho=-$r^Z"O +OO5Oi+[q{ cXO ii^Ijg9cGn +iևZE sko*hBRHY]I  kB/ωT|+!:n^#o ?-F(Y5Ko)ѧ|ajk/)Chc[>4hKg.ݙ':s?~z)n>xz]ۉUyCyLDpp} +( +( +( +( +( +( +( +( +( +Q~?Z +Q~?Z +}۟ԶO?_렮ᥧؼ;rGj|';m|s;l;n'ϝ A\Zz7 ;>^_Fo/ϮJ=WF/tGo䝻oپlYoe]}>/=~?~6+?h2 ?n-Wl[2I_]!_IpQU>㿄kZv|N|wiܕӮ|Qoi$vD/p0<#n6zo4[MIs5/kBc4e8!`䙵l\B^V[zYK N~kV=z]CJO*G5/.xIR2ŕ +w\巛,l& $S?|G#75_PX[DkeNK$>c6tR7}__~%xK֛þWR<=BNn9Nuv6ᢸ&ya;xh' SW9}-uV---Qɦ 2N(Tbh~_~R/x~6'࿌<|KGOZ.tO)ؾXխiBw[+~ڟ_o +qo'm,L!xu20_Iwy0LW|/zi]]=[d,eŊ]Kr,i +I$ +( +( +( +( +( +( +Q~?Z +Q~?Z +JR6kVae$j7 0*f?3)EbVVyC+iyܿ?n:lmݻݻ|1W/JFM3hĨ~UQn#R$VfQ\y➍om4ѳvZw63n>a៏^Qcq}iavEŔNY`tH6r u +a,~ Yln崟ɛWUYbe7Fhwÿl/% xnyl/b\]J5KG 3D"ή[b8<=iK$^cIu%,mϕ3ٕӀWu14t(_F%5c+׷n<?f_Qx :ݞ-f=K 4,v%FV@xulh_ɩiDֺVU&,Wj%q#%rde"Gg? M|%?aֵMWӭ5K tѣxXa;Z'$:Nq KUL$TNO,7Hǩ5NlG+XDNM4MiFҥ{vզӵOO]#w^)χ|M}}WN/<||`-9>{ZvUh9E vim`A#+׏鿵½+&5o +|v} .<d%u2s(]ꊡyc +L^h֮\^^KQb֬ i7 kn__x]C\凉|+c׈=7;Ҥe5x{ +B/-WpOkk]vHD)< b>+>|}Ouuwe𞽫\Am N2Zyc)k+YVд\y7|Uǯ |@"[] +;6 c{:[RKk3H, b>LJu[SP~sh7W~mQ7ѓķ@O$wb[,WN?|?o^ +QOگ"o^y>|:z׋yoxF}?~$]BgcDe7.4$.G>+M?_~ +BŸ[S]64c1 i;oo?,3iwaA1Vsqw Ċ"yY0$$fτwG|?)>}N}9Ϻj&ݾk~\|N|>;ᆑ}[jzT:~hl٭ nм:L+eO,~~ctSJ𝧉uMBQt3Q4*oZ3My*]v[V.>{|Y/(jn=nl7}ߛ~ϗ8 3NYx)iғBޯ#Y#-9AeP,~0O犿f'm<#gu[.%II$!Io P.mo2 G|w^;vln4I!Ei +M$q bvxCX40mz֐M6F0gBΒCs]τYi|ޛi=V/<1FGg@@cDQq*&_cTwhj үK{oxI$Ү/t{jWsCrG$Igg8̷XQ@ A)=kƅwvѭYfDi +G#$F8Q6mkGݾx~K˽GKo!,t>E \Zͳς { A!x(((((((?%?SU@?%?SU@>i!jX*ӪK#ye@(Cd(Q"BA\KOxv\7W?bkO&-Bk;F E,R4%WCs-?>xW]G\m"l\@: +߁4ω^G⸚ia.$T'Ibed`r\? jzxHԮ4{kGEE$GsJQeGw+Ys(C<;w5׌5}V ko +DYn.+vd +g'ůt _,o< Ko=E hi.d KKg- W + .}w1oMIP!|5 +ظAۖUekxvgux_GB?ZƛVdg;@qc=WEd {R65YOYڬk3}Pŋ\1_3e}It_h`FLs$`ȍ\0^' hw5u4,]2ͧX܈C2%āAFTt񐧇8rZOFzZknQU+Bk{ktu?Gិw>4Ayx$\*դ߈7of\n(Ol#C o'_¨<-yɧ H/sxI[kr6kGux8.Q_ޮݷwL|b{2|?:&o>oj2Zm-A[}s,󟱅Oy/+Vo> xVٵm V隭5ڤvsy-+ܬIGo-zUz n;#Quuk)R[y'Aiā{> +²'fh}#y̱G7>#m#Zgc?~j*q\hOijNZ%FnaxM?.G*izV֩).7gejmfԬ ߣ:kNխt?LzavO ⾍folN6v4pƋx6w^=.{I⸳/m]%{\fƭ'wyp$íiC[~/V[H4 /+TOi̺nolb-ƟS> `Сmm[GSno:\b="ǧܞP@HkX-.KƲ1q*xgG³h4O閺~?iM4<KhWwqKpЉC[BciC-x;^?Z/ \izυ}{['ӵ-F 28wwb50~?]_ ?_V$м)[^/~ժjv|؛]퍭Ik5}w|''7'?S§~EmL4Q`J%K4beHG~)ׅ4CG{ywj~!Iq9-yjZ˹\$7 +^#Y@rڮgA7펗yEwƵEc#YqӾ&b]C:ߊ?s3Z]HX5wrg#$tPN hY? ok}/ [v?jˠ7v6Wi:;*ۇKbex6w?grh _麞_]]̗vM%ⱂTǒg< '|gBP͟A.o?]xq4]fk ]fI ~$"m<6-kxW;|-kxV^[!'TsK.{,bᜃu QyG  |#]BDUnini%Fy$bL`¾??oJ-'o}MNoF.m7ڴ{?5Fq:y;$I!y>(((((('_5O=V'_5O=V=Wv{6xWZգc +_1u!n1I`IbLu4on_FWRwcmw66nnݾ\c+ծSFۤu9"R1xr$(-@0I\.CW?^l[|*O'mnnn$ۿd;NW/࿋kxao$iWo5W12Id20##W:|z֫}nCB՝I#gڳ3r@xsmP6X_Il5R hdVXd0iJ& oj xmp"{=|a+ +I῍[?U麞S:<2jyWgP! +%}⫘Rh9HC&Weͻdq#Ԑ#xE ox5cy7ux-1 C2p{o CZ&F-0DVdX6`'cưog[uΓWP7R1nsyT~͚ƬO4_U}rOVciti,~Sy9eE-3pӭ<;ŧsM+'[q,?ğWiS{gk/> |:_xN,q(2Io$|i^38~Ǎ/K>0K+k[ +zMZ&&miycqiG&Ly&h"9c&/ +vq~ 4*_~8}߆/MO?/J5D*$+mw + ~/./+YV@l(`(/irpD0 1`gi7^BO!mk2v3iRIq;q&ryAs3yÀG_|A> -{[$z\Wڴwt;{L^W.%HQ]|zΈֿ~X)^Xi[x)=n=$"B'ω|Mjm%S;'@"75{c$&#vP3e?J +U|!E͠7u+ͷڛ&u^Gpy#|% @c{⇂EZ]&P Z WĚ7<hzܚ,-ṹCkG qpad {@i߳<7}IUxRդ{x/C,F|±;A $P>7|5㻙.c}t +hig.IƁffiI27Ԧw?uSu&KX4m9L6wG0?<&{x$S^~ Zxh][JԞTb{oOshe/["Ml/ +4Ԟ>-7g7V#Aak43iun`3,ećex6?|N|Du֚TuŮak:ά47R.F㳚q3I")q+5{ES~+o rFI*O帲UtibdP4WMt-KOִMj+?PK[yP~3lCw wcw&!߲~J=WF/tGo䝻oپ xW]G\m"l\@: +0W?lu }.BRDZ^AtY#,a +@u8l溊>/–ms}mok dQcw R7FhZ+8=?Z ]I/V^>ybtQiu)Rv]m[?2igKy<+,ӼKw$؈g?|dd +qb~:/&en»ߴCVn[wmIRz;?vde ENZ+xok M {moB]'F#0d#n+o{Ch-iu:݄Ef\dOGι;xĞƚO̺[[_[ V6WyP@JDq# +nR(S965.tӧ) +N} ?`P߃^2Zƙ ln4-?Hk(o[t[ 9;Lc&3#>$}͟x-^/\l\3$/ O/>۞ ]/P6z]aWesd r<ƹd#LbY}υt/xj0u}\&eaTA!9|}Ꮙ$7x?xO>)ωmo/ᴷle-mIaaiG2.~p?_|QaM|w'懫_d?:}=ٓeco~o~ۿ2:%/|/]߉44XIZA6e&Y2cIQ`NXi3/'tf_mv'ۿb۝5?$WK~+x~?W2\v.xEmpe7)h+?gKU5x?\$چ-j\5faa (*O7 -kwu_Ro3hnWۈ?"u}]AIд>tw:PM?ƺ+$76LZ&k GԯcO4G=Ɠz̓jy}!E|AO➹x|3?~j*M^5f{q߼7r3{s0:JM>9jӽ(𯊵Rou-ma{n}H9vWGIwec?OW~1oh}+o?^+vv762}((((((((?%?SU@?%?SU@ᥧؼ;rGj|';m|s;l;n'ϝ'A\+[[? +]ۤ-j0/ڍHIL7,Xo1 :+Mk#w_yYgv۝|{g˛f: +'>>ncK}xjFFPNyn"E>Jh$- k꾭UՍMż"6Y[! 0Ag=į~"ORI,Ѭ) 0 2#=Z{,_;旷fe#9k n;oʛy~ Ԍ/3J{>O]CG|?7ڼ;ӡo7G+_M?ݚJnxv~#='L@<ͷ$MM@^xgi鷚 !~fw;$PKӾ~]Sx:vҼ7k$2M%v0O$6N<&g'0X>hRM4ԡ'&;W/eWFk]4|3|j4vh%^eaXMʘˏ/wফJ~W}k>wyYc"*@ +O?;hڧVUԴ(n5 +f:|{geGg{qZݓ9KK22G$O~&cjAZ~\P[MeGEFgB]AUf+KN +%ʏ>3/}P=_x:g-oݭ&Z;CiL򙆝K}?y7IhGt+ JQۭs5Dt335er@$m~QEWu8*HnIgU`]u Vy|=ң%UQMyuu! "ye`B+*RoAr썊+z XORd6e}-l+Luđ8l'3Rh7 +(((((((?%?SU@?%?SU@|;rw6꺔{;o]鱷vvǓA\Ky|;rɨM!u' y,HePd6*#ʁdpu;u |p~T<?"Q6Ѐ53*jE]n|C:/0%?wfOM#C?h<͞l{o8:u!RB}Q]V3ͺXwERT'sx/D|?~?>IAxŚW 0CwVK\sOMԮZ\ŪM$anl೚f^pNx+H5oĚVA$:ekwg:$6ИU`"}\Ï>5)|!w BiWqpXrC,2:[K!6ae}/\CSC UwY>7/l/#4=ZWzwtV7 xNO$W@g?~Ov0⿈z$ri'?$~ܺF$<3i%j]2$*e$s:tڲHK~?x5xO[vlYw~Cuӭ62(X cP `Gt&\Wsi@4lԬ!yq٠?f'7_ +KMW_Xmy_-~s-5 Zcx.{ &oi>0I~&~΁<,k3G 5ήP9+O( J?6{i?[O N񇅬4䶵3O& >̱ڑ HH[WG&:ŃK4D,UMcIo5iw}6KkhmfWȼ*f>7 &/ğ.k4[wPԭtm$Vg;\E$qumFq_NkV7V7,H$xWF\VA5$lgg}򼏶yg<7yǙ׏G%{ |K}sz9vSkxkT9wýky߰ K<Z'Zφ5-UuY/XǜYDR`6 rvmOh׿mzyz?_C4 .&-ͻZ;ۻ, +)S+~yWRYOi)ZR\5ov}?xj^4vm-.l⿆o|O7b5gM>{+Ŀ4G6gnC4m ܒ1#|:K Pkx㯌/zrK_n]>k #L ]"F}dgl'ߋ>Em']t %쿴.Ec'ע;Kuߍr(fuknPPea5ii 7[iv1YU.R5PXSe5tz>uH RJI2:(bo+YT*w-6|uco۹~"?kWRouowgvvd+E*KۏXmky܂̤YYROF7yzU~w5y'nǻf|o_VGƍ6O̞f>ũۻmnMJymVR<$V̪cŊ pB* ޅ\'ǯZij5MZS0|4u׻*MoxuŚ^R_Yu j>!̺Fqʿ>)h?x)σoWdvмƭ#`p+ɥY?լ}L7mīIBs#k|Ul5jz;ym N8rTx +wċ^sUOuɤ[iZZ}R=3Kx ޞ>]}4e{S"_Q?B|B֏4^ -UN'Rl}mhj8m<[^pJ[i?"/ Q[|!_૵g|+c.#& J|ł B]NҘ'mE\^ijbKZM\ٟ>o?I5[ k_aaoPMvt#@mgo}w9n_i?(n=lgcyDfD"#iF; ?|/[:g|?jEͮ 3Ct]TUq6eEwV|iOj2}Q_[xV1/o&H앣x%k~ B3/';ߴ?<sy߱wm(4ȴ/?EEOK l."ӆAȚz୸#kC +Ӽ%_OkiEp"U˵8b((((((((((('_5O=V'_5O=V=mh۪Qmvmۼm۷˃L}s .&O UԐ-R!UUY*B+!B: ++͟k;o_|ͳY _7mݍDẇ~ ++➍ +Ũ5W$RUa5UĢ1! DBU +(A\ŋ&WRyb;: χϙ7Z|,4j\G]?RT𯄼3xSE񭟌UEָHf[B[XԠoB[)s6OzljFoiZf+^$:]][Y#{s%]1\I XO@8|Oi5炼GR-Rcx?FMlVMQx?skYCS⯋Q 7? ZN61u ;&xme$'IP}WN<|axD!{={gX(c\6HЪ10"k%<=.x¿?m}횗n]mqĻtPc2Jd +( +( +( +( +( +( +( +( +( +( +( +Q~?Z +Q~?Z +Z}÷)}vIsvݷɇ;vûv2|t"ٵº֭P*ܬ #ppKLfROF7yzU~w5y'nǻf|o_VOnEJ4Ƴʟ$yh%s Q\ŋO&>iWQ>G|&}ț9Ǘ&v%^~o7^}&v}vݰ,vvvχg|4kp Źhub%IBURU=p|xóx}44=X KY,f%Tdvj+ 0<`kp_ ׆#Se[KR&oM,&L ~~ +i/|9n5 Mޡ=wP[Io+ή Id`R8;c(aZUptC4jzl|4~*ŭ[V^c|;i:_֎dm# mB(=ZȖi|?1ˣ^h ׍YzEMoÓߴuEnkJZ_([m^+sYj ' D uiukf)b3YIe1qCw6(L~~4CX^hdEeǕm *˒$򉄫s +/|E↉ xLi3ZÉIYE $-S'2#_yCK5~ɧoUX/4=5[DAw-DF*O!dE>2ԤC|k?NX5ccďjPM žˍ x*]{Ú|dO &Vmkk6{HQY-f$?S/w/G/_ڿ_g>=i>P|;*S_."[OUI6rvL!y3 5_E<+bl|+ZZS= }72f x|IjIokkc;s &Zχ^ծ7nwq9Ѭ ,_iX/4o?/ +iXgBD?dž.Q5't[-.4-,uolN%Ki-|Hnk˨]$V]m4l;G)j,п#@3VKk>[U4Ah&]4cUִȷ}lr\q"{OCASgt-S̈́kZlk ?hfh!etK`iqfiW|Yoe/!СӭbTy i%}*Rc ,O+=WWō$>eҙܯcJɧJkP?AkR0\xU6Mkh;jdI4q,stG c_s6*ҿ _eۤ^xCú+Fj3/"xO<}0׼EaX=Hڎf 1`]b^]x_Z5>/|0д|ֺMJ{Q@Q@Q@Q@Q@Q@Q@yO( jLzzyO( jLzzs />ۗѷUԣ}:M۷x۷o< +^}÷/}nGuۻΛqnn. y1tN u? |m/Hφ%4?^ 6֑j 7%6^?ً Wj~߅fo i ueWvx+ o㾗㿅5mcz޹X]ZGvWh5Fr罶 +ȻO;XZna-+W9Wa7aG&LW>^xg?jw#U+G +GfNsg=k?ůVHԮ5ۻ6qTź!ih,#T-kd_7+K}w=9sjImk cT6鷲٬ˆ[L!W6_3.Y =x#??xOJ<=!qjSi*m\ 3bZ'2#pLxE,Zz-m:oǚG |?zz#M<#ۯja +wSL5'ޏj1ij^\vW K]مW70=_;GRO CO]RzjKqnuI(}$?o+O>7^tumg6Z-֗ɳ{LymU_6&c?_;> Ҭ<=;6pxơrדE{paKpohF"~EPEPEPEPEPEPEPEPEPEPEPEPEPEP^J/^^J/@\KOxvt|ľ=#ρ|C/Dӧ%ɖ]5dҍԏ0Fѽ݂͝A).᷏5_d:ܷ=JA\L+[ >s8x&@ aJygI6oݷv3gy@ZNm7M-YbGHR;ɂncyDKwEui~Y=/V?yzUv'qo ث4'_ě z_x|9ims/Ʒ7qw$hѶRei~7q< %%_7f{'=T= 涫[yjF}i]įj?.Z-߽HMҏm(!<?|}uTWkxQK[]GޡDlHҴ#!4Ci9^'ond +eBN';[<K? Z_͵zU[MpҺxe7| $Ie | oXeP%}|G't52\%q.ujo%7P#9oƿ<_d5]?Z._Үt71׭.K}]a.nUpO'/Ǿu RZO,.TJ2A օs ;xCgtizU}=?n8Q'4d i<%S~ptQEQEQEQEQEQEQEQEQEQEQEQEQEWdƩǪנWdƩǪW/—if kZ!p6rD  H1A>mh۪Qmvmۼm۷˃L`xQK?xNOOjf֩f^Ś8U\4,n/>G| ᯎx +GCXj3[1tYVȻkMk|=į~"ORI,Ѭ) 0 2#=Ziˋ, y;G{9mȵKbYK|/i|</_bYҴ]: x*`W@mh4ÑcfEx9"ڗ5me{=4=/imݷe}ĽBJRV3\{i"Jd[вAHh? 6xWz.5oWڽla CUͫoQIJFX&ƟEP5=fY; {{pdr$e6/$ (㿎ºOjx>˷~[EfŎK>=bqE_OZ]_Gf_=޻y.e|֌?zץҟB-4Ox~Ě|wP[GqJ΋ I0W`8b9=||E:«GO! +~ _|BϩĦf*eڷq4((((((((((((((+2EOcTck+2EOcTch+io5nVy5 :%I FXRUyP,W?^O#]JMGӶL9ݝ۶۷yΐ'NiAai .:ʪnV+|$wSH~~dyafХp25ѝ\@-A@wxO6>8𶛭isL-"c' k*FywUxn90=}[b@oK| i? .bOmmY-%V ۇڦ//ڒ_еZ=úe{o=՝/!c W'WB1#lDo"{'Yz;ѣrSG}z릛wx3w#}z:+#vvz>_"~Pk+࿉淦RQ]i[I,bUA4;G'w*}|Z?|)mW\DJuu m"#WHn"c%pKpo,2uvw<%odt_/# ++ïz4 +EV񏇠N%g724k6hc_؛,? K???uF?5߲Oc~g+<;Ş,]K]u-?E4[Io B-l-B,BG"3@$fM:KRk8nl$'.-HE.uO]s/W>|->sĚMiETxm/Qˡb<˫K{-U +?G诀?eo_=IՏ|k@xGgwZ-bK(/u_!mb@Ff[iYmK-,o j}i'4Iɭԕ.5(-=GPP)4G` 2Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@yO( jLzzyO( jLzzrX)vk{o +uT#0-*u4on_FWRwcmw66nnݾ\c+j/2xMsg\eԴxJ&##-T- f>K mIOgxf[};CWkxrao3.(g--l{YFS7m[uQ_!zg񹭼(=e,?|-&k57O(X $„g^㟌H=^Xn(!֥ծBܥPAMj jw7 +Ɩ>Wk;v[ [ϑ_h+xhzW?4?SkȺkk:xPn%ӤC"[t㝢x *\7[_?k +=A +iZ6LmjUE;.${{HU-J?\43? ~𮛡hZf-V~anֶ H$#UU,~@?h/|"ui+kx_1/}V}KN]>H=^Xn(!֥ծBܥ+┿d +x[;CǫķWNDU{y37QEQEQEQEQEQEQEQEQEQEQEQEWdƩǪEzW4f&eidyt3B* +* +(Q@p:Z֡|5 }3\xzY%v,ђI$I$(QQZSW4Vp Gc_|,$1ÖLn$b*\jUQ3(cdL'vQEQ!EPEPEPEPEPEPEPEPEP +endstream +endobj +28 0 obj +<< /Length 6659 +>> +stream +q + +236.25 Tc + +0.0 Tc + +236.25 Tc + +0.0 Tc +/DeviceRGB cs +0.1333 0.1333 0.1333 scn +/DeviceRGB CS +0.1333 0.1333 0.1333 SCN + +236.25 Tc + +q +236.25 0.0 0.0 266.25 48.24 539.64 cm +/I2 Do +Q + +BT +48.24 542.313 Td +ET + + +0.0 Tc +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.2231 Tw + +BT +48.24 515.8386 Td +/F2.0 11 Tf +<54686520736f7572636520666f6c646572206f662074686520636c69656e74206578616d706c657320636f6e7461696e732074776f206170706c69636174696f6e732c20746865204c6f63616c207465737420636c69656e742c> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 501.3641 Td +/F2.0 11 Tf +<616e6420612066756c6c204f494f5241535020636c69656e742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.9874 Tw + +BT +48.24 474.8897 Td +/F2.0 11 Tf +<4f7572206c6f63616c207465737420636c69656e742073656e647320612055424c20646f63756d656e7420746f20612073657276696365206465706c6f796564206c6f63616c6c792062792073696d706c7920676976696e67> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 460.4153 Td +/F2.0 11 Tf +<7468652052415350206672616d65776f726b2074686520636f7272656374206164647265737320616e6420736572766572207369646520636572746966696361746520746f207573652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.1899 Tw + +BT +48.24 433.9409 Td +/F2.0 11 Tf +<5468652066756c6c205241535020636c69656e7420686f77657665722c20666574636865732061207465737420646f63756d656e742c2066696e64732074686520656e64706f696e74207265666572656e63652077697468696e> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0402 Tw + +BT +48.24 419.4664 Td +/F2.0 11 Tf +<69742c206c6f6f6b7320697420757020696e2074686520554444492072656769737472792c20646f776e6c6f6164732074686520736572766572207369646520636572746966696361746520616e64207468656e2073656e647320746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.2291 Tw + +BT +48.24 404.992 Td +/F2.0 11 Tf +<646f63756d656e74206163636f7264696e6720746f207468652064617461206a75737420666f756e642e2042792064656661756c742c20746865207465737420646f63756d656e742068617320616e20474c4e2074686174> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 390.5176 Td +/F2.0 11 Tf +<6973207265676973746572656420746f20616e206f6666696369616c204e656d68616e64656c2064656d6f207365727665722e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 364.0431 Td +/F2.0 11 Tf +<5468652066756c6c20636c69656e742072756e73207468726f7567682074686520666f6c6c6f77696e672073746570733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +54.161 337.5687 Td +/F2.0 11 Tf +<312e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 337.5687 Td +/F2.0 11 Tf +<4c6f6164206120646f63756d656e742c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.038 317.0943 Td +/F2.0 11 Tf +<322e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 317.0943 Td +/F2.0 11 Tf +<56616c69646174652074686520646f63756d656e742c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.038 296.6199 Td +/F2.0 11 Tf +<332e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 296.6199 Td +/F2.0 11 Tf +<577261702074686520646f63756d656e7420696e206120534f4150206d65737361676520616e64206164642074686520637573746f6d205241535020686561646572732c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +51.73 276.1454 Td +/F2.0 11 Tf +<342e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 276.1454 Td +/F2.0 11 Tf +<4d616b6520616e2055444449206c6f6f6b757020746f2066696e6420746865207365727669636520616464726573732c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.049 255.671 Td +/F2.0 11 Tf +<352e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 255.671 Td +/F2.0 11 Tf +<55736520696e666f726d6174696f6e2066726f6d20746865205544444920726573706f6e736520746f20646f776e6c6f6164207468652073657276657220636572746966696361746520766961204c4441502c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +51.763 235.1966 Td +/F2.0 11 Tf +<362e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 235.1966 Td +/F2.0 11 Tf +<56616c69646174652074686520636572746966696361746520646f776e6c6f6164656420616761696e737420616e204f435350207365727665722c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +52.28 214.7221 Td +/F2.0 11 Tf +<372e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +66.24 214.7221 Td +/F2.0 11 Tf +<53656e647320697420746f206120736572766963652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 188.2477 Td +/F2.0 11 Tf +<416c6c206f6620746865736520737465707320617265206578706c61696e656420696e20667572746865722064657461696c20617320636f6d6d656e74732077697468696e2074686520636f64652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 161.7733 Td +/F2.0 11 Tf +<4974206973207374726f6e676c79207265636f6d6d656e646564207468617420796f75207265616420746865736520636f6d6d656e7473206265666f726520696d706c656d656e74696e6720796f7572206f776e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +4.6167 Tw + +BT +48.24 135.2989 Td +/F2.0 11 Tf +<5241535020636c69656e74206170706c69636174696f6e2c2073696e63652074686579206465736372696265207768617420534f4150206865616465727320746f206164642c20616e642077686174> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 120.8244 Td +/F2.0 11 Tf +<76616c69646174696f6e20746f206d616b6520746f20656e737572652061207472756c792073656375726520636f6d6d756e69636174696f6e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +501.85 39.505 Td +/F2.0 9 Tf +<506167652032202f2035> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +29 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 28 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/XObject << /I2 27 0 R +/Stamp2 72 0 R +>> +/Font << /F2.0 11 0 R +>> +>> +>> +endobj +30 0 obj +<< /Length 4525 +>> +stream +q +/DeviceRGB cs +0.2 0.2 0.2 scn +/DeviceRGB CS +0.2 0.2 0.2 SCN + +BT +48.24 791.94 Td +/F4.0 15 Tf +<332e322e205468652073657276696365206578616d706c65> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +276.75 Tc + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +28.8191 Tw + +BT +48.24 766.4793 Td +/F2.0 11 Tf +<546865206578616d706c6520736572766963652070726f6a656374207374727563747572652069732073686f776e2062656c6f773a> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +276.75 Tc + +0.0 Tc + +276.75 Tc + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +276.75 Tc + +q +276.75 0.0 0.0 455.25 48.24 306.9849 cm +/I3 Do +Q + +BT +48.24 309.6579 Td +ET + + +0.0 Tc +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.8894 Tw + +BT +48.24 283.1834 Td +/F2.0 11 Tf +<5468652073657276696365206578616d706c652069732073657420757020617320612073696d706c652077656220736572766963652c2077686963682076616c6964617465732074686520696e636f6d696e67> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 268.709 Td +/F2.0 11 Tf +<646f63756d656e7420616e64207265706c696573207769746820616e20656d707479206d6573736167652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.4819 Tw + +BT +48.24 242.2346 Td +/F2.0 11 Tf +<54686520736572766963652063616e2062652073746172746564206469726563746c792066726f6d20494445412062792063686f6f73696e6720d252756e204f6e20536572766572d32c206f722069742063616e206265> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.1145 Tw + +BT +48.24 227.7601 Td +/F2.0 11 Tf +<6578706f7274656420617320616e205741522066696c652e20546865205741522066696c652063616e206265206465706c6f796564206f6e206120546f6d6361742073657276657220627920636f7079696e67206974> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 213.2857 Td +/F2.0 11 Tf +<696e746f2074686520546f6d63617420686f6d652f7765626170707320666f6c6465722c20616e642069742073686f756c64206175746f6d61746963616c6c79206265206465706c6f7965642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 186.8113 Td +/F2.0 11 Tf +<546f2074657374207468652073657276696365206f75742c20656e7465722074686520666f6c6c6f77696e67206164647265737320696e746f20796f7572207765622062726f77736572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 171.3526 m +543.04 171.3526 l +545.2491 171.3526 547.04 169.5617 547.04 167.3526 c +547.04 141.6076 l +547.04 139.3984 545.2491 137.6076 543.04 137.6076 c +52.24 137.6076 l +50.0309 137.6076 48.24 139.3984 48.24 141.6076 c +48.24 167.3526 l +48.24 169.5617 50.0309 171.3526 52.24 171.3526 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 171.3526 m +543.04 171.3526 l +545.2491 171.3526 547.04 169.5617 547.04 167.3526 c +547.04 141.6076 l +547.04 139.3984 545.2491 137.6076 543.04 137.6076 c +52.24 137.6076 l +50.0309 137.6076 48.24 139.3984 48.24 141.6076 c +48.24 167.3526 l +48.24 169.5617 50.0309 171.3526 52.24 171.3526 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 151.1456 Td +/F5.0 9 Tf +<687474703a2f2f6c6f63616c686f73743a383038302f646b2e676f762e6f696f73692e6578616d706c65732e736572766963652f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +3.8987 Tw + +BT +48.24 114.5919 Td +/F2.0 11 Tf +<28617373756d696e6720796f7520686176652073657420757020546f6d63617420746f2072756e206f6e20706f727420383038302c20616e642074686520776562617070206e616d65206973> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 100.1174 Td +/F2.0 11 Tf +<646b2e676f762e6f696f73692e6578616d706c65732e73657276696365292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.0781 Tw + +BT +48.24 73.643 Td +/F2.0 11 Tf +<4f6e20746869732070616765206f6e652063616e20636c69636b20224c6973742041786973207365727669636573222c20616e6420612070726573656e746174696f6e206f6620746865206f7065726174696f6e73206f666665726564> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +456.75 Tc + +0.0 Tc +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +68.2714 Tw + +BT +48.24 59.1686 Td +/F2.0 11 Tf +<62792074686520736572766963652077696c6c2062652073686f776e3a> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +456.75 Tc + +0.0 Tc + +456.75 Tc + +0.0 Tc +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +501.85 39.505 Td +/F2.0 9 Tf +<506167652033202f2035> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +31 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 30 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F4.0 20 0 R +/F2.0 11 0 R +/F5.0 34 0 R +>> +/XObject << /I3 33 0 R +/Stamp1 71 0 R +>> +>> +>> +endobj +32 0 obj +[31 0 R /XYZ 0 841.89 null] +endobj +33 0 obj +<< /Type /XObject +/Subtype /Image +/ColorSpace /DeviceRGB +/BitsPerComponent 8 +/Width 369 +/Height 607 +/Length 59421 +/Filter [/DCTDecode] +>> +stream +JFIF``"ExifMM*C  + + + +    C  _q" + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?((WEm>=NUd{!^ojѤY s/wSh/u WL}OEпNx=Zȋ7HK}7_c[w$ ecRg5>!|B+ {ĞIu:y`P[KkHu)B)xdp*)]_F7ů_5 ZkCg5G{ +۫ mo-fW$*?8~Ǻ8k:>-|Nkp_aͬ[(G$cbTkqaF\~Ӛc8tBķVrʖ 6F2G? +|qb׺nMB{ƅeY̓#g4,qf Q!!M{>xSw|vwʚOjoK5ZJ -mW}V>5㏊5K+\GCҮ4i.,n5'-&u/B%?/}IWP(g]?J4دʒ9tYHG H\B }Wچ"[Ņ?ۍn422}1=nHa'|Kм;hŻxv;}Fak WQ*iy]I{>;opo[M_6o} zĒn|4[hf uW>J AjX!VY76Ζ[隉A#OH; |G\>!)᛽^Vկϥ]YW HZCȈb1{WO|J1'5_\־.J-sZmT} +]h)co+,^I#aooRWC o"6estJ֒O\[-a'nu(uhFE0?h ;׌?Wˇc/ivykwm=F<<݋{[xx +7{\ӵkMZzEm_xwS 7ϊլnfHoMżj-7,"HW~Aium( WVv]3eOdDFwFfg>a'#t yg#ß +tڙu[%:j\->,cv("~^u-iOw8]^ f@qo>jMVl-nbԼ,%kWKq +n`2yVwx}~x~l~ax_ x{‘[vco&*Im-,E4z? ?K{rx^ +I{iZn 5I49SJv\MOxE$nw?Lφ-?JբyO;mF2=DQpenzNYuO4>ui;3ag% j,m%C"3F1*;o^ֹsC?“i> 4q{oa\EeqC-7F qLDdsO]k}SkRZ#&5xOsv3\[Ky$6Fk*6k]Xi>cIqj"l&Ky#Rd8Yo1Tu?Nsyz{wAKY^9xHfH:+ɿM?ه⧇<]kyLIҼEawx'6dU@a52$~\z{ķR%ԄK1nLmǗ:^7 xoP6I ^%MO>ѫϮ\kExm vQOWu^pgZ]_<4%:f y<4\XC'￴4CTvKy))UY`d)`XeHDte' KxjG¿x<)fM6%n[鷚JGɩyzc[ <%)0Bs-'CMx~8tJ^ʖ6˷Y&u`S,'((((((((((((+mټE/?UMG.L~gۻ|۷|@: +z֧ks }\ K+mYeV -kc{0e8G0'~Z |xoZj: u;KM 4{qiK2em6>=믉^Ҿu 6 uIiy=%᱊'%I͠fmN]"ThcHwA#Ʊ\P\}-e&﵍CP.q ;,#H񜢂&c_*mk6h\LJ5&X Rt)Ϛ:ou-B0 *jm٦Of ?4OOTNslk_?~ N v'.1!IdبF]۸bIKif< > 񇏵oG6twS\.}ۤkoL$( +Kqj|:/<3׾sT~m~]%f!2..uQopvlAo4L=Λk[cY|I>MrE@4EE}N906k_E4oCl*c&hw,K.2u?cO~!kz<;|LtGm<=i4^xm5g G< ]m^{z%hgO^֠;_jVW Zn<7{9gх]U-uP~ǀ~>==6OS/i5< q+i5oweao.k 82@o!`;~? >NF/cJ톯Kk 8kwFK$)g2o?f&?O_'n5_,'a_OջY?.O ŋ.5g6n4>?_kW i6XxK@{s +^6oa";nbK|A6e\#[;X,~-GIT[kէm'DӮmMӬAo-3,QԕB~xCN}WiW?eHBI_Kmsb8R;]gPfSM[x{=SMwm%d.6 {xgDԭ|?JDZ֟5_DRW}WV-;&1ڬ+% \2{O??h_ +t{O[e'O[mFA G'8Vn?Gnm^RNMdi:eϥT6][vE'qo2!x|Ru VS[-gNއKgڄ͓Gki3 5K.׌m~ *?mwm>将 ,\=Qqu;yHծO_:P_eoKyd?d{v;D}^NM?g*KΞ*hUqo$6 %ԉ;L"GU 10Gu_V-M +xOwW|ko6mKHK+mhַ"Nto + 7t7֛-s[ōs~|7KcWźm5mf&}RD-$:drݼv~5{ωiRj>$źTZV0]DZӤ-0 ͨ>(tC1ZsxG^׬dѵˋ ),-D؞Ic卽;Y?^>doMG|k|? jz>6/| އ,躕BdA)6¿⧂kykMWSĞma~{=D /"‘J-䴴IRxa%wYcZv/x?Uе[OO6;k;Y [`) +(-t +_^O#&*]7Qӯ<߱/6RO&Ml|!&};Oo3_wOм b}s^/no%Hd{? l[%{}A!&Egg5/6uqΦw)4kd{@ +؝4]?P!iZ:]}W 4r:`(L$Ff=GV->A[ N {M:᠊aT #`捱ԟ?j&Ə u:/O|CNkCxHTZK$QGowEFo$/ D/O)Q#᫏ -|A>%ި?-Ż˫OHfH#{zi}k^-Ь/|/<iy}>Xu{7 w5B],(Q8b t h_eӴK+5>_GO8'(tȎIQX`gů9ck>C|îiv1Co:\1McGBSNFO . G̺s 8o#_w5;7mVOO]^Qqa`g[G~ xBu7V-uk$d wmpn@c%YgmK6+WnGb˅x.#-&U>[Rp>&/}O4Эuy?jݳur#KTȀPDp@%̹a"4~_h~.OS/S.5|_Z-Ձ,5vQ\!qo>#˫|9qZ ~mtvkEs4q<; M?:)Bƻivm[XnuYI' Ha.?Zimx8𖡫xvMU]:!WY4ѢCjkWϩAZ(mRk-0In\O:Dž84aӬSki6pZn h`/ax kwV+n$GRm2XZcHut*z_$3Z^Exd[:Ɗ+ ~0]|V'tvo -xᕇmpZi:q^/[UՒU 0[owZzӾ Jf ?4|? q})N=_YTnomW+eG_*C?=_|q-z;&eՒKiC6:nnmgRO +ʮ$ o]BG _k3D'T='c|S_k~ZkO ow9kye>8moM-Ȥ3`֯ uί +@>Т-^%gh0-3j8Dq2GՖy簠(((n5ƵF7 'uM! P`'hSD6>"bywXO mIvAۼΘ'ӫxUGNеYn`ӢՔ[htlGH_$x|5ƏŞ֯'-]x_OԢR")kgZ,y23<>n$k?ա4m/>kkmV8'W`FkNP6+ Ʉۖrko +xjY&,/o ΡK~9IޒY#t1MsռkS}6 (o\]>[@YX.ٌ]+VGq+".R|>[7=GW0xцk>iL|Ï>;WX~~ԡMFs$wJ^"Ѵ-4D!IA*rR|%ko^iwŢh7c]3\ˆpOmPUf|84_ZnF,VdִǰGi'4,\hg)h?xƾ(σoWdvмƭ#`p+NGԏÓxP|CKÚSo-F.~+E:G8ʑEvhdUa#AV~֟ +| OZῆI',n𽝺°N=rop2ҏ2Y$m+a7Ri¾3M +Y}Ha_fKKnkcmt5)5C%W况:/xĒC ZÞ g]cZ \i6i5 /JfO~|n m|]K_:֟h0I&4vmhA%=]E~x|H|qs߾~? -n7ii&4o3Q> Ǚ\}{KF";)->)Þ+w~2x~/?Q Rŀ^4,Sf+ɞiiZM͠Gp+ZkO +aI!K.=i6i5 /JfO: +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +o4>"cK&$sj+q,kExV=%óA\m>/?UMG.L~gۻ|۷|@: +-վkPxhYZ?0D2K7a$C.s2O&G}VI7ygvy2y{ngv0f+˼Y-;]2xQ֒P>SF&6:ald9556q Z< U!Y&k"eQW/ə`a~ҮU(Sөi +WsENoW_+sXcD{KhēG|h6v ֡ 'H8@FrȀ4obO3x?VYNFKw4v)iVV&!~?.jڕ旪i:Agie8/1mg;bVaTyAOIwC+g/](>kVMUjGcQ u F[(כd2{夒ù?b7iO»iz~\ZMDC%Uo&I#?Q8ϯ? ~ {׈eZĶ-,v65׳Ho}i?#-+ ʪ)5{֊mNf-k3><(ے6?7K_3J6n jOKk}޺[cβL:kIU߳~_?<k○| kB~ ZQ^x³xk^>Mmd峹/c?7GCdG_f~y߾]}QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE5Oܬ֣,oB13;mӄk*1,LEs OXw}V8ghvy{vݐgv,+j+Ai)HUdFg^eetl۠&e*"iYzeyoxM<';>'XBQE'gfOM*(L(BđK,k(Y wcjֺu}}uoeceOqq<8AfwfUP $3X ?>xfWZyP<>l>dyMgWK@ߵöM2|F~bZ@nY JXV!,V/Pϟ_{yƥ|x/|%־Gch0C[a(1q}/PP4 =WLtb\βfCe򋨻BKZn"|+(Gød鵏Z|;O/fYUy 1oHJg=2]{Q˱Ḏ91W8 {Ὴ<0\Eclv #xoET; 4DFMExŚ_+k&i-_%H^YHDVfv (^,iIyZ~g ̈́$Ŵ[BYIHX)$n) ]_ǯx) w4{?Z::7O[%ǑV\Grf1M?Z{7gW6~+5n/LLdZp1+IzVh>ߢ(((((((((((((((((lşjS?Wm3<ׯ+mټE>|S-cZt'Ҥ=:]l+bЫ&@4~»MRWc-:U,7D Td}KOiGfB=I9ldվͭx_ڏ kPV۾-$I#TGޑ*vWDW>|Y?|#x?ú']Sίuv-+T$>|vG6bO=߇W]ɛ_|sΥop]mnyRKfQ+C>&3?RJᶜM^%l$[CA}s>__H +㞷Yڴ".mvבNCp\%a7 W1>2[]xo|?ώ]Ɲ3h Y5"Gu+oCgI=.ԫjHHJH;5g_,O +~'OڿiϑO3g~ݷ;W8EPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\eW_oMj04:q`9y6aDW?ϴʼnygcoy?6o'mwn:`JRԁZIhOu܂Ugv+mfb%[Wf~Ѫ?nn:?3۲|m卾t Q@Vou[E"(&(*=hQc#Pմ]J1$S#d2$F8 <3q}ҭd?(wytw6s2L8֭u~n,5oq9`mdeteVR3@ojV?|oNm΅IrU|?fOM_??hT{wэ~~gNxzkiM]%S!O2/Vge _wV? AxGvm^xA-mx4\5OVI-3ÿ5_Z/\.jڶFZ]e--%9Kxʹv;>lB?u/xgiз۵O}\.!+e$H?߀o<+gMˢi𝦞5ZӤ)>E6-mnn"sk(й%x#ᖋugki,dkht9,dɬ^J1h{XO mU=?H>?;[ i6,R[ LuYI[Yf_ώ:=oaꚬzMBF;UD6p X";@xOz_+Z&i[H(bHDUUE(> LI/k[|> +7OOjHK]/A.-VңItxsn>~]y6'c2YZSl]j MEeh԰c@6WG1x2X|kZjSEg5L[U𽯇4z}EfW[ܣB(xK^_'|mmg:=T=߄$S{ o.kuk2l*;"Yc [G1? UGWLJ_l:Ǒ SFgQcX$<_⋯-=?xvmgB&Fj 84m63!ʷHZs:~8K;O1[B%5>X;izu }b+9%=G 0xoo]F7W+>ῇ|Aq +k}rZνb)}6o&͵9\tI2}aExUMGCZɥOianlcay-Y3$pbxnD4@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s oxeP8uXTE n%޲䓠f~Ѫ&#mv&?3ݾ|m L s2xMbP9YfW5 nUр$ViϪ&#nv&O/mݾ LQ@{xfkn$ҭ^X+„,ȲF!Xx>9𶥢}L-%{' Qr*dFx {O>V>Gb|& ȇǗ6NC&EG*( +yr%*8ZKwSiMҜ伞_7[ϢAK^}:?#Ӿ}wb}ilWjEE-| xoOмI$K)cdXkyĿgiL Pym.Ş$kq7֧n {yBѰyVPx E|6kƽ'|5Ed16յ0$_.wە;Xi?{:$i5MkWN?iATWRm>Nk}{N?VVYDv70Ζ[xA#A#Ʈ 7 +O|,|oO/> aN[0. ebW'~|]Z_z%:&줺[sHl*<5V0;IKkl#$_?kߋqY|征e[OupmZĶy&{x[m&߁>('5 횇43FԮ m4\vVԉx-C}w/? Go*ռA:XFi;}OQ;#{HYπxU uƟw/^IK4ۻm,m/u+Yfhc=gϣ(|A/o#}fx .DF .uC*Y?OAh^ ?m_z<_omHV?y˝az⛹t,>0-h4{r-,uy݋H[D<3O߇ax7AU|u}.OѼ,x~^PQ2+YDvqF8#1N|=(tgռI5;[`Ŵjﯬxַ+x$<3>xVIͮwm}yzƧ\HebUC1)/a_'L?;Z񞇨ZY'R?U߇$[=N)ޥiuY ΑҞRk;xT|5aZ%k=zVy4IdVtM\?b>!{B~5;I?x/Kkjm;;iRkqjN~&1\~((((((((((xn5wB4 +'uC-iQ1u6>"bywXO mIvAۼΘ_v+B\5qI3Iz!0ClW9 y Es27&wVH_vvwvݓn,m(-o%-0!Ra01?tu'Yᛏ;^vk'naCߞgy((-6橩7 > ҵ9la#ucpHW)o+Ysql=P/hmM΍_f쿵bIQ'|"ܗ0ɀ;pԭTkiJJ^\=ҽZ?gv}O~_> +iek4OFn!ҵ[MR eaq+1ebyǯK>|+W7h:#\x{;۷m4s^X9nn, e?l/@Bn6U}*k[YҢynR 8dbH9nȴxO^o?4cvy.iC%X͝yfR2/yRK#CRx_%TMCX'wg~u mqw˾kZɪ/uKsɫ?|i⷏P#x}d-/grPGڧ: u267y|G_ii_w~#Ӵ +Vapelw!n.cf@ + |WkmSX5xfF⫨ImwB]/FK'n)!Qde;E(@Zxj*ϊ-=|pwMZ_$֩oC%Η-ib,RYI,I&GӿСS???΃cWҍM͝/̒=o|A6j |Aꭣ^ V)G6NzqȲȨs?}GgrOZYꍤZ\Q3'7[/RQ^KXi #3Vo5?FB^,'k+ mu}26WK r,wĒf ++M&Εs[ k*L-cy*-cS@[2>9E7sŶ~+Ӽ%xTF4-÷׶][wzAdM2"?`]Oxv6~}ݦ QC 殚t1Y[^9{䶉d?sO7ᖱX<'M=Xx((4uyp-7 ~skTqg5-+÷,կ5]#QmfR 6; >-e+}2GvKZxoĞ&~>𾭭k&=KUm O4cS9H(ʪ0}_/ۻៅ j gğiƯuk ٣&Hy a =-k>#I|:=Kx /yoۢT"YP-ۊ?B4_ G.u5sM񯆼3^xcUoFjCk̆^H d&}_3_r|@. o‹isowiWwrjvi#F^IƪtxSGN[Q^M宕eIysq&fwvsxß,RP'\5+MY:/٠ٚ XVX,t'𞱥ki]|Cv%֭[%qp&5+ >!*F̬(? ~ռ3uIX_YzUޏwO&(heIB rPEPEPEPEPEPEPEPEPEP\o>/'}U=6ݾt_ݷdݻ; +iox'rn<;wnc>ݾ`W?+ϳxiy?hdo7mowm>6:Z}^#>$3A]ۼxfWZyP<>l>dz +~)'So7ZfnOgGXty@(@E[ kz>z ົd>P3,99xj.]ʹw֍Uw-_wTW;o3Cfu}ÝGT{׿'-[KB[]CL:|&rƛm6Ҹ$mJ'WZմcS6Xc;lmU7fė^SV|Ax?oռiMvc֯Q.d{j\qmP$~ c*YfУ {H OQSNQiݯƳ^tO^<{h^ uBNMFRu-J[)`vܥ@۲LXdW⏁<?;,oG4cF4#7,PS|'@^|.͌~-& ;_Y-D5MEg,KO?I7@^+ڽפm4 mH> OD5gM>h"Xm.>>@_u^4|alQ\WZ&yogdmcmE;TY{/3Vf|65x~#`iW|;k[8ڙ#$hX, +(?|}x[|N{|o׼Au[ð]iZsM>$@G} q xo#Ϸ?m$犿n\[ƿkm^df=Köjf4wH?hm>-7P W~6C??w']osj H$FGߍ0*arLc_>jMCĺVm_x$jZ :=j%۴VRZ4}E|&֫>$gx}ưScjr?-MiuveQ{l} pC0_㿁</ Zzgd]]>u[-o^|wdKqCt +'oὧ5-O]LJJl4 eO_Lf05 O7>\~1ƻM/Zϛ֫o}K;;8o`iiz=Eiu P>{_Þ\x g":;O-~uw\Hv@QEQEQEQEQEQEQEQEQEQE6"cO5Xy~w }ݻύ|ɇ_6+ۭqG%э3IdHClT) d4Es2O&G}VI7ygvy2y{ngv0f+NJ n[RIjdpg^( ђLv>XQ^?Nu-5?3U@n\ַ1b װQ@<~Ϳ:5?ŧݮ{_\KhtAэ:/2F01KU+-: +i~v}2[ZCMYLi%X)$.xfWZyP<>l>dz +3̶aOgk_Dk]owekҏ5^=\_ +~uz&9 `PqIoOO(y ,I( >i?ρGoP%[Xn.]Q~Xc * +;t;wXI^_vۍD{c̛f: +[ x':N۽RZ&ZVcVYF d{|;o ~; ׭~ٛUZ4o +kZ"伲ۭ*bC779v|8[c/o6⯊:>ͬb sO%ƙ/u(mK .[o|F<7&sezt[ m)dp;h]G*kc2_Z=6gtcWPW0Lb8xdaoJs~I8BII6^ϵy>뽤WEq/ƭ/]o0 WOtAk%sbE}*(`lHQ\}}Z!+⨴$bKs "8h\y2<'kxWM,!խ"; .$@%hdʊrE_ ~o6$#Cks[Β1`F}VܠA .YHPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s OXw}V8ghvy{vݐgv,+mō,ͪIJqml!EX$FҮ`s27&wVH_vvwvݓn,m+xmqê-r/nl"uh H..Q@{iVy;:}ϛ9ϙ&wZ|,7j\EZ_,R0i^X'/lNK"(t[|G,n*A=uKb*͆cFJ ش=6$0Y5k"M +0ma":mOYHYM0F!Pev!b F_W~~ _i?>&>"GyPOEd8l<:J⾜~ 1lB8I$Q(rؙRU=*~>_XWi,<%qli ̾@7"Y#$ѫ?_Z7W=G$S$y-FtIQXRA`qz5'MmS ZyAiݟYN|4X'$5;e$/`Ub*&P~گhÓ/#&7S3m"c>Y2S<jW}ܭ4ͣ[$1%Y$y$֯xo?}o?bn7csc=7ZbiΊñ5]K|Yp~>7ҟO| |KguHڇԼSijR]ekCcxxL6^q&i=TRC>(d?<3h C_Z÷-jz$VЍ;BٴW ~H~/CX*_qú)]W#P#ODҷX\fſwŝ⇈/x~:5 XCMn/l}NMCEæYMn]Gn}OKjf}yݵ=źK&pKnB C]pLsH|!xƟƱ5OIԭ& S`cՑu4!bUq`_eٯw, +x7[+2[#ًYx:C\,:Mm;^[JGCR[eکTDH?<C[ѯxo5?a: [[WU!ſ [xv}/'}U=6ݾt_ݷdݻ; +HY?ڱ>}?wzΠ^}^O;F${|/Am|ϻnw6xOd_} ?g@xGU|Vo|YֳxiqnVhPnÝJ7@85 %Os#Au,ZguƜ#5 ]Y#W!VߵG>]xoTԤ_Z=&+m3K"4i&&/_Vy3Cp{+M vm>bkkܪN:Byu 8@jjچiVH{Ksm!Y+1, +91.C߲iSZ,J]*?ho#G[2K.LEj6Y[%I'>%+1E@$bo?o'u3yb]}-\Ji\Gut𽿝q5̰Kkm __k5</xO5\x7Ķe]=ϊ4V/?UMG.L~gۻ|۷|z +*nxkQh淑?Gs].ɵU%PZ}^#>$3A]ۼrIm/&XRmܱ?㯄_I3}ٿnϿnbq>Iph~=KZoFYutDGkNw-bN S _n-[ַk ?3 hkg{_9`pl4p?tͦߥC_H |c|@񦗯\[%ߍmZM*;+!YRɍ%Bs|S c:]ݞ$|X09 y 6x?^aY5  B>:G<2,KF 8^{>xj}zkiz}䉮-'tȑ@/O2ϿӃswӦI^7[9GV_:J|uy4m)-}㗈g}jj_뚕zW +CI<(RM.d&H۾ ~؟~(u]#*oGJӵ-'ew}"]`?Oo_}GN~c?onm mnϚ[uypvW |-|t4?KdltOZij2Z1Kwʠ9 H"bywXO mIvAۼΛM/,jBJȿamЗգXĻ@PtGo(iCᭆGH"|E,`xmēae吆!HZHEٖUYvDöZ]xNXnnnH-ĥV"1.]a$yP +, /Hlf"U(|_v+V4|@ԿnlL"FmB˻ U#o>~¶>{ ;kI<7WWEk:g11 +K")XdqaZ~$֒EdIͪa] =eVT%g$o+$~W=bg֞(9_[U:Gu謣;Nm[+}Ne4vϺ.}?_T+x.KƟuX^k1Qɢp<r˨IuXVi5Id  {]VGCDzExS .4m:i;.d#<Oh:м~$k-sMZ^A*$=:Ţ٢xd+0+ B/_ ox~6| oCTԾŦleq -tiQ[Ay??<)O~/Z)cx+3Dx̞K^}Q6iQ!}CK#-tx v: kӶX[uƊٔړ ڗe} Vgwޥvzo---#[?.oLeCC dq7m៊7{G4]SYqg_ںJ͍ZO>I [˙Մ#|_vPCKVkx>x7PtMOXiuP}r8f4+|ea?⇈{ipj~^BnPi&9Ӯmϫ\M$FDζG\'4Xh~d?5X5y9mlm dZ\AbKlhͧFFXU-iFм&57/xb+UDKt*^@U=  +0 ~(t9ηWQvhrRvT:]@\iOntVwX\o;4G";;hc$P0+D,Cxg߇|fǏ4mľ:kK;}!gkM>k}M%?G_v(x.W/V +cN>q4Oe:~3~x~ tTZ<=[Bt9!B+Ƿu2E$̒ w6RG᜾;D_-u cP+-,8Mf(\O<+qfP;붿[cS. +$~u\ȱE *J!(((((((((((((}^,#F/A]ۼϻvo60~7KviVY?"m%;J0!_D&L&sK%;yqhbf-;MW/[!.f֤Hνbd!+ < P /?}f/B;>ѻnNMst;sx>(l[ZΡsI#u#L]5f/nCco KMd<m+ +h> /;%h!X _-~9QI!'ŘlƵ,<7uthko_3jaa9}j\Ygni<;0V=2Rix-\fʼo;yaBxo-.&iُ kע('=vӖb젶1_Zw"\i֖zCְ)ȞU{΄)eU/bhiي?R >$ %7 _iΌV[A*Cp<8wnkvN۾Y[W~~e@ ?&1T4=}Aw]s~arv"&yc}>M+s-ͧ{|3Am|"bywXO mIvAۼΘ>:I<7K?|g?P'm7Lӵe閖X=CP2k͖c7s[]:}^%_x^xuo gn|;rWWji$j!ԮѼW@W;[M7 ~14v)evZ+ 9vC1vqax<]RG4[{-P='4d|gkBTPԮ.`6/?UMG.L~gۻ|۷|@: + o:j6o}I"vNgd̛TB*΍Ǎ`J.q?/5'|Vj gs]GﴩjEs;hxW?}.BMDZ^Oj%h,a, E8lbMcRvCiwZ|:}59-exe-q^hE")ʢ1s +m*kav{cP5;ˡB%eK,H*q)5]@={U~4{jןA/Ƿ8.#ҵ Qb̥c4 |njm +Y~ĶoNm =eHv_%N?y)euR1})~5 ÷}nxmtγ_j^Vmygn҄er:obp>ѵ+ywaj(ᦥe[¾)+ qaAuoRˉN-ẽr&|K|?O^{O3huʳC1ImL+YXSk,/]+B"9cK? xzHV9n!׀"Sv?o }?<[-:C.5;9l"g-=Q|ݮ%7Dy'?t}+^ƭ[^Ҡy }JKk4 \왡IR4{?[:爼?.ғW&X/< 'y7 +Km+#*-Tx.m[ozFa V2YA}juF'5⧌w[Z?33~)]_oQ#}&$zxv%Ofԛpw)|>k^:~+|?|/V}iڌ>ԡӭo$Y{uc## E̡m>~? +[Rk! Ӟ9%K8eŻG %28RG4XuᮛW+kk:nZc@^;9=ɌAo1 hjNOֽ~}?ƾ*珵_'K :]ؠЭO16jmnC8 + DExI~𾫢iZMj0[RNgI$12)[xºnjZ~V_\ʁ)P7FVWRC$Q__&5tmugM|A r g;b1!1H-!'sxWM]r[HP{[[SPѫ #E`(QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE~7{uY51fi?im!;B,&iϪ?mn:O/n۲ tQ@q-S~=b8tdzO&wIxW\RI]xCtO3844]KMo x{TK.q a2 +;=||)t`Cxhk:VW~kSq _]]Y}U7xNllWS5ek{yfh-lȱʠ̟(A$wM?-~ \s + !ּS.DZEәŜ.QT4o|/O +&,~WWh/ufiDĦKe1;W121 +V޲Ig~W|LiTz;mkz-W:U,um4\Kmj*3%/!čF#|+{_Kxsv6x.|Geo4k,6 P;qSSGuK[jWv%[-4p¹?9CI/yuMqR/yw5sk{_Yo/'DU!xQė 1LR7u@+,2AQhOk"5 Am]Lx>"cK&$sj+q,kExV=%óA\m>/?UMG.L~gۻ|۷|@: +( +}Ck:ڤSOmoך&%E!US4C,ˀ+^\|>3^*䲽|L p:_ex~A:z|&9I'\I4y)@v߈_l~Gij-,-Lb{4]#4ny, y#FO +ğ.߈$>?:N^:m$CAiRKZygW!d^P +u;5 RRM6=GUh,"oS\GqE-p,J#V +3 p1P6I7Nz^8}o&C״_ګM-Ti 2ȥYNHtt_DĝEw {Jf3)F%[[qTEy%@fnO-8.5mZb+UM)$YٕpBTY^(NThZˮ}=' +wIoigsE~h"bywXO mIvAۼΘ(_<+xvi0}f<\8=EtWn[i5?fZ~#}'۴Wt{uiYIBBw(񷅴}B5;*Kѯ-U`i(љPr a7z|7Ҡ[WRmg1+I#GrI «]ςZ/~$?4Rŭͦ\i<[_κм/k8rA`L|DaOc:$WуƑ,-'U3F򷓞O/m/;ֱo=8|wq+i3kqk&}*GG# ):]x Qyc2Kyq#eP$LH ]g~(#6mo.Kle{ScOJ6цTz/}?wzή}^,#F/A]ۼϻvo60tQEQ^Ux>/@m|5ϧ-6:\}EGw[KƉ'[w,phbeiCqnͧLSq4-~W{I݇B"O. +~f{̗ |AhxT@G Og-kǿ oée?n5io]:Y쵊$q8'1OQ~'\x'⟂gD6zrCje}5ڋu][DZKM s|px)&J=ik׽ݗa_P}zz|;]?^/93 OKl[d T2"2*nj@Y-wfψ"N5_5n-otfEIRHC 1Z#|mi _k5-fo +X`O7Mw=TT2_?W(((((((((((((((+ +Xm)FFgY"Utlg/&V "hzyx<;q'Ѷ YLQEW?㯄_I3}ٿnϿnbq +ڛPt?.H𶏮k>n-*څa N̖D/c v~:*Oiowu$}7fD {wIUpmmH%T"=b/x4V)YEw,wj-U1  (4ˤZ厪ֲ[.I +WS[-,#e㍊cS>j_ { {i4|Qm,[ݫOǞ  +; JOJm D s}uM}1&?v'O[j>> wt&Rt{˓O3˼5OMۻd^s/Z oO¨m<IO#}Cc YÔT.$TP?8~1E/|e_*!wO׼)7{hF]5Vo#PͬO;=>"Y oG'Kݟg~^QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE6iEŖ-B8cHZ)R96{cXz +WN}^,#F/A]ۼϻvo60tQE+U/oMo4R9M*2WQEy/Z/HxPҾn=OUjM(Kkk} d|+A컡5 sG<3$e{KxXdS$іGYNs|'Y#NkyV!A`َ|qyq`iҭl,-mllbK{{{xq[ƀ**U@OOԼuk_hzVRI=rtS>&_-ːc*ȼZچ.i`ث喴  /Džp9m9 MAZ{x\ +r{+exOh^w%*Ҽm/3779kkiaCk; ۛ{[˶yc쯎4ER|~ +wBk?Ziڟ"|ψڮy` hoIfMLOZ)/Lk?)Faw:Mk/eWeyՌ+y4_x_?Oÿ g⇅$XgY&ӤܑAMss=r+Η,׸bx!}QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE~7KviVY?"m%;J0!iϪ?mn:O/n۲ tQ@Q@[ŭ䱛Eݠ@4f*P,0 ^ +s÷\Cc >}6`sFѱB1 =*{iVy;:}ϛ9ϙ&w<uO>*xLҖ+dm]I "q$k6XI刔$.tYVx&2+ R2AQ鷛)6v/Jy{8ݷlǙ6͐t3\e*2qjQ/鿱ߌi$K1q{{)KY"Bwcj?w(P=wU\jzWMwu wwgnv\d->,xWP>o/[>svqP>bgW*VR[;Y3gVw^~If8E6Ox'[k[ 3]G]:k_XY\\ZݭGo{|7ٽ/$#:U]X~dxO!NjVjG-żhzTrI~W&+@ty&ODӨYUo#DI[R.'zشg*&X|~|xhwWI;ǗOR{hC|xW?P&-e`n圻D$s!MrNшYkWR/#&m%; #B"i č#*1~z'4{{7k7|O^xulmR/ⅬՂG,i%h*Q_?auG?%bѴ_ X#>-֑_)ukTrE IesmoAW>_|gwY~Ģ_)c.}onQ#KEQ%h ++)~~+_i(?u *=e-dy8l,Q#&RAkQ,[1TƯgq/Z`Eǃl!k m55wzgO4^t[>Dת}Skžmyc_xn43oxR܆f>cAg9#9UU!GPEPEPEPEPEPEPEPEPEPEPEPEPEP\o>/'}U=6ݾt_ݷdݻ; +iox'rn<;wnc>ݾ`QEQE'Yᛏ;^vk'naCߞgy+Oi6G|*?' 5=?͡T%ݝ%YsDndTޢ)NUʐk~ȷ>4R;-ži2X؍4B*de ?) +z/ +Yg$x↛u?홾|?ևv^Y,|SzlM#ău(/iO +k|q薗ma>fUQi`wE$BrqxŸI[g,wQ x/S'[Im;&+^oOiW|k5>d~fVN^MT_OA;+ RGJkH'n] +Dsmy}t|WVx<x '׺<6hZ=ާiJ4y$-'t )ϧ>*|.Y[7^0n.ocpxiLQkhV`"HM̬>_㿈?˭s|aJѵ/o 7([Y/5eZqoEYǀ^+'e¿|3bo7&:w|+fG7o6?~;:Լ?7}rV6l?moM( +( +( +( +( +( +( +( +( +( +( +( +( +( +iox'rn<;wnc>ݾ`W/[[f֣ᙤβP\ !*  +|P((= etX# + _tCcˏ +_hmbI&RA!Aa8zQF࿄`[xalX=|IKྃ#>̛[hӧI+yEGk둨Ln'/,p0Kx\l/&Xney /nYAo rE/0_G?kzrjZ+x] ={It.b.ß4#@#W6A'ˆܑ8&}o7м7\ְ[w:ݵvOLđ#kEWgKץ+ P& |7=hqje+Πcc6,QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW?ϴʼnygcoy?6o'mwn:nXɨIڬo +K+v$UpbDm*i pQEQE'Yᛏ;^vk'naCߞgy<-}㟀~8t>թz4".!FY @Z|,7j\EZ_,R0i^X'/lNK"gl|mKZ'.K}y6&Ip |U}_&_ϰӧ^,:,mZ5n>ߨh?xwtRе(W֮XlFdexCyVgO4 ! 0 p־!|*8xQdZͯ*.OKnݯ>5`=K|IW/|4дV;.#Ӡn/Ѧo2;yK*. MƟOOZ-¿J GJ׼5oU[&H~]x]/W.Rm2t HID#mik~Q_*~XL||dk 5ƻtohށ=[pjfе`D[}ڟhiό'&#֙{>$YIq^xHP`dgX?K?~,{]7]е-?Z5HB.mo@MJI++! ~`M}cŸMc|*4=CMu ?-jvOKl)岴(lƟmrGg } ]<z/,5 ?vmX\EmK٣,( ]QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW?Oxŏy?hcw6wv>6&ƩRe8mhOu&gv pmeP%((Oi6G|*?'x|j_>8CZ=M3ZĞ,Eơ{ ty-E0W~,h ՗OmN·mWZFŕEC$K \lnhŧt]CO.-mqHee k#Z&T|1Rv{;+%xK{_'-ޑ+n[ԯ=4tdX ɜ%2Hu ?$_𪬿U_n?H?7nyNO @ᯀ^&dXkxI=9Ln٣MmKQfiN*, 6$q^=ơl߳j|:]m|?`5 ^]hf͵Qvg'܍rbBIlaEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE6>"bywXO mIvAۼΛlşjS?Wm3<ׯ((h|,ǝ;J70y]||3'g* hC*_M]smzͿҬ$|^F/;wm"=1Mdso?i>g<[^{_{=~_" +c/ĿxW  `/TķѶ,/ǫi%R,%Hf~˺ޫ;j^,7x5OJӝ5KUKUryJ#i'(G)_Wĭ Xn.  X(++$ElP^$ucG=X"_kȲݢ黮d2[w^B + +K64 {>8KiH}c α<`fJmb]<1"9|yx/~#![si$A p25{ׂ5ƭxOZKu^SK\2[ȉʿ VBߛ]L!(9-Uͣ_xa5MrOsğ ?b? ?y&c `3?(~9Bh/x->"|?u?^ڰ4Ymct?ygRgPp^C'>;| +4kV3jуx"R_(d/)_,lt ?:BMޔ~hH`w/?UMG.L~gۻ|۷|z +*nxkQh淑?Gs].ɵU%P((= etX# + _tCcˏA\Vou[E"(&(*=hQc#PMOY6U~w5y#vɷ~|w_IOƍ}[Lb@uW뚊 cZWEC[%N|ao"-v4_V661%b8@Q@ + +uYs^ͭփ=zޏoyn/qx ᮤ`w/ퟲӖ +XJNۭwgRyS]>R>x#Ư ;u_:>Z|xwڥHI[`popDmES??O}_5o\+_G5 .͌1n嵼sZM:'\:?ٟ e?J⇄|/>&𕝞yty+rH%HXq+g!;/ӿ~czBanȰ헞dS'|FQ拺9iٟ/>l-{|;|ǚ|U>R='U,";ٮ/4[;PKX&gy>TLV +׿xֵ|`W+W? Y3Ӵ_zLyq%.һ~NѼ'sQկ43O׮S"QX"Ye ""8c\E;'|,W >W4/?fN<wج}A>Rm?4gmK7@šơKš}9U}>+y kVa9,,Wh;e'uq ?gӖ;Aѭżs$!aEZyw(N`7HQEQEQEQEQEQEQEQEQEQEQEQEW?ϴʼnygcoy?6o'mwn:nM7XŨG:i \E*G"ѷB^WVq`LkYBHQEQE'Yᛏ;^vk'naCߞgy+Oq5 q ĚURuP%Y@x`396=fVy>~/tףww&ٲ6fj nU՘zcs)p#y"P?.^;]6=.t9ݝw۶sɓ]h"&jY$ ++1yaI.KT]%@ѿA@/m3KF+wI#8:dQ0um3T>7I?;wm'z{Hsr]_Q\Ӯ }gm*P[I[yQKEW`j _T$˟G?i-F?[^2k>nݷ9$wf;o~w!Ʀ_ #K'NM.2%f,*.Yck߈{.9ՠ,2ڌeVZI¸X |/Uq +n S'Ư7'[ åvfA]\Cq,D@Qk[G.?C COm.ĚjKKoY[OnF9(!MȭJTiͬ:J-Yk^SGu~n?5/|ax7ů f;-n/|9"Yq\=w6ڣm: [?|4nX &F.TZ, cpfy-]jAe5v3rxmk:i+]NPdԠ BO;-ݤQ\9c)k/OV~٨xU[%Wcw`Xͭ{\2v7*oS𞟮I?jK(|v w4[Cg:H7?ي F_?C>03ּ]/;3%7vv->$/q6$m0u}#G +Km;UZ}Z=ΧsʗmsۋRK_lHDDl Zvk0c-Nk붲xvOGxk6{{`q㶷4PG=Wkm uJ𿍟[2QHxemjk|?O7k?4vwbGg>- pɋd/6w]l/ Ywv:&ŤHnHh +C״n/}.Ilt+]*Gd]6[M= VĭD_ڃgk g4Ag=zuKMADq;K=DGs;s7mŸc>iZV$γu[ 'kq3?w9f&O`((((((((((}^,#F/A]ۼϻvo60~7KviVY?"m%;J0!((Oi6G|*?'2i5rVrh⺍MƚyH%tm e7mVXTNk/Q6T}>np(\zO_CE;K+ lFL\#cd G#]JŤ|.cys~>ض]pç@f18a*ڭnkwMhsJhռ6zGKW?|D?9͆6{mgx͸ۉb=(_hO-/+XtZ/>xPҿ[9o1-⻒?C}AoBĪAP|RnFxPoDk-+-ommR̅Wb[k/ )Iy t?M2="=bSax/x=Cþ2Ԯ#Q455mN+y-4lSPkh}ݚk\>~:?IcW{d k=G0cZtv6KvQ5涺Ɛ, ! +_h~<?Y|>"ZZ:Ljy GM-2eVɻWMP+*N>|7ZSOgce_hM?N.Hw&gy(((((((((((((+m|EǷ<F۷Γ۶;ygw7A\o>/'}U=6ݾt_ݷdݻ;: +( +(9 <3q}ҭd?(wytw6s2L=s ?>xfWZyP<>l>dz +;wXI^_vۍD{c̛f: +;wXI^_vۍD{c̛f: +%}ö}vǻsۻ·;nv.|2<+yg7Wz-gMq13Q@5[ҵKúS藷S 휊e]$^s<#Nn4:卥ca" ٤D*CFP>迴MxAj_N֗,2FH{v 3<9O-|Pg:֝V[Fk߉ռE}jnLo/]\6UC0_w?"4[S4UkռA:i;}OO2\#{#yY|X[qYoS>0ҮM^Β,7e܌3A& t ^]|/񗌾kKDv)10j/ iM~,ӯ|CjŸ7 6/n,ͷnඁ|qefd"ஙZ/IiPwpx;Zvr]^Zu{0iUƟ=[5E>n?d7+_ +6l -293L#ZG`A?lB Ko_<;'|C jˢmMo/jwCM<+WQZƭs33H;? _|8*7ǝ*J7,-5<7:-D{v !]~ Oo/·N[^^Fi7|._Fm_4.?/LwIs"O +Ii@;ї3$|-º|?zZH$#>L19Ӿ Sf-7jV[ [ii$ #?gxoK~>0E١gw7/ 601H׿m~?O>_^H^fI +;XmBKgC24E=OMTҮGºU/\%[};HZK4-vzߊZƯXھ|ưXdF\@]WͷnLϜQEQEQEQEQEQEQEQEQEQEQE6"cO5Xy~w }ݻύ|ɇf~Ѫ&#mv&?3ݾ|m L Q@Q@{O>V>Gb|& ȇǗ6 <3o}ҭc|#(6~L1o1.Mÿ|ct\6EHVQGh.nt Uoxo[YVF7 \0M'9&c- 9k!;ij9ǟc5lukm8-r%Q +" )*Jk>#!Qo4:cڎ/K Qqʳq |PoEhz>xK{7fyoNK.c?UWpyϿ~%էV@u+GMJ633(* umX( ǭoS+N+AI;g{ol秊*%Gk|+}bNM;Pna ܌ڮr?{*2&W?/_5ڷĿ^ VBmCiޣmt,lQ{nH )7?>"W<;w©kڟ5(9+\IdWn mI?MCw[HF?tMQ5cS -/:^"+-X:e?_[^iIi\![]B_z^W?ˮi wzzxŮudL!.-1Plh~??>j^ _1}gF}.%iƺo3j4߅߳R_\!:5zvwb0Il|T\M'm[N )JM2_ž/ |SwDo4hi6:ɐ5oF7`id`vx 6< '\PI,@`g5W>%+4-R +t$H'|@j~5 -q4m:Po^*%; OgmmKXPIx,'t yB3ª `/x?Gj$N m}~OX .#,58-mEt(Y {_i7ML[}$GKcn$%g:e-[/j,> xa5+h񗍥bk >)'Gx%/W>͌iLӭe4f mB˵DoVifE((((((((((((((((\\3^&I;Ȫ0ĈKlnf&QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE +endstream +endobj +34 0 obj +<< /Type /Font +/Subtype /Type1 +/BaseFont /Courier +/Encoding /WinAnsiEncoding +>> +endobj +35 0 obj +<< /Type /XObject +/Subtype /Image +/ColorSpace /DeviceRGB +/BitsPerComponent 8 +/Width 609 +/Height 462 +/Length 41854 +/Filter [/DCTDecode] +>> +stream +JFIF``"ExifMM*C  + + + +    C  a" + }!1AQa"q2#BR$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz + w!1AQaq"2B #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ??>%G-2; |L+Lwc)o~K ]~AVsgk:72H%2&< ɯ\O?JPDR^KO}V= kh?ÑE1MBBU8|^J87|;RWQVQJ)i1X yCvAlȬ2$uSKSid}jɓ7ڇK䴛,.E썵Y$<֟٧y*=Q5{dx co&Kcp$Mrl ɸɃ<+O+w +Z(^ǁ!*G{N; ZxzsD$"ůڈņ{(*A=ȩ4ٿ"0,z>=<⧋uŐX|oȒFZb0Xn|ߛirį$bo?Ծ0x;Xc%0rB9qשk__ ؋%}B@2_]1 v_d3qڗ^c<׎io~0xՎwh|#sҭi|l~ fkq#d`G>)q۽߆EB/fRxh\cM3EO~,L]es#tD~ԟ%?U߃=*|ϰϮ9HıcO94 2e :O lj?_r?x_rgZ/t(=g5_ដ 1pV_(|!l$`)xgP|L?Q/QgωJ|F'G'w5_@5o?fQgK&~4O|i._}b!?|p!Gxr?>J?< @;D=<,~џ#猿usӓG~2^ _|)}b!E|A#Ge.`?%z8-OfO#?=xW?]<~3#ό?ss״>x$}O>J>lh_u'4'xn?/P 5RWa%X{6x4wn?z^=#qqׯ…g.a'S]{X{6y<#qq.^ +' @0?Qg|].|uGOV0?P><*}b![tg ?w/u8؟t˞ +>lW/7OSOFo*_V>MC?> (CٳI9.?MV+OϮ +_Vj?Kf/\-_2m_2W_0o|:Ї_0of:]f.x/V+}/7R (Cٳ1>-S׊V+K (: (Cٲ- ⧉',ĺ5v2vN3`k?&-fI/R+SVԯ|(Q] bQ3r85C6Gek*AO}wQ*n)Sh4ƁxvzeN;>ik|DK-s|wkDm7K[hz䏫u;H%FˎWPpqxڻovWQl/$b5t ǥ6z skgđƯ<9]ٳ(Ok6jlaX9kf%IkR@%G"5LU6"T/m% =+mI͍V;_iIdq=c\KV|? V//4`&/VYd~$)rrX+fQxX#Bh4-RW־6ǫLfV8ݹY#Zg%l]N} }'r'xoU[}IdeKH)6;X&SEi޹7v5SW>hէI5t%~8 KY]Kw}SJM.[u' 'KqoNOScz!WLMVH~c"m~3T9|Dע4w"UqRTIc&ٓWγiuu][&DUo0HY|SȮNu 6mqoI"Mn{1Kx\Dџ/XOqkz*+IYTZ+6)kX=JwpBnIM[Ch,y?!H*CF9߆240۫`#s}+h +Ebev #܅\|s޸_xcxkIetř`YaiFzW[:M)uWO9m_|o;Ŀl @^'P/nti?xK_4_uu-nPD9k9B +j?ğ_n}SZ49]̀q= akYM +LPpNH֛j'4ܱ$I$I9>ʧ4F4_^xwHo%wDZA.xkkFޟ-;y MbGpH _hXNG;{xw?3stow?4l 8,.6^7?5/Iɚ;;+a3K$PN vZ;Uehd\ci=;Gw\=I?~> ]VGkBI Yʬl"y0C9-u {R3G$$DɄ̘iBYG釴2ӿ緇:NG{_?e i߅]Yʫ ^RK]5oٻÞ=>;882TR3w>L==;Gw\=a~?w0{PFχnn h AKo9>>&o ]Z-ĉ\4bm 1w^8Wӿ緇:NG~&P~xږ4Esq& 񩵯~>.;To[{6̘iW,XN@>L=ou#=;Xf]2TZ5؊餞X㹝0PZdž2a5'ٮ? :x7X[/KOwQqJac/,G@_hZNG;{xw??[ͭi_/,jfqsaj2B$@U#!f<9% CYԬ; +@,ʘfu=ԜQa;{xw?zůٗW[G2Y㷺LM"1nS.ۢfKJKCZ}6[].b$:N `da /z?ӿ緇:>~̿'x#KKy4b.IgF(##ڶ?Уgt}_{Cӿ緇:NGt+_BO W?=;Gw\={1_l".b(D]Wz?ӿ緇:?Уgt/F'0ou#=;^ W? +6?G釴L=ÿqou#׺/F'+_BOa NG;{xw? +6?G1_l"._hx_w\=ÿq Q?Уgt}_{Cӿ緇:NGt+_BO W?=;Gw\={1_l".b(D]Wz?ӿ緇:?Уgt/F'0ou#=;]c > ܿiRUA,TL=ÿqou#׺/F'+_BOa NGWPs^=zů٫/߇:u.6ݥ5wtI=+ +sotb9bX!"CrFdZ,ʢkݶu2&#M^i3(V|Wig IA&{)LWQv;m&fH~ jRH#~Oz~*Q~6n=oR[;f-n]߾&e +Yc,9_7>2_xWY]u:M-.dYʞJl X`FQ[G$vhu+ܽs?|j"Qkmo'k2܎N85*&Hڴٵφ"&h.$bJPdqI|)ЛRiX|TàI$Vdˣs\++Z2FFN2[4ףZHƤ:M=3__RU]r~\'O$c'xBq޽WE'uMw1ĺEY_]QQʤJnOVޭ B*I%[Ci j7^*-~Z7-P0Dx6RYX.AT_]G+B'tڳGxSSgn.{#+p3M<&k@x^+.&OR8#hZw'1=wEt_Mo / i3{wm{6:]pw)V#Hkk/z-CZTiی`bo}¿/.Et_Mi:"4h#LYMGK6yt'<ƗǕ6}X/m6n 6Ѭ1"F~?!WKyi<7e|@m|4om9Gidh;m$ܳ$>Yv=?k Ʋ* + A<~S|?vYF421Wh}g4:M[y$2f@{Oz?ԒRgevg#n?{gv?oڗmuw3i:cK~,t 2n8.gƼHh^]Ñc-]SDu ,nE\i3$\N+K'C/jZиa+=Myo t$?4{YwDzc~pz?RIaHvlNI`y y/?k.ȏEj? keŝ揥Z]8hd7$:3'y1מ.0ӱg<~ןy t$?4{YwDz{~|nmq;ѵa-헢^l-yy_ t$?4{YwDzEYk./O$+-"uˎ4uvZX~mXv+5CG te9_uHK/Oc; DutqȤU18ygO1ks +錍o&0++O@[;5vwqc}S^_$?4 Mt*lÑiXxbRMPq%˧2v@q" +/eI&HԪ劂r@&.^_$?4 MWpG迶* >8dPh=7]5^A$?4 M]Ñ g=_Q g=_W MCGpGuWwTuWwUCG te9vvy t$?4{YwDz'?j? D:oݜz7K{j[HR9;XSxkKaq3HN9-|=㪲A#;ƍEyojtKVy`yوC>n>pw+>mѿe?:6m%C;\ߘZ@X5Ho.&[;鮢$7z2N\єQv{0i9)492šxN%h,ꠡ8#zR*j"+'c{~a@JgcgcUGʠHqܨUdJYfBX%K?s}M}E!{P} 9{{;< _s?U>?7}cg=}o7G3ߊGuQb/gϾ{Wn=C>^(HU6|?矽qw33JYhm`7KʢϠ(D9}?ܩ*X + Z}EE!ϗ]@fdjk*(Qw?]@fdjk*(Qw?]@fdjk*(Qw?]@fdjk*(Qw?p*>q@fdjk{ zU?d5lP'G˿8կ Z}EE=. xV?3G2?5kc5{(v| Z8կTQ92?5kc4 xV?3_QQG`g˿8կ Z}EE=. xV?3G2?5kc5{(v| Z8կTQ92?5kc4 xV?3_QQG`g7_-e}##bX,jx*|( +?{n?}YE!Š( FU$zoMBŴ4RH;YI*7?gÿ_e_ktj 5jtxdmK}q%Lɱh!9/P1?h>5xƟ + xRZFkkMRB!Qv'6f>\e\^ B|t<#C|?/1&oynChefQ.B9}+><~џD#> P@͒:C}exZI^i5X#4+[pM9d{W/߰e/xַx◄.i׃ZS].;2y.[HݎM~__

ꗟ ~?? Z׿#oOiS! WO+Mou1Wj- P^bk)-ג@v=|wkL~O,x=<./tWM62N;bDU}T8}E~9>7k߂~%"ψi5>.Ee'И4($ @⾌G[E>6/w#Յ]sqlU|br^:5so-OO!GssSC3mf(Kq9oQ߂[6: ួ>FŔZM&vl/Q]!mT +#fW öq +]<+ȁm#'[_5CI_o~"7Ų67qڍFVx m WoW?'7>'jZoSZ75 9K}R+[o[,w ^7׮`i'Rc~̟Y,/[Ŷ&h6W)1c3NӰqcd)Xǟ١>"X|)oF5ayoϧ {ȯ& +dPEPEPEPEPEPEPEPzu{=u 4kapkh;];N ~.eYi/ѕIks0fPc ˸Rm'[R/Xm6Q/$v~kbIi(p|z>,l:%`]0é +.-Yr'oGbM>,ִ& P\(cpqvTW<_X?],׈u?GP"˅ /%<0k_1 wX*ڒK4jǝ `TH2wh{3/?YWu{ڻ{j|+gXS̩U1fn!k+k.ɼ3 g?7o߇uYmUJn4?O^&$BYBz+O_.xr|Qc*$zoq}+79*/s\ܼ{?Z;a_b`s&~ 7O7pc6^6wZ;0YI5U>*jvWj~ {^jw+86i>l`_}<45dtXVkՈcd,&1JAlzV?j[K!x+LԐ!k[nu 8?2G \iY[OH#N\0u'^1Od$ƭkGqBuB$I@%l)x0gJ q +,ȡ0< Z)ѣ +Q5jJ +(3 +( +( +( +( +( +( +( +( +( +߈uvuB$h8%H8㑞Gբ?>࡟F7Ta-B+v&~W'd @?~.-~?hwyO>8-pC3p:|O'ƺkYmjbd_ȊP-K>OW xd# tQZ6sfqJ2W7aO>-n[=J53ǖnT??~+î}­%}BN*$ 0W|ioK4ڦ{ܠb"2qaВHu,ʫЄ&Ik'^K X\F/.joeemti+XuAo""ƽTOnk] ־1?MkQ*Osmؕ#׊?⛴K8uȦ=Sʸ$לk+]E#&nK+,3O(xw:_eX*6oNIh2RGaV<\}U8oD]a+LݬwZ/hdKHǜqֿGf.'m jÛKM,_N>v$A)lrk_[5ֽBnRИbc5?ܟ|;/x/Pi[Df#$^tgS(Ki(~vZ-|T|Ftβ,wm*m?u+);]uso ǯ t-3G\O'PX`Ү!{Fn'NyE߃O3M,t=7ş45Vˤʖ6B+Š?lv,@edp+<_2wƿ~̿e?m~$WfmX]ZǛ Ᾱ3%t sOu ;K276!Ѻ1`LGcMOrO ZMh;=&wU{LHG`{|DZu-rᯮm8n;VL8>!k: B=RJhӧtWnHVr e߳¹yᏇzNJڪXM}apy>[R8W|)'5ƣyog|S5Ԓ(QMQuV̻T+%j5xsĚoSBme}zRgXKYbEvnY9:cCuOŚ\ֱ42[YO"s5acUPLC w_~Q\xn,B0I,kaCz7`OG./>y3Β\ +̼|+yqੴ?xwLw1xatDN pN}s^EQEQEQEQEQEQEQEI +?/#pvv^ܸͨ5x$2PD X/%|NlZ׋dG |z Qcqf9W'?k *Z?Ʃm O'X~' 4j^]sKŐ"Kmѧy-=d@gB!10xsW ԾԾ9XH@SoɴRmxWſ +isAdD6"?ض>H=@s#T6Fi?^W.k{kKsMFGtgI[@1F o?|g~}kxSO=Jᣎ/LQ@mܱ@?1>(W_OI-ǯQòڵ8Yj+idm3-f}#D+u_6߃?;D/uQ5c{$r#C"iW_Z|H>[*oXUUq"&mYd[ ԊS]NMseO:Ě|uԼnu`˴E>R Oχ_׆ xi|3*OW> [ KVS"Xd*W:@ٵXh~:ܤޱ(m3NGm˷aWJee%0Y +2O$u=j@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@moF}sQ"jQhN]>fk2"cFy˷|KGWé[Hwq k1# 8f1I6~#NrM^۔ں% /ymGޕJ˦-,-u)'%h-m"i%r3qIxxP56`6q]UH*鶚m4n#+FoJt7[<l~u"J(xXݛvcmxb@$We\թ$=ԓ(aEPEPEPEPEPEPEPEPEPE6YVIQfcu$}\ykg71m*I-QUMZC,yqN9c9XZK[.cWh٢:SRGpAv"'iG]CF=($@7,BzuQEQU`{tF(@%WW#$tȫQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEWϺQk-֛y.OɎ(d]M(KHw>ݴʮ>(bQt4ICTܨ+yo>j~\ׅc5xnY!+%#cR SP3ֱC {aKhp byc'$ʶ*TQ/BeRRVgO]~'&7^I %Ӊbe+9RA=; ]pAx6(? +Kܫz ͳ.K3ю[B;+E龯9Fwh?;h^=tՆ’ZI2V+ DSPrLjw$v̒L!Ef$N{dԔW&ec1[7.EZbN1B(,(((((((((*> i~!#}y"RH"7wi@9<> %R?Os:,X_ H[J4N" +#O. ǀM~@?mOxº=/v7գZ:v- VcB% nez?gGhxNVZ(&.,R22ѮtyX'X,(^`_joٞ:&Jlɩ4zr׬AXXҺK~Q@>4lxsRLsխaocͧ^-MF Uv.\о./|R𕅏VšƏ&o-spifZ&dh)&$c_TPۗo>$-V/ kt{O>B68cqg?M u?Rx=f_OuP:Md,--V`c{.[WvR;~@~ĿhA 5I;ȿeXl7kk FR]OO袀 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(H~us)3ႾЧ!;;^KgwMyuѫJ1E;?Uf;Eԃ%F7QYMfXZωz hvwE[_i:C\ŋy$Fs*p'yh +Oyko*^ۛ.}?G'T)4c^ҠDt[iu +0븬'Ku{=Fb y6.sKɭZҌJPVWv]&[QYQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEpMaM.O[<-U_0g\FV+8ynחq ~K]6[rߴ}{n#ljbc`O2+_EQ^6CUƣӕ۵۫k]뜩?|T|)4=f+6Rđo|p2mUiL6)1%_h\xRK,--namPD;B)iPk+}_k ,ŵkKڷ1>cC}]jh]ˑYm68қF{ٌ 5* W|{'k Ѽ_ #עQ\mB.`}b{v~7w*z'7/k5E5nfc >p0q|1a|Eω:{wQhwEc!El-EǍܯl=X* S9h-WԬ帰6wxdc,Th"p +c8~7YGj cDK;iZ] WfHPdml(/▻gCԼ1cxzEw7[(8ymc;OğW2y&Z2>\Vy/z>$bdiF ]K"?'xGH1GwԲg[#Fѕ̧xOєPʾ>%xR@F]i֘mh+m6Vi15⻒<]Ǎ:|@|+mx5#֖]EQ']+j68FiaKI2h6v#{cwY@|HӾ$k:_a՚HIJ2m4 + ˟t>s>2xwv^l+VŴI +7wEYHmsl24^!Ѿ%巖A2ªE"NYϓ5JNekDEaT(8h|qxͯ'ckhMĢ EMʳ7+c-~?5_Ig4~ΖV1s5M,\&%Uˁs}^GexnerM lXF!:]6(|}Ţ\jRj6Zݶc%ŝYUvSB;ơX+;|'ux ٤)MVw3G˅;nI2UJ2aQW?⵮eRE./d[U&<,ʊ?}ƮU͟-xht۫XQ m$v-W9JבmrsZzG!zp@w35GL0>R9篤1@--~C+ږ} 1.li;_~((((((((((((((((((((((((ۗ>5j^K_YKHnfYQ=&(2 xomߏߊC,m5=zHWkG +BW߷jV[ fyJ1Msg[0h8z-Kg|={xw]v:w9l+(oCZ\v2|čqjM]ɧ~z0nv rF;-^ rvJ&nv dlDC m&-xJ+ |+O֦Ү2OGd6 p=Gt|Co fut~qTdwdgyvPvy-4 +'$z<}{5< \es ~` 慔ʦ2Gv$~׿Wº}?]Դm5準o.o4$Bjcpb'}n_nQ@o +'C&y& ZX5F $N⁰2@PȞ/d^ W)Nvp^EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEqEyow7Kd ЈaFpduS@5:gCk[?]koK" B8*21e$ a^C.Ӿ0 +j ]-%ǟ+`1#0$ +=Cɡm]Ag͒eIhC:l散q;p{~iAѯG{ݶݵrv6eku $ ռ]v77,-U9VF +c +Xľ)_:>n,6_I#1cde"kK[;?${e FPCAIO p^4jK_\ydXou6mհnFoe $S[wZuf3ѻD9u[D>#\j|c%[ Gt2M[ߺKs2K&Üs1C㯈zNy#Qv11љeW܂'7~ Lε)M-/&MA[1g^6!rD1~_ÚKIy(iR1"l;Y81,Hˣ +FqԃQF--o-,mas_heƄڌS_Y˭] V YhPi &Y<ʐ.l,|OOqw+Z"EȊeQ[eCɟ' [{VhusĪ倎0pb5_xcM׼gc2,v*#K[YhA$/ɻPU a)S*ac7^Z-r&|⿉=&/7Eض׍~IvIEvQ'÷>EUMSV^mzwqM+7p+((((((((((((((((((((((((((((((((((g)x|5'ؿZXo q|n^:Ws?~!Q(t+Jo$i˘ۍ(,OU~b2~si?f=>3YiE$/c$1aO˩H3_F"i3iz4*5mR=zKkxNX# $)yi!0[ Hee=9_2C۟h׊,t4.WOaVԉ[~퐘9ᵾiArC7#ӭS#FRq@TQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEe?k){A>7w=H_Ue#_Kx|MZ]7K&rm^"Bә1RG,r[),Yi>-G{}?՛XZ= Wbi#i &i4*@; p,jUYko_oikkkM4ҸHEff<$Ҧ:uZGR/.gyi,moF\I- e\?➧h~6C MּQI؛d.DE,F\>㜣ֵM_Q ~QXo$<4SIe i13lfRz +دlp=4 +((((((((((((((((((((((((((((((((((( +~ &-"mCU4q[b@q_<G43(x䍃+s\Ə|A;XإAwC""X~x`Ua|MeMZ H拾$(KHw/0 Z09~ +ԭT7uw9JI+@[v9Ym2>Ee/%__w-J+0-`kn?eEi"Ok7-Fbшb~[?fmoZỻngvH@䓒V@$uSʲV'{egѾGe>v'Ze}|WṆp֖E58)PGPUrAa" ly4w1=Iy6=xYf66;cyq5t!$_3xbÞˏ~ }&=Bm%S;.IWWFV 3FK Qɻ5^_-BR;;Xi_Yq3"$RLϻhkC񦅯smSTWMvej e$xy3P=~Z9;$dfmV !O3T>K}ɍ6&U{MVi#i!Xe2:Xu|пe/^4jWZڑH`a 0yϓ2#K) PBREOբk1VH1̲_ jOx_uY$w΀n_G'4o:5/z* b?آDU!#i dI4L;xA]{J[o[<Ib$jx"@ph /⟆uɖ;75 +_#fb8 浭k[˙!Y񤁙9#9>~|Ag ^t^{{xe(ȈU8H*,z?W>K%Xh ^qtH " R@>ⱇ̚HI R@_oiڔ:Km^C^ksmƷJW4Z]qn%~şAxRk_j:jhoQ?/sͺ-Nݟ)v|-dy#T#TQ$%|a&|B=u777/-9-ˋ, ~+|qO=sMX Ac12F*ipisgl6.@=ʣ(&9$$Yi|O|cxėzğMg6vvpxIU2Z݅G/%?_G|]2okx㴸ZU +&bpmÕlF!͟,r8ԼG%ŏCk% t,zXrArKc+ >"9 .c#i<=+e9#H$ 8=5ơ%m^^eMnm*l@eHW/%|bR}6}aZꉨM 54hrOgVvy7WqX۴I1/w`&b|n#6]^;3A,rʱB$S*ֵ'Y,#M.]K/y77 4%i%I$<pbPڵ>CZ 6uQ]܆%WdL,R;VkRmK!BM$j"7KiFi28f>cy''!F/WU񮫭Zh@'YndXbʞBs3 ̱ CSz?hz /X%[׆]H3W<`pݷ8:|#k{}W m3F], 4Jʾ,_Mc-ռ,S4J92I# *|B{|^Ƶh ")'RZm|jcl2.(>ҷ!_yǙ8ݷ񞙨~Eơ^i}eW՝ +=ɯ|-ߣv"WJͼa$fyTyG+?,!W$_O^7ϋM=[S4{4e&6tD2+t3SUp +Ju-`.+$ yݴFc" t/%W/WGt䲼㿺nE>0i\1LZuɍދC$Iuqua+}8c+9-;Q4{Iẵfh\Y+/.䴌yn9l1sXdW˟uf>$I%q+ 6 jPWĻXPBs/p: +٦+rW>ӴaȊ?2 5WX䅵 ;`L dcEFX>xT5n:&%UdC|oX۪V#Z/|5MjĚ[&4ɐ8yw!@צ[j2{FijʪGlQ7dv kZ̗>vw-S,I"dX}W|:at>^ nFZMHY~m̪̾Cf((((((((((((((((((((((((((((((((((((7+|"SNN7Maq$I!oe+ʋ9\d~ Ϥh_]cWR YM)GIx:Χ3VfEŬBy GenO?t7M-@VImT9vmUpN7@EyOuO YjZ.ԄbN.yz[d/$UWҞ4>$FA Vc$G).G&;( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(<73_t!|G'%sN['Crey;w}g4']ͻŊb^'|2N%H)۸f }Q[gm_> ci4y1a,|˓`q^_ NJ,@H/"Of[F͆H#n<ƭˁ9ٻM#wϥFgmg sB7K>XZ +N&/-\Xڥ6sʔ(s![ ? xnnZSI'{ ](~;Z߅tﴽJiO繳kCvy>gKBI)V2p4+<ľ#TԵ-{ls OZ-vmա@{'lvnEDWq/5'gi:ZYid]\=6?j t`{©v},S譺Z\yl Ҹ~Ξ'ûK?>MAp|Bu{X33yv().c= R4۽`AMh~oGfU_\IJ ߽Aq+ d*uP^5k6]d^Ǯ@hm#L"VSP|A>x85m>G6u}ewj'BfI弭?w.W޳O,OqcC=A,wOow5ђ&oM=44nXu[yQq%d/}R@r@_x6ׁ_4cX۴F(5,@d9@-=;|i7m{XPBacd[ne jv` Z =ɴIbVcl6Bä۩oIKH#h 7!0|+u{J6Wσ{AotUekg/;Yᕣ`UԀT*ֽOڽίc (gv$>cUЕ9)kYpV]K.7|J/⫪>,HZ~g'=#<粞MKcꗷ6ַm(Wx<8*x=}+Ji]s+wį*+08]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.7|J/⫺8]K.<(uqطE{}֕QE_cV|9|3]iZLnD2I itH^26Fs_;H8~3|}Zwm%x5˓4dH|6XҤ[{vC@i!=X9Ml?3[Hʑ~6:0"#(Y}W$^/3M]_{+^0QG:"oKwĚw̒! +Lj<j-R~4i>l*5̷fs" sDh3&$N=ꮏZzL>am[h5 y>}ET` &Ē~Ƣ&q$/K6ݾ'mtWCoSd,Gqo,w:J31h k2H+]>,x-rf&4ͼ\;;2?BAXVnxM~jsM5'UqTp%$ +(, +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(CM ̱J4,;Ff,n1 <=ejPO-Q ]˿1LrZ4%rTTTT6$NVf_Q'-gGY]pwsqE^*:ַ3nݮntU(qQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ \{W>) +(CUXkO3G" ZZ( Wc?j5k ik9D5_4!լ5j?CV֟f +(CUXkO3G" ZZ( Wc?j5k ik9D5_4!լ5j?CV֟f +(CUXkO3G" ZZ+~ 'a.tUm9,7Λv-fߙ_j5k ihCUXkO3^OڇFOKaĐh(,>Q%#1Ģ8cD'G'.WÍtxLy4KFcmKNB/!X1 o4(QU>CUXkO3G" ZZ7.Ӭu ?ZXYYF+J7co'n {i PTK7F:ؤ=ȤJ-" >n`fCUXkO3G" ZZ4m┘ ZcE&wQ-n~.W->3_oKZ^iVBB27n2ΊpL Wc?j5k iks?Hx} u |>m< oVKgo93y##/\xA$OFյ +J"(asaJ|EBc@el~0<%%9Ɵg*4La;=Q&D927" ZZ?j?ׁ?O>.;Zx~ZM:%*EX;zDI/`m֎MqvF!ڈTb/&uw}>8m!?ؕ+]+0ʺq'|{TӴhc}l7[O4UH$\d +!E|^^֯ G4Y[]Ico"5e#`˥+ y[fǟ +.mjFMGڝrxQ'ȍ0_EQ[FeغrQwjw_g3&O[C(dOL#XYAsd!U Ea{ڶji.5wl-T#bniWgרϥ|}?xþ:/sۿkHl +dsk>oW:ݽk}=!5Dž~twFm21@9*c˯n3_5; ++YFMJf !-i @Ȅx]\h1=/ZH_jPͦJ +/eg +TR*jJ OOHҴۍk>",wM2DH[ +XaT3KtWCh!d'of yH^y$V +/ +QQVuW96uI|P6QAjeZRl;c2bx-x_L[QB^>X7͸.'QXVBt#mﲷb%Q8 +((((((((((((((((((( +endstream +endobj +36 0 obj +<< /Length 4624 +>> +stream +q + +456.75 Tc + +0.0 Tc + +456.75 Tc + +0.0 Tc +/DeviceRGB cs +0.1333 0.1333 0.1333 scn +/DeviceRGB CS +0.1333 0.1333 0.1333 SCN + +456.75 Tc + +q +456.75 0.0 0.0 346.5 48.24 459.39 cm +/I4 Do +Q + +BT +48.24 462.063 Td +ET + + +0.0 Tc +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +2.0116 Tw + +BT +48.24 435.5886 Td +/F2.0 11 Tf +<546f206675727468657220746573742074686520736572766963652c2072756e20746865204c6f63616c54657374436c69656e74206170706c69636174696f6e206173206465736372696265642061626f76652e20546865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 421.1141 Td +/F2.0 11 Tf +<636c69656e742073686f756c642073656e6420646f63756d656e747320746f2074686520666f6c6c6f77696e6720616464726573733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 394.6397 Td +/F2.0 11 Tf +<687474703a2f2f6c6f63616c686f73743a383038302f646b2e676f762e6f696f73692e6578616d706c65732e736572766963652f73657276696365732f54657374536572766963652f6e656d68616e64656c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 368.1653 Td +/F2.0 11 Tf +<4c6573736f6e3a204164617074696e672074686520636f646520666f7220796f7572206f776e20757365> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.2049 Tw + +BT +48.24 341.6909 Td +/F2.0 11 Tf +<546f20757365204e656d68616e64656c20796f752077696c6c206e65656420612066756e6374696f6e2063657274696669636174652e20412067756964652028696e2044616e6973682920666f722072657175657374696e67> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 327.2164 Td +/F2.0 11 Tf +<6f6e652063616e20626520666f756e64206865726520> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +174.597 327.2164 Td +/F2.0 11 Tf +<687474703a2f2f6e656d68616e64656c2e646b2f76656a6c65646e696e676572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 279.8077 Td +/F4.0 15 Tf +<332e332e204372656174696e672061204a617661206b65792073746f726520666f7220796f7572204e656d68616e64656c20636572746966696361746573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 255.3735 Td +/F6.0 9.975 Tf +<4d69744944206365727469666963617465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 237.2213 Td +/F6.0 11 Tf +<546f20646f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 211.7734 Td +/F6.0 9.975 Tf +<46756e6374696f6e206365727469666963617465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.7426 Tw + +BT +48.24 193.6212 Td +/F2.0 11 Tf +<546f206d616b6520796f7572206f776e206b657973746f72652c20796f75d56c6c206e65656420746f20696d706f72742074686520636f6d706c65746520636572746966696361746520636861696e2c207768696368> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.5498 Tw + +BT +48.24 179.1468 Td +/F2.0 11 Tf +<6d65616e73207468617420666f7220612066756e6374696f6e2063657274696669636174652073746f726520796f752077696c6c20616c736f206861766520746f20696d706f72742074686520d2545255535432343038> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 164.6724 Td +/F2.0 11 Tf +<4f434553205072696d617279204341d320726f6f742063657274696669636174652e20596f752063616e2066696e642074686520726f6f7420636572746966696361746520686572653a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2588 0.5451 0.7922 scn +0.2588 0.5451 0.7922 SCN + +BT +48.24 138.1979 Td +/F2.0 11 Tf +<68747470733a2f2f7777772e6e6574732e65752f646b2d64612f6b756e6465736572766963652f4e656d49442d54696c2d507269766174652f50616765732f5265706f7369746f72792e61737078> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.3269 Tw + +BT +48.24 111.7235 Td +/F2.0 11 Tf +<5768656e20796f75206861766520796f7572206f776e2063657274696669636174652c20616e642074686520726f6f742c2072656e616d652074686520726f6f74206365727420746f206861766520612066696c656e616d65> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 97.2491 Td +/F2.0 11 Tf +<656e64696e67202e6365722c20616e642072756e2074686520666f6c6c6f77696e6720636f6d6d616e64733a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +501.598 39.505 Td +/F2.0 9 Tf +<506167652034202f2035> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +37 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 36 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/XObject << /I4 35 0 R +/Stamp2 72 0 R +>> +/Font << /F2.0 11 0 R +/F4.0 20 0 R +/F6.0 41 0 R +>> +>> +/Annots [38 0 R 39 0 R 42 0 R] +>> +endobj +38 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://localhost:8080/dk.gov.oiosi.examples.service/services/TestService/nemhandel) +>> +/Subtype /Link +/Rect [48.24 391.9667 506.368 404.8697] +/Type /Annot +>> +endobj +39 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (http://nemhandel.dk/vejledninger) +>> +/Subtype /Link +/Rect [174.597 324.5434 356.185 337.4464] +/Type /Annot +>> +endobj +40 0 obj +[37 0 R /XYZ 0 311.7577 null] +endobj +41 0 obj +<< /Type /Font +/BaseFont /2cc957+WorkSans-Italic +/Subtype /TrueType +/FontDescriptor 86 0 R +/FirstChar 32 +/LastChar 255 +/Widths 88 0 R +/ToUnicode 87 0 R +>> +endobj +42 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://www.nets.eu/dk-da/kundeservice/NemID-Til-Private/Pages/Repository.aspx) +>> +/Subtype /Link +/Rect [48.24 135.5249 499.9 148.4279] +/Type /Annot +>> +endobj +43 0 obj +<< /Length 6986 +>> +stream +q +q +/DeviceRGB cs +0.9216 0.9216 0.9216 scn +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 764.4 l +547.04 762.1909 545.2491 760.4 543.04 760.4 c +52.24 760.4 l +50.0309 760.4 48.24 762.1909 48.24 764.4 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +f +/DeviceRGB CS +0.8 0.8 0.8 SCN +0.75 w +52.24 805.89 m +543.04 805.89 l +545.2491 805.89 547.04 804.0991 547.04 801.89 c +547.04 764.4 l +547.04 762.1909 545.2491 760.4 543.04 760.4 c +52.24 760.4 l +50.0309 760.4 48.24 762.1909 48.24 764.4 c +48.24 801.89 l +48.24 804.0991 50.0309 805.89 52.24 805.89 c +h +S +Q +/DeviceRGB cs +0.0 0.4667 0.0 scn +/DeviceRGB CS +0.0 0.4667 0.0 SCN + +BT +59.24 785.683 Td +/F5.0 9 Tf +<6b6579746f6f6c202d696d706f727463657274202d6b657973746f7265206b657953746f72652e6a6b73202d616c696173206f6365736361202d66696c65206f63657363612e636572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 773.938 Td +/F5.0 9 Tf +<6b6579746f6f6c2096696d706f72746365727420966b657973746f7265206b657953746f72652e6a6b732096616c6961732066756e63209666696c652066756e6374696f6e616c2e636572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.2 0.2 scn +0.2 0.2 0.2 SCN + +BT +48.24 716.45 Td +/F4.0 15 Tf +<332e342e20436f6e6669677572696e6720746865206578616d706c657320746f2072756e206f6e20796f7572206f776e206b65792073746f7265> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 690.9893 Td +/F2.0 11 Tf +<53746172742062792072756e6e696e672074686520666f6c6c6f77696e6720636f6d6d616e643a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9216 0.9216 0.9216 scn +52.24 675.5306 m +543.04 675.5306 l +545.2491 675.5306 547.04 673.7397 547.04 671.5306 c +547.04 645.7856 l +547.04 643.5764 545.2491 641.7856 543.04 641.7856 c +52.24 641.7856 l +50.0309 641.7856 48.24 643.5764 48.24 645.7856 c +48.24 671.5306 l +48.24 673.7397 50.0309 675.5306 52.24 675.5306 c +h +f +0.8 0.8 0.8 SCN +0.75 w +52.24 675.5306 m +543.04 675.5306 l +545.2491 675.5306 547.04 673.7397 547.04 671.5306 c +547.04 645.7856 l +547.04 643.5764 545.2491 641.7856 543.04 641.7856 c +52.24 641.7856 l +50.0309 641.7856 48.24 643.5764 48.24 645.7856 c +48.24 671.5306 l +48.24 673.7397 50.0309 675.5306 52.24 675.5306 c +h +S +Q +0.0 0.4667 0.0 scn +0.0 0.4667 0.0 SCN + +BT +59.24 655.3236 Td +/F5.0 9 Tf +<6b6579746f6f6c20966c69737420966b657973746f7265206b657953746f72652e6a6b73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.7777 Tw + +BT +48.24 618.7699 Td +/F2.0 11 Tf +<746f206c697374207468652063657274696669636174657320696e20796f75722073746f72652e20596f757220636572746966696361746520686173206265656e2061737369676e656420616e20616c6961732028746865206e616d65> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 604.2954 Td +/F2.0 11 Tf +<676976656e20696e20746865206f7574707574292e2052656d656d626572207468697320616c69617320666f72206c61746572207573652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +5.7866 Tw + +BT +48.24 577.821 Td +/F2.0 11 Tf +<546865206b657973746f726520757365642069732073657420757020696e2074686520646b2e676f762e6f696f73692e6578616d706c65732e736572766963652f576562436f6e74656e742f5745422d> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +211.645 Tw + +BT +48.24 563.3466 Td +/F2.0 11 Tf +<494e462f73657276696365732f54657374536572766963652f4d4554412d494e462f73657276696365732e786d6c20616e64> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 548.8721 Td +/F2.0 11 Tf +<646b2e676f762e6f696f73692e6578616d706c65732e636c69656e742f6366672f706f6c6963792e786d6c20666f7220746865207365727669636520616e6420636c69656e7420726573706563746976656c792e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +1.6765 Tw + +BT +48.24 522.3977 Td +/F2.0 11 Tf +<496e2065616368206f662074686573652066696c65732c2066696e6420746865203c72616d703a52616d70617274436f6e6669673e20636f6e66696775726174696f6e20656c656d656e742e2052616d70617274206973> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +0.5592 Tw + +BT +48.24 507.9233 Td +/F2.0 11 Tf +<7468652057532d536563757269747920696d706c656d656e746174696f6e20776520617265207573696e672c20736f2077652077696c6c2074656c6c20697420776865726520746f2066696e64206f75722073746f7265206279> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 493.4489 Td +/F2.0 11 Tf +<616c746572696e67> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 466.9744 Td +/F2.0 11 Tf +<3c72616d703a757365723e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 440.5 Td +/F2.0 11 Tf +<746f206f757220616c6961732066726f6d2061626f7665> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 414.0256 Td +/F2.0 11 Tf +<3c72616d703a7369676e617475726543727970746f3e203c72616d703a70726f7065727479206e616d653d226f72672e6170616368652e77732e73656375726974792e63727970746f2e6d65726c696e2e66696c65223e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 387.5511 Td +/F2.0 11 Tf +<546f2074686520706174682077657265206f7572206b65792073746f72652063616e20626520666f756e64> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +280.758 Tw + +BT +48.24 361.0767 Td +/F2.0 11 Tf +<3c72616d703a7369676e617475726543727970746f3e203c72616d703a70726f7065727479> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 346.6023 Td +/F2.0 11 Tf +<6e616d653d226f72672e6170616368652e77732e73656375726974792e63727970746f2e6d65726c696e2e6b657973746f72652e70617373776f7264223e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +14.2023 Tw + +BT +48.24 320.1279 Td +/F2.0 11 Tf +<5768656e657665722052616d7061727420697320696e206e656564206f6620612070726976617465206b65792c2069742077696c6c2063616c6c20746865> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +4.5619 Tw + +BT +48.24 305.6534 Td +/F2.0 11 Tf +<646b2e6669726d612e6b6c69656e742e776562736572766963652e505743616c6c6261636b20636c61737320666f756e6420696e20626f74682074686520636c69656e7420616e64207468652073657276696365> Tj +ET + + +0.0 Tw +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +48.24 291.179 Td +/F2.0 11 Tf +<6578616d706c65732e20416c7465722074686520636f646520696e207468697320636c61737320746f2072657475726e207468652070617373776f726420666f7220796f75722070726976617465206b65792e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do +0.1333 0.1333 0.1333 scn +0.1333 0.1333 0.1333 SCN + +BT +501.859 39.505 Td +/F2.0 9 Tf +<506167652035202f2035> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +44 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 43 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F5.0 34 0 R +/F4.0 20 0 R +/F2.0 11 0 R +>> +/XObject << /Stamp1 71 0 R +>> +>> +>> +endobj +45 0 obj +[44 0 R /XYZ 0 748.4 null] +endobj +46 0 obj +<< /Border [0 0 0] +/Dest (_introduction) +/Subtype /Link +/Rect [48.24 758.873 125.757 771.776] +/Type /Annot +>> +endobj +47 0 obj +<< /Border [0 0 0] +/Dest (_introduction) +/Subtype /Link +/Rect [542.75 758.873 547.04 771.776] +/Type /Annot +>> +endobj +48 0 obj +<< /Border [0 0 0] +/Dest (_prerequisites) +/Subtype /Link +/Rect [48.24 741.57 131.796 754.473] +/Type /Annot +>> +endobj +49 0 obj +<< /Border [0 0 0] +/Dest (_prerequisites) +/Subtype /Link +/Rect [542.75 741.57 547.04 754.473] +/Type /Annot +>> +endobj +50 0 obj +<< /Border [0 0 0] +/Dest (_lesson_create_a_rasp_client_and_service) +/Subtype /Link +/Rect [48.24 724.267 283.079 737.17] +/Type /Annot +>> +endobj +51 0 obj +<< /Border [0 0 0] +/Dest (_lesson_create_a_rasp_client_and_service) +/Subtype /Link +/Rect [542.75 724.267 547.04 737.17] +/Type /Annot +>> +endobj +52 0 obj +<< /Border [0 0 0] +/Dest (_the_example_clients) +/Subtype /Link +/Rect [60.24 706.964 189.391 719.867] +/Type /Annot +>> +endobj +53 0 obj +<< /Border [0 0 0] +/Dest (_the_example_clients) +/Subtype /Link +/Rect [542.75 706.964 547.04 719.867] +/Type /Annot +>> +endobj +54 0 obj +<< /Border [0 0 0] +/Dest (_the_service_example) +/Subtype /Link +/Rect [60.24 689.661 193.285 702.564] +/Type /Annot +>> +endobj +55 0 obj +<< /Border [0 0 0] +/Dest (_the_service_example) +/Subtype /Link +/Rect [540.627 689.661 547.04 702.564] +/Type /Annot +>> +endobj +56 0 obj +<< /Border [0 0 0] +/Dest (_creating_a_java_key_store_for_your_nemhandel_certificates) +/Subtype /Link +/Rect [60.24 672.358 395.443 685.261] +/Type /Annot +>> +endobj +57 0 obj +<< /Border [0 0 0] +/Dest (_creating_a_java_key_store_for_your_nemhandel_certificates) +/Subtype /Link +/Rect [540.319 672.358 547.04 685.261] +/Type /Annot +>> +endobj +58 0 obj +<< /Border [0 0 0] +/Dest (_configuring_the_examples_to_run_on_your_own_key_store) +/Subtype /Link +/Rect [60.24 655.055 381.704 667.958] +/Type /Annot +>> +endobj +59 0 obj +<< /Border [0 0 0] +/Dest (_configuring_the_examples_to_run_on_your_own_key_store) +/Subtype /Link +/Rect [540.638 655.055 547.04 667.958] +/Type /Annot +>> +endobj +60 0 obj +<< /Type /Outlines +/Count 9 +/First 61 0 R +/Last 65 0 R +>> +endobj +61 0 obj +<< /Title +/Parent 60 0 R +/Count 0 +/Next 62 0 R +/Dest [7 0 R /XYZ 0 841.89 null] +>> +endobj +62 0 obj +<< /Title +/Parent 60 0 R +/Count 0 +/Next 63 0 R +/Prev 61 0 R +/Dest [13 0 R /XYZ 0 841.89 null] +>> +endobj +63 0 obj +<< /Title +/Parent 60 0 R +/Count 0 +/Next 64 0 R +/Prev 62 0 R +/Dest [15 0 R /XYZ 0 841.89 null] +>> +endobj +64 0 obj +<< /Title +/Parent 60 0 R +/Count 0 +/Next 65 0 R +/Prev 63 0 R +/Dest [15 0 R /XYZ 0 495.8084 null] +>> +endobj +65 0 obj +<< /Title +/Parent 60 0 R +/Count 4 +/First 66 0 R +/Last 69 0 R +/Prev 64 0 R +/Dest [15 0 R /XYZ 0 357.9967 null] +>> +endobj +66 0 obj +<< /Title +/Parent 65 0 R +/Count 0 +/Next 67 0 R +/Dest [15 0 R /XYZ 0 275.6083 null] +>> +endobj +67 0 obj +<< /Title +/Parent 65 0 R +/Count 0 +/Next 68 0 R +/Prev 66 0 R +/Dest [31 0 R /XYZ 0 841.89 null] +>> +endobj +68 0 obj +<< /Title +/Parent 65 0 R +/Count 0 +/Next 69 0 R +/Prev 67 0 R +/Dest [37 0 R /XYZ 0 311.7577 null] +>> +endobj +69 0 obj +<< /Title +/Parent 65 0 R +/Count 0 +/Prev 68 0 R +/Dest [44 0 R /XYZ 0 748.4 null] +>> +endobj +70 0 obj +<< /Nums [0 << /P (i) +>> 1 << /P (ii) +>> 2 << /P (1) +>> 3 << /P (2) +>> 4 << /P (3) +>> 5 << /P (4) +>> 6 << /P (5) +>>] +>> +endobj +71 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 162 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 54.0 m +547.04 54.0 l +S +Q +Q + +endstream +endobj +72 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 162 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.8667 0.8667 0.8667 SCN +48.24 54.0 m +547.04 54.0 l +S +Q +Q + +endstream +endobj +73 0 obj +<< /Length1 8180 +/Length 4538 +/Filter [/FlateDecode] +>> +stream +xX{l[y?KR^$Rʗ"-,YۊM^-Yb/e?Ѻd@7!MCǡtYdnc˰vXXnŲs)Yv =9;=gffc/dD&SO +kPކ/95)W9WG1diQvjBU~?K6הu(``dz(] ZfJSX`N6sM6N2E%a"gvuaVn(J+Χxz񖥿ceU!dRZVqM:xm*LV8嘴1B_]ݕ 6gMmmism~wݸ}a`O+ ζRk)FfF7C0 x ƺ6yIM`m[{{k멶ۍ]J۶`Ш=^o+OMg\4:c=^;yc^=ucm=a Q K5GLUc6.!<޻ɣ͑-{X7ѻHp>Բn*?cSn 啛w:CenGT5Rh*d#2CeÛʾ{wOR|,E+qUZ6gvm )éV]Q.hcid٠/ڰ K> LG=jt0azP0^fvk+%Pݱ VwK5]]N]X‡6]W<=ެԞ_=F`sPQgW#zRgqWo}c>gDLXiLZvw!}r&1,f1r b( +xP>oJ{voro?BϑÉD:ps}hFd(Y>aA)K'E>8KI D&m75146 s + r`wWbiaۮ=ŻvxՐ5` MP** |_47Ln۾;v';fюE#;o97Zӹaώ#=c~_]ۓ)%טz9Swr;٠/ J1(N-F*Jx`CSW*+8zubif/܇ 9xY|PXU6MTuU-,R0JA煌*pӫ/M]-[9tk7tŇ⦅w7l|o]q_}o7z;GP@@EpQLvkHujkUӧzGJxWިϼQHpg|YUV +V PvJG"Uœ *JtXG†24g mV'~OEf(1(ϲ #u>%~c2?wاD+^`SX;c[e3ʋJހ"FT5㬅GI +ݿ=:{OmC^xOu&y'J.LO+k6Q8bbi_=9#oB?IR +ќ1h ʺp+h 6nvЙzW t1o] +J}.gXvjRv39laiZ_V|uv+k{07+Acg6.{E6NkSB slOcg{Y`<5un~%0v"5 ]y/"}jf;!}v֒_OrV[s<ѹ=…B̙ع鉇 ~B%HBLc_ aWűrD"K8#S?Mpx(C,vYV.2t?$jɃH00[a,{P5YMv.2P Kzs2.d#҆iߧ?_ZYpNQpFc]*/Yc],}Zkq[콑TӂQz\9bb6u$mr&9w)h69EyvڞwhJ&c{kQW,Zu`E u)ʩݹ ~PzO!}'#](Q?+)mκeS5uFSIa?p8%Dc:sR_M %7N~҂ō;279Oai%xB)P#)-t1#ɫ4aׅDرU[vl"cRb +䌅`S n]P{+ke{!Zc,/+Cw]^.#԰oR+Ex5v#vk{L<1Sl-618HV4""8.S~-i,)A OgFc;f2{|>eU`g 3JfC~Kz*{APU U~U ):0$ {]FkФI{;ha D w\!WOqx8H> +endobj +75 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +76 0 obj +[276 587 587 587 587 587 587 587 587 587 587 587 587 385 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 749 587 587 587 587 587 587 587 319 527 587 587 587 587 842 726 587 731 629 602 587 587 587 587 587 587 587 587 587 587 587 587 607 587 587 587 587 587 587 587 289 587 587 289 587 587 645 587 587 420 515 424 681 578 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587 587] +endobj +77 0 obj +<< /Length1 15740 +/Length 9653 +/Filter [/FlateDecode] +>> +stream +xz xcW}9GeٖͶ\j-Y^$Y-Kؚ؞x̒BB6]PB> m B{@IB+#߹W2m9?PBH i%ѕ˧xq='] D|jo.(p9v'n-$ ck˺ƸӬ Ľg;~~bo>Bk_ZZ}~ӭVBaӝ_j͟GN=X;!Զr9qo!FZ;(arREbcIi\n!VGEeU/khl"~i‘hgWwOo_@l0JRp%c l$*# 1z6= +Ud3*ڣVuj]٤V/̢2 zuIt]V8עLA:)#+BRf wPK0>Y_?c}Ofg|O_}1ŪkͣdӴK*?hsEr-33|lhM[LbD4 Sv(To~>^*1;︗>M'wLEJ}+MkJ7d1$ͱ&[^~2FՠgL)YB$%ebB2aHZL=}ァo瞛#hD6sry!稆G}<[$d9=jYUsWiNghVvo2 [aEX7CD8RMO6rCX "Yg!*|NlU.R2BB]l Qu5*g +RGbz0(BB⢶Ajv=eԥ3.9C#aQ\HOdrGamB01G7v'b: My#9\&reԈkvڊQ[(M?tbö=xHWPSSM39~#3b3p̅DGO,2tQ5"J f굊CpAfK^f:ï;s~? uwlSbL8q^Ĵ.Q,|: SEue+w1{/93"nh[DRef!V>zʴ:&+oN)h:%yfc6J]B]mM]5Ƞz%[91}%@{mQb2q'686uU & 3P)wsWnS)2#/ȻTx"; * 7M|PD!i/ ŷVr!Fr&0ӗ/[Gs;&f. +6K!B<] @oudi2OZOjp@Q + XV+BXhQQPE-E{CߣEq; }@(?u +x*;;#GweDQ8A0j(Q +Qu|fvf%UP0U|] c~{'O)ۻ +)la3Pݝ +ɩ,t,)Cɕb6wZ1/xj$ _; +/#SlkyVlYFj$K4oKtv$`rddm_\xn?'aE4_"c%pj,0arLɤh3VO( pG>Vlovh-|.O65}R s?~ ᣲ#*SP >^^.GUJ3~b_,c 3Pn5k:t\Uh<;#;A\t?Y|^ЮS -Jby,ӛ s$BBƆjEdzuׁ@V.T + +6OX=5)(تdQNlhxo{)0 +]VP t#^Hˣ3DR'OҜn 5mqh{A}[fc񍤞7$EJ=? JKTVZvH}E_8uT X[}dp|v&f":pNmOHf{\yk!sZ]| Q1 t#<-q&v*o/\.:hpTz2f,Nonk5IۀgAzјxX?2owBpz;!Yt׳ a2GGȏoh?~y1eUjeuzB#W4fMk7+۵OicvjmGkhR')KҞ#eϚ̦QL?5טG̟6?o.,΁?wHj ]uѧI5;I齤 .?[!"l 6!v$ia0. bu_Fn\q=m@A^ρu9@e'ժ/7%󤏝%Y+FI7}/pݣ԰IVpde$@ u}Q5DFjv)Xx/^ԽS`D;?| mS R~: e>yaWf /fZbUY j]iӳtI#CW4Z24D$$2 +X/JKڙ} R)5d$YV"v\J$!]Kf$aHKt5KzEexB$&UBbًd$W%ueFrUxRW e `LHfa-{N: -דD) +ҋIw$+II\pI*Ovz)AW R':YaCE R+o/fHҲ 2 KCXr.ANHK2&V$2 4Gvޙj9T^~DV8Ƴr8]]<Yal @YODfA҉qI/ơ<,ieqCp\]B>tKI`B$\Z$4q.OgĬ++H9\4KT_kRV01,G$B$]ST8`KM |)(KC2RHƛ\[SmHFe $$/\+D @%T+.)KO6k;* ])A1*Nѕm6KJC͒)TAc|АdwӸ32c",2Xʒ9$\Z$3,ҳ ա[*Y/6K@zj!=t:])O-l'$~r0F2KvB XA|7~ Ʋ& +SyO aVۨpy%$*Y[ ,9 q!)JDLъ%LEEh!xK +B0a͒#Ay[2mU`C[g`C5 okz6xEH%\=ݦY +o ެ 6n Qo0iWN\O]"x?6?6?6?Bl-,[$ ѥ[xcok@jK-p6İ6j;E+s^F6MOjkP[rёs! Ly)8ɷ !-?+'~s#Lm ܘ~xrg RB *"vylhG/]L~:)Y!n1q#m`W"'k ^œ=ф27iW^MU6C[SK6q.񰧤'ubiU4ȮV'xȻeD c+x2$U0 અC-bFNw>nC-B@ƛ 1m Iy<%EDșQ$-مЋΩw +*$w;E7Dn;(IԵ+Y.8RLIBƉ*f +5:D" uۂC qSo +VIdؖwn)҅K f8N+c C: p曀son6^G)3 +endstream +endobj +78 0 obj +<< /Type /FontDescriptor +/FontName /132827+WorkSans-Regular +/FontFile2 77 0 R +/FontBBox [-216 -337 1283 1100] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +79 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +80 0 obj +[341 500 403 500 500 500 500 500 350 350 500 500 266 510 266 437 622 390 583 583 611 582 608 561 616 617 296 500 604 604 604 500 500 660 653 686 721 638 610 724 500 296 566 500 598 854 734 748 610 500 665 641 604 708 648 961 500 572 500 500 500 500 500 539 500 566 627 560 627 577 393 532 619 266 266 567 306 953 619 600 627 627 408 527 419 617 520 836 533 516 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 430 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 341 500 500 500 500 500 500 500 443 443 500 255 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +81 0 obj +<< /Length1 12232 +/Length 7394 +/Filter [/FlateDecode] +>> +stream +xy p[y9^< $AR@A%HJ|H"!!zX*"eIQD豓&YNwNR8Nn'NמLn}ʹFdw#ps/@t;K p{\J#o,/^wC|Zsܵ7V@WB<:T\7 ϑׯ+RkO^)ޣǛ^v XHړ{oŋkjP<߹?&Dk,}칋񮋗V.vx.w_R^zz]q|v oK ׏ H=t#Du4e$&5WaI+&6cj눿qhpK#ɭ8]>TK6J=e2H"E jv62p#I?[o Opк~L#"uY/H((1H,ȕMtgK--~! E"`${H h47 ytm#⍬9:2z!< dREiӡh/aHM퉛֙7t?duu!|@r Lpfa E]tRRyTC͍>wd 1ݑP8 *oN=@53m]zy 5b[mtXGwuɁKp[ny@Os6rPBi,k'֞ єn?~Q?{ZId;&ЦDd4ԚSQتu6&XhӁtWWƙrܲ;ddoJ9-ٳjuC0v+˯mzRי -af+ l$#\f yll !Ӫ3Bxfj0X|5g) a d凿j#ҧ+wOy$< x>{vA` kX$C0,VO7נYvvΰ'>35 S58F3]3ޮGf_}WgS=T}';{/6@gf=<Ԧ3Cx 8x9d\0bNi'l$Mk~ɍ_;s}!LF:UݸpzJWJǯȮOL/kR~RuilHT y%8RЏ6VW5,Ҝ XcMDcVV i{z)7vn}0Q٧]*=9ÓB>>`%uajjwjCjT PMN;7%{:O[3|[Y]E\G}GᙓJ|z![o"' R9nPEkI͟m"fDvQBjq:,.l2j6irm%N]|_ޞ6+OCo'wJ_qu<n#BY3$:6Iu;- ڑ81Bǎ1Z̶ejRO= r޹H5Й4{AKg~dD7lpʵuAscul,dK(~i e Cs-O-_WVWF $hI*RwF\”$x 6-r>גJ%3t:!2"R*9t%^vs'2.,wK>}TkjxjsH5t06[g0;l%JvYC}o]m#ơ0{ YSYA=3Nτ"Z2 ѓ"35?9eQWʔ4=WYC7uf7 p0 ʉEz!>0Uݴڏd2Ά9<y[zݽ`}nf}Ƀюfn($ntc;} \tXsYRWN]N#'z,Ϛ;ZC] `c_ɪ'fi)oX:=no ggz;<@azeGE<VmZ;P/@^)ꀪT7P. X7w݃{'īЙx#̡/cA2G 4J"xȍ$uVҠa5 tйȄlvmS݌>Nr=Lh}`P{&j>nJ4554l@/?C%+Y3“-T@y3W> :>`!vpx]^ڊ,Nî,vsy݁4 =Ϊzg8Yy3[1QnzYG[P|Lo ; Lqr<}HF2TW@ 8ItU&J5 38~LtFfc) ҕ81fTWp`Xn>Ct2 6n[ۤVMәAj^YKj^dI.o8sE.- F͙ܕ]ܧ̌ȁ={;?ȏdN>}r%bgOfoHlmT,ާj?w8>wĮN;'[HOñX8h85BjƲmW5CT=fntt[v=*5X5uJwδL:[fPi(ߛ,W)Xc*;UfqB,8-6 B\_s*)_/E"d % `Z1#KZ 53?fsSv}&mқ☠{ X&WXܤo~Z{?o~xNaG< VSSj9P}gw}H˳w\5W`Ús>!rm2T=z5A52tB#"/  YZ$DB+(;LnR=at׼ޕkJt5n&Buw4L&QOq?Q1x𒩷y+Tp ڥtWUQw,d/x7׍KDLʖ4{bP2M= +l+la?Z}c;rV8WCkCCkCCWӡ %dgOʣ8Qe헨L C"~͚\:K!ŏH2UÂz:kwߤ\q@RS+q8wU/MSb}b8[3{3r>mDkwKo?B# Q8@3i&ކXEsQPUsjrmMU C*+)s + O2P7 M{k&vW _:P6,w%^uʨ־M/r˳sk{cqDp,բAwZC5 ̈^kd?kyD' +G ᾧV\<=Be` շBQ\WL^Gnn6v7{':5Ql苕CF o!cϓ>ASڮ+z™Ft;9O>>΄=}&VYXUgf2[-i1io:w5VQr>ƭgn.+*/Ū!Y V6h?t/0Qٌ6K:Ŏ7a! ӛ꧂zwX;{@ҏzݟ-ԏ/n G0 +CTr^qL}݂lVĂ ʾɄ$`J| 6}k#W9Ffmf5GJ 7٭Lkwi'$}~Yc  pK+(;A?3?2 /qK{L_7͇o1mUS2TG4t7$Q6E(d M]'u?{/)]'~6@blN_#,J,d֑nv 6>U瀟cN\&Sd5Q8GT-^ _ڂ'zZGuC 3TetEwj7|X@Y-#l-!ZKѝKA4zy~d!w _LAc;H_DсF{INi' "iE2dQ2'rLágn.)𷏩+;2kpb;eʴ}*"iR֑#t?*I ]MLWNi+`k&'ʴ].hlh+zfbLWC'"b.eiܓs: ؜&+hu5SY5UƗYC2*'oQW[khgTˈ8f轂Δ_}{hk*9#˰ +_]o{vC0{зJe#k]9g<_P{bps9: xU|qܳj  CZOR';#/VΟɭq$xsG{*k_Q<a,㜜{gM.+Ruxȭu-=K8v  *a h93+}] {Qݹy*2v[hasȕQׁZkXEaǵ2.ܓ?ɿלGQ]َGaUฎVӞg'L{m؄_VK韡TX9';[ \P׌iK7!5!46x8*bب7'~X5jwun[}r|pN!f̂}a?/o;Fu3̻Y K*/k_dq/v(DCuiE|itz2VO<\=Nv(x5ƽ1×OPKc<7}cN@_Mݔ]@Ịx&"UMr|de#.KR&ŵ=-)3j$qM#9'NFrOj$gxFrg5?e53 zVTI#9 YfaC#9ËUjE&4XE"4O_ֱǾ;E&>gYցkyO-S'8OzާS1$9ߥ*{l}ȾCK[nmvoM +endstream +endobj +82 0 obj +<< /Type /FontDescriptor +/FontName /df33f4+WorkSans-SemiBold +/FontFile2 81 0 R +/FontBBox [-216 -337 1283 1100] +/Flags 4 +/StemV 0 +/ItalicAngle 0.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +83 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +84 0 obj +[306 500 500 500 500 500 500 500 500 500 500 500 500 500 281 500 500 416 591 589 633 500 500 500 500 500 300 500 500 500 500 500 500 671 500 683 500 500 500 500 500 310 599 500 601 500 739 500 646 500 680 644 635 500 500 500 500 500 500 500 500 500 500 500 500 574 627 564 627 579 407 549 619 282 500 602 319 945 619 599 627 627 422 531 430 618 546 876 569 546 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +85 0 obj +<< /Length1 8656 +/Length 4733 +/Filter [/FlateDecode] +>> +stream +xYil[u>GR E"ˣ6fkL,Sm̘$/{53NM2Yg$pS4 ERNIQ N~Am I[I[YHYtAI{=w=>UP93KsmcX.:4*+KkUO.]o e" +? /箯ە`~bk;WgW\[i啕Pv>Do߳zueU)˯Ծ9{[T(T>H'G)@8^=ߥE%e=D!$WPQ q~C0\kŠ E'RUZzF*'4Msi*?3T_$%n{ܼwWNkd5g&uE@sbLY _wwT<5=lvѳ//|c+m)7mvO Nw<4D/eR2b:{ +v4 vUuNuѐ _˛%|o$SWק7=FQgaRQ2,AOϣP!nnq] (?uk*cwh(s ++?9  ]0TåߺslDl~~lRY[#^wIVa3 XtQ(v@d28.pׇG]P7zUXcWܜޭ+SbL_rU9̴,Ocpc9F9թ*c68--%! =|’d2ښjAW74 +@&x+H:-:Q55o Ǟ5ǣ q_]qs_h5ԇKFG.G6?~";xTg$h,tt5)Xt +ίvr:_e||tɥ#fO-= 6v4hIzf9q3`s]d[k˾Bާi7wQ]yvj!5bf?荱=3#5ѐ6: EmiV2ê8T4M+Fpl.P3&\d:t\==;=A< g#ϟ^\Ś{;aS<>V3rtُܱu-µu=Zs#vMoGXY ZF@C&#I8p;zYX8V? Affb~ ƏXCױrbRQސkew4Q,=o{O{Eʫu(uvO6l6/& +^IX׽Ëf݁Rk/wYQ3/mo7WS +`**#X켮;D#wO BDgX]u t=N?J +1 +;"~ BJQ|:arh|mfjT㱎ݍGC>ᕑSI2'Sa19HѩTU dl*bwm0e0Vcc +Lo3 +45Y ɝe8ZMz_s☸{ttq8eG~.>@^h<Tz2cv'RO > + +9ܔb~O/ K+B?b}E7{GU_<%UYm}+zA=跽_j]=!Yk 6gsO*/u:FǺ/߳Є2Mz)zK:µ^u [V|sN ES*_W UG1zRH!9ߠve!jWStI@J[iL(i-`a<>Ei-<Ѩ~Ye]ӸWg|>TV|V֕֏iGOGsm/)Rl9o1Oŝ o x+|SeZ0x+E )}pNߴ%飿JAfb̦|@FH%AEkÉ^BUf.⢨ BȏM{nbz@k_)eTa.% +{*]tրW0~P'qRW;PYO5P)\_vҳ/XoA5/ZYbby}zd=< ;AH&QڱW;urO[ݷ[q,#p_̚s@2J}uY[]KKG{ËWg!ZEQE ^)bk#0˱$˞.c~k8iEH[Y]kЖ^\;⊅ +-cYU+n>q:_+5`btPwxnћbǒC6.Y \;@tY5XVk+ؙ-9;W(|pLO7_xͷ6h +cu^3}s>)Z'WUt^[4ʊzD ao6i`l3mU$+Ï +cS;Vtg|!ħïCG؈xlB|<6#>[È6cԇm7a.l-NcÔaَى31?"FAǙғmyN9';{_XٯB* ;{U{![$M)DqYHxChCpnGwq烩]{nG”38f:|CPEB;V\69v\O'?n)noUsLdž @Ql02 +ن` +TpT?i=c~ $.5krA OD R s憰VAX+ ,3$0qe82L, ҠEe^{.L, 'Y΢ΰ$,d"686XbI, +0qe8o5S-zX~1u˖_L=m`oͬmw&Yנ M$ dGϚYIMYMl> c>b,$&Y%,l,n,qsܺJgpCS$ޞ3,Yjczay0OU^w~-7II}[?8W[ zck>% R[()or7!mqml{[?:<>KbÎ3 +endstream +endobj +86 0 obj +<< /Type /FontDescriptor +/FontName /2cc957+WorkSans-Italic +/FontFile2 85 0 R +/FontBBox [-261 -292 1316 1100] +/Flags 68 +/StemV 0 +/ItalicAngle -13.0 +/Ascent 930 +/Descent -243 +/CapHeight 660 +/XHeight 500 +>> +endobj +87 0 obj +<< /Length 1286 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }i /y_!ut~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=nPҪtN*eP)DT.ʕrU)BYTVʪQ6[ky ^#k5x5F^ky ^#k5x5F^kZy-^+kxZV^kZy-^+kxZV^:y^'uxu:N^:y^'uxu:N^zy=^/xz^^zy=^/xz^ހ7y o xo7 Aހ7y o xo7 Aވ7Fy#(oĻnuW.I$$*I$ITH$$QI"IDD%$JI$$*I$ITH$$III$$%I$I|›Mx o7M&Iބ7ɛ&y$o›Mx o7M.xyUo ުMMol x; +JÂ31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x Vz[YEVY_}/7*Y%eӫq+:.7JE/3Y(Y*AW RVJS:(u@cD]a*f)9J)o,#\Z>MU\jPS {HSMj{fkyGm[z*Esa>&ӫj%u; 2^W[®v[2쯲u[P:V̡Յ> MBi2 .Ħԇ!dk`=o qWޕwdJF(L164U)x0E~Z?=/ί~:o?$O +endstream +endobj +88 0 obj +[336 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 706 500 585 500 500 290 500 500 500 837 500 500 500 500 500 500 592 500 500 500 500 500 500 500 500 500 500 500 500 616 500 538 616 572 385 500 500 258 500 500 500 500 600 595 500 500 388 500 402 598 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +xref +0 89 +0000000000 65535 f +0000000015 00000 n +0000000274 00000 n +0000000476 00000 n +0000000575 00000 n +0000000626 00000 n +0000000898 00000 n +0000008560 00000 n +0000008895 00000 n +0000009645 00000 n +0000012147 00000 n +0000012322 00000 n +0000012494 00000 n +0000017451 00000 n +0000017871 00000 n +0000024217 00000 n +0000024590 00000 n +0000024634 00000 n +0000024683 00000 n +0000025025 00000 n +0000025069 00000 n +0000025242 00000 n +0000025435 00000 n +0000025631 00000 n +0000025826 00000 n +0000025872 00000 n +0000025918 00000 n +0000025964 00000 n +0000062583 00000 n +0000069295 00000 n +0000069635 00000 n +0000074213 00000 n +0000074579 00000 n +0000074623 00000 n +0000134216 00000 n +0000134312 00000 n +0000176338 00000 n +0000181015 00000 n +0000181412 00000 n +0000181639 00000 n +0000181818 00000 n +0000181864 00000 n +0000182035 00000 n +0000182256 00000 n +0000189295 00000 n +0000189650 00000 n +0000189693 00000 n +0000189819 00000 n +0000189945 00000 n +0000190071 00000 n +0000190197 00000 n +0000190349 00000 n +0000190501 00000 n +0000190634 00000 n +0000190767 00000 n +0000190900 00000 n +0000191034 00000 n +0000191205 00000 n +0000191377 00000 n +0000191544 00000 n +0000191712 00000 n +0000191786 00000 n +0000191988 00000 n +0000192176 00000 n +0000192356 00000 n +0000192542 00000 n +0000192850 00000 n +0000193055 00000 n +0000193271 00000 n +0000193641 00000 n +0000193979 00000 n +0000194115 00000 n +0000194385 00000 n +0000194655 00000 n +0000199283 00000 n +0000199504 00000 n +0000200866 00000 n +0000201780 00000 n +0000211524 00000 n +0000211742 00000 n +0000213104 00000 n +0000214018 00000 n +0000221503 00000 n +0000221722 00000 n +0000223084 00000 n +0000223998 00000 n +0000228821 00000 n +0000229041 00000 n +0000230403 00000 n +trailer +<< /Size 89 +/Root 2 0 R +/Info 1 0 R +>> +startxref +231317 +%%EOF diff --git a/dk.gov.oiosi.library/released/dk.gov.oiosi.library-3.0.0.RC1.2e09600e-src.zip b/dk.gov.oiosi.library/released/dk.gov.oiosi.library-3.0.0.RC1.2e09600e-src.zip new file mode 100644 index 0000000000000000000000000000000000000000..044ffc8a475cf42f747ec6ab19df74aa4436e433 Binary files /dev/null and b/dk.gov.oiosi.library/released/dk.gov.oiosi.library-3.0.0.RC1.2e09600e-src.zip differ diff --git a/dk.gov.oiosi.library/released/dk.gov.oiosi.library-3.0.0.RC1.2e09600e.jar b/dk.gov.oiosi.library/released/dk.gov.oiosi.library-3.0.0.RC1.2e09600e.jar new file mode 100644 index 0000000000000000000000000000000000000000..7c6f9d06662b517ac02f1dab591162af4dd3ea8c Binary files /dev/null and b/dk.gov.oiosi.library/released/dk.gov.oiosi.library-3.0.0.RC1.2e09600e.jar differ diff --git a/dk.gov.oiosi.library/sonar-project.properties b/dk.gov.oiosi.library/sonar-project.properties new file mode 100644 index 0000000000000000000000000000000000000000..48604ffe4fc2862dc18f0c9a1289d68e42ea8343 --- /dev/null +++ b/dk.gov.oiosi.library/sonar-project.properties @@ -0,0 +1,11 @@ +sonar.projectKey=openebusiness_oiorasp-java + +sonar.sources=dk.gov.oiosi.library/src/dk/gov/oiosi +sonar.java.binaries=dk.gov.oiosi.library/target/classes +sonar.java.libraries=dk.gov.oiosi.library/lib + +sonar.tests=dk.gov.oiosi.library/test + +sonar.junit.reportPaths=dk.gov.oiosi.library/target/test/*.xml + +sonar.sourceEncoding=UTF-8 \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/Constants.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/Constants.java index 6b6cc06928ecd0bde8fed73c5f20e06d7d91eccd..d1f297108db01547f417ac3d47ce42ae857ccab8 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/Constants.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/Constants.java @@ -25,7 +25,7 @@ package dk.gov.oiosi; public class Constants { /** - * Namespace for OIOSI RASP. + * Namespace for OIORASP. */ public static final String RASP_NAME_SPACE = "http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01"; @@ -71,7 +71,7 @@ public class Constants { public static final String RASP_CUSTOM_HEADER_MESSAGE_IDENTIFIER = "RaspHeaderMessageIdentifier"; /** - * Variable in Axis2 MessageContext holding the MessageIdentifier (NOT Customheader) + * Variable in Axis2 MessageContext holding the MessageIdentifier (NOT Customheader) */ public static final String RASP_MESSAGE_IDENTIFIER = "MessageIdentifier"; @@ -79,27 +79,27 @@ public class Constants { * Variable in Axis2 MessageContext holding the SenderPartyIdentifier as Identifier. */ public static final String RASP_SENDER_PARTY_IDENTIFIER = "SenderPartyIdentifier"; - + /* * Header name of the SenderPartyIdentifierType header */ public static final String RASP_SENDER_PARTY_TYPE_HEADER = "SenderPartyIdentifierType"; - + /** * Variable in Axis2 MessageContext holding the ReceiverPartyIdentifier as Identifier. */ public static final String RASP_RECEIVER_PARTY_IDENTIFIER = "ReceiverPartyIdentifier"; - + /* * Header name of the ReceiverPartyIdentifierType header */ public static final String RASP_RECEIVER_PARTY_TYPE_HEADER = "ReceiverPartyIdentifierType"; - + /** - * Type of PartyIdentifier. + * Type of PartyIdentifier. */ public static final String PARTY_IDENTIFIER_TYPE = "type"; - + /** * Variable in Axis2 MessageContext holding the SignatureProof. */ diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/RaspEnvironmentCheck.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/RaspEnvironmentCheck.java index e1615d7dc23f7d28c5a05cc40dba9868daf58499..0fd56d307161fe43febfaa4d388f0ea80f143117 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/RaspEnvironmentCheck.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/RaspEnvironmentCheck.java @@ -33,30 +33,21 @@ import java.security.SecureRandom; */ public class RaspEnvironmentCheck { - @SuppressWarnings("unused") - private static final String SERIALNUMBER_CVR_RID = "SERIALNUMBER=CVR:25767535-RID:1118061020232"; - - private static final String OKMSG = "Check OK..."; + private static final String OK_MSG = "Check OK..."; public static void main(final String[] args) { RaspEnvironmentCheck raspEnv = new RaspEnvironmentCheck(); - System.out.print("Checking OS - " + raspEnv.checkOS()); - System.out.println(); + System.out.println("Checking OS - " + raspEnv.checkOS()); System.out.println("Checking Axis2 - " + raspEnv.checkForAxis()); System.out.println("Checking Mercury - " + raspEnv.checkForMercury()); System.out.println("Checking Rampart - " + raspEnv.checkForRampart()); - System.out.println(); System.out.println("Checking encryption - " + raspEnv.checkEncryption()); - System.out.println("Checking for Ant - " + raspEnv.checkForAnt()); - System.out.println(); System.out.println("Checking for Bouncy-castle - " + raspEnv.checkForBouncyCastle()); - System.out.println(); - System.out.println("Connecting to server (Tomcat or similar) - " + raspEnv.checkForServer()); System.out.println(); } @@ -65,16 +56,11 @@ public class RaspEnvironmentCheck { * Checks for proper upgrade from 1.2.3 to 1.3.0. *

* In addition to dk.gov.oiosi.library.XXX.jar 2 new jars should replace one old: - *

- * bcprov-jdk16-141.jar should be replaced with bcpkix-jdk15on-147.jar and bcprov-jdk15on-147.jar * * @since OIORASP 1.3.0 */ - /* - * TODO DLK: Why do we need this new JAR bcpkix-jdk15on-147.jar? - */ public String checkForBouncyCastle() { - String check = OKMSG; + String check = OK_MSG; String checkClassName = "org.bouncycastle.asn1.x509.X509Name"; String checkFieldName = "SERIALNUMBER"; String errorSuffix = ", which is expected to be in library bcprov-jdk15on-147.jar, but is absent in previously used library bcprov-jdk16-141.jar. Please check that it is present in your classpath together with bcpkix-jdk15on-147.jar"; @@ -84,9 +70,9 @@ public class RaspEnvironmentCheck { if (field == null) { check = "Cannot find static field " + checkFieldName + " in class " + checkClassName + errorSuffix; } - } catch (ClassNotFoundException cnfe) { + } catch (ClassNotFoundException e) { check = "Cannot find class " + checkClassName + errorSuffix; - } catch (Throwable t) { + } catch (Exception t) { check = "Cannot find static field " + checkFieldName + " in class " + checkClassName + errorSuffix; } return check; @@ -94,7 +80,7 @@ public class RaspEnvironmentCheck { public String checkForServer() { - String check = OKMSG; + String check = OK_MSG; String host = "localhost"; int port = 8080; try { @@ -106,19 +92,17 @@ public class RaspEnvironmentCheck { } public String checkForAxis() { - String check = OKMSG; try { - URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); - sysloader.loadClass("org.apache.axiom.om.OMNode"); + URLClassLoader sysLoader = (URLClassLoader) ClassLoader.getSystemClassLoader(); + sysLoader.loadClass("org.apache.axiom.om.OMNode"); } catch (ClassNotFoundException e) { return "Couldn't find Axis2 on classpath."; } - return check; + return OK_MSG; } public String checkForMercury() { - String check = OKMSG; try { URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); sysloader.loadClass("org.wso2.mercury.handlers.MercuryOutHandler"); @@ -126,11 +110,10 @@ public class RaspEnvironmentCheck { return "Couldn't find Mercury on classpath."; } - return check; + return OK_MSG; } public String checkForRampart() { - String check = OKMSG; try { URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); sysloader.loadClass("org.apache.rampart.RampartEngine"); @@ -138,11 +121,11 @@ public class RaspEnvironmentCheck { return "Couldn't find Rampart on classpath."; } - return check; + return OK_MSG; } public String checkForAnt() { - String check = OKMSG; + String check = OK_MSG; String path = System.getProperty("java.library.path"); if (!path.contains("ant") && !path.contains("Ant")) { check = "Checking for Ant - unable to locate Ant library in path: " + path + "! "; @@ -152,7 +135,7 @@ public class RaspEnvironmentCheck { } public String checkOS() { - String check = OKMSG; + String check = OK_MSG; String os = System.getProperty("os.name"); if (!os.startsWith("Windows") && !os.startsWith("Mac") && !os.startsWith("Linux")) { check = "Untested os: " + os; @@ -161,19 +144,18 @@ public class RaspEnvironmentCheck { } public String checkEncryption() { - String check = OKMSG; + String check = OK_MSG; try { - KeyGenerator kgen = KeyGenerator.getInstance("AES"); - kgen.init(256); // 192 and 256 bits may not be available - kgen.init(new SecureRandom()); - SecretKey derived_key = kgen.generateKey(); + KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); + keyGenerator.init(256); // 192 and 256 bits may not be available + keyGenerator.init(new SecureRandom()); + SecretKey derivedKey = keyGenerator.generateKey(); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.ENCRYPT_MODE, derived_key); + cipher.init(Cipher.ENCRYPT_MODE, derivedKey); ByteArrayOutputStream baos = new ByteArrayOutputStream(); baos.write(cipher.getIV()); baos.write(cipher.doFinal("Very secret secret".getBytes())); baos.close(); - } catch (Exception e) { check = "Checking encryption - not able to encrypt due to: " + e.getMessage(); check += " - Is the policy files installed in the JRE ?"; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/EndpointAddress.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/EndpointAddress.java index 79b0148535b8ebc2326f910b4562c00f84864279..1ac2daae2440c78a2e71caefdaae66e06cafbd6f 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/EndpointAddress.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/EndpointAddress.java @@ -22,43 +22,72 @@ package dk.gov.oiosi.addressing; import dk.gov.oiosi.communication.Uri; import dk.gov.oiosi.uddi.EndpointAddressTypeCode; +import java.net.URISyntaxException; + /** - * Abstract base class of the address of an endpoint, e.g. a URL or e-mail - * address. Instantiate this class to represent a specific endpoint address - * type. + * Represents an URL endpoint address. */ -public abstract class EndpointAddress { +public class EndpointAddress { /** - * Returns the endpoint address in a string representation. - * - * @return Returns the business key in a string representation + * Endpoint Address. */ - public abstract String getKeyAsString(); + protected Uri endpointUrl; /** - * Returns the type of endpoint address as a human readable string. - * - * @return Returns the type of string as a human readable string + * Endpoint address url. + * + * @param uri endpoint url */ - public abstract String getKeyTypeAsString(); + public EndpointAddress(final Uri uri) { + endpointUrl = uri; + } /** - * Returns the UDDI UrlType as a human readable string. - * - * @return UrlType as string + * Endpoint address url. + * + * @param uri endpoint url + * @throws URISyntaxException On error. */ - public abstract String getUrlTypeAsString(); + public EndpointAddress(final String uri) throws URISyntaxException { + endpointUrl = new Uri(uri); + } /** - * Gets Uri. - * - * @return the endpoint address uri + * Gets endpointkey as string. + * + * @return string value of EndpointAddress Uri */ - public abstract Uri getAsUri(); + public final String getKeyAsString() { + return endpointUrl.toString(); + } + + /** + * Gets keytype as string. + * + * @return keytype + */ + public final String getKeyTypeAsString() { + return "http"; + } + + /** + * Return the Microsoft.Uddi.UrlType as a sting. + * + * @return url type + */ + public final String getUrlTypeAsString() { + return "http"; + } + + public Uri getAsUri() { + return endpointUrl; + } + + public EndpointAddressTypeCode getEndpointAddressTypeCode() { + return EndpointAddressTypeCode.http; + } - public abstract EndpointAddressTypeCode getEndpointAddressTypeCode(); - @Override public final String toString() { return getAsUri().getAbsoluteUri(); diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/EndpointAddressHttp.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/EndpointAddressHttp.java deleted file mode 100755 index 068341b44e4277c7fc4e5437706981e457f918fd..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/EndpointAddressHttp.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this - * file except in compliance with the License. You may obtain - * a copy of the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * - * The Original Code is Java RASP toolkit. - * - * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and - * Telecom Agency (http://www.itst.dk). All Rights Reserved. - */ - -package dk.gov.oiosi.addressing; - -import java.net.URISyntaxException; - -import dk.gov.oiosi.communication.Uri; -import dk.gov.oiosi.uddi.EndpointAddressTypeCode; - -/** - * Represents an URL endpoint address. - */ -public class EndpointAddressHttp extends EndpointAddress { - - /** - * Endpoint Address. - */ - private Uri endpointUrl; - - - /** - * Endpoint address url. - * - * @param uri - * endpoint url - */ - public EndpointAddressHttp(final Uri uri) { - endpointUrl = uri; - } - - /** - * Endpoint address url. - * - * @param uri - * endpoint url - * @throws URISyntaxException - */ - public EndpointAddressHttp(final String uri) throws URISyntaxException { - endpointUrl = new Uri(uri); - } - - /** - * Gets endpointkey as string. - * - * @return string value of EndpointAddress Uri - */ - public final String getKeyAsString() { - return endpointUrl.toString(); - } - - /** - * Gets keytype as string. - * - * @return keytype - */ - public final String getKeyTypeAsString() { - return "http"; - } - - /** - * Return the Microsoft.Uddi.UrlType as a sting. - * - * @return url type - */ - public final String getUrlTypeAsString() { - return "http"; - } - - @Override - public EndpointAddressTypeCode getEndpointAddressTypeCode() { - return EndpointAddressTypeCode.http; - } - - @Override - public Uri getAsUri() { - return endpointUrl; - } -} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/Identifier.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/Identifier.java index e9bd2242bcc0d6bca4508512daee0390d4657a67..35a0ffa0c06eddfbfd5f241b980cc6595b90837d 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/Identifier.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/Identifier.java @@ -20,7 +20,6 @@ package dk.gov.oiosi.addressing; import dk.gov.oiosi.exception.NullOrEmptyArgumentException; - /** * Identifier. */ @@ -52,9 +51,9 @@ public class Identifier { */ void verifyInput() { if (value == null || value.isEmpty()) { - throw new NullOrEmptyArgumentException("Value/key is empty"); + throw new NullOrEmptyArgumentException("E-RSP33001: Value/key is empty"); } else if (value.trim().contains(" ")) { - throw new IncorrectBusinessIdentifierException("Space not allowed in Identifier value"); + throw new IncorrectBusinessIdentifierException("E-RSP33002: Space not allowed in Identifier value"); } // For Type=DK:CVR, strip DK from start (if present) diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/IncorrectSerialNumberException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/IncorrectSerialNumberException.java old mode 100755 new mode 100644 index 5d4eb8f671c878edbec5d73c481e785e87ed03e0..3069988650b9357e8e2d7f6b2bea9a2cd0029d4f --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/IncorrectSerialNumberException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/addressing/IncorrectSerialNumberException.java @@ -1,53 +1,53 @@ -/* - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this - * file except in compliance with the License. You may obtain - * a copy of the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * - * The Original Code is Java RASP toolkit. - * - * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and - * Telecom Agency (http://www.itst.dk). All Rights Reserved. - */ - -package dk.gov.oiosi.addressing; - - -/** - * IncorrectSerialNumberException. - */ -public class IncorrectSerialNumberException extends IncorrectBusinessIdentifierException { - - /** - * serialVersionUID. - */ - private static final long serialVersionUID = 4L; - - /** - * IncorrectSerialNumberException. - * - * @param s - * message - */ - public IncorrectSerialNumberException(final String s) { - super(s); - } - - /** - * IncorrectSerialNumberException. - * - * @param s - * message - */ - public IncorrectSerialNumberException(final String s, final Throwable e) { - super(s, e); - } - -} +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this + * file except in compliance with the License. You may obtain + * a copy of the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an + * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express + * or implied. See the License for the specific language governing + * rights and limitations under the License. + * + * + * The Original Code is Java RASP toolkit. + * + * The Initial Developer of the Original Code is Lenio. Portions + * created by Lenio are Copyright (C) 2007 Danish National IT and + * Telecom Agency (http://www.itst.dk). All Rights Reserved. + */ + +package dk.gov.oiosi.addressing; + + +/** + * IncorrectSerialNumberException. + */ +public class IncorrectSerialNumberException extends IncorrectBusinessIdentifierException { + + /** + * serialVersionUID. + */ + private static final long serialVersionUID = 4L; + + /** + * IncorrectSerialNumberException. + * + * @param s + * message + */ + public IncorrectSerialNumberException(final String s) { + super(s); + } + + /** + * IncorrectSerialNumberException. + * + * @param s + * message + */ + public IncorrectSerialNumberException(final String s, final Throwable e) { + super(s, e); + } + +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/OioraspPolicyBasedResultsValidator.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/OioraspPolicyBasedResultsValidator.java index 3482acac8cde1eb543effd097fa15c1448cba174..eb2ec1b4590ced4fdb00c5beaa2c13e873d0dcb3 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/OioraspPolicyBasedResultsValidator.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/OioraspPolicyBasedResultsValidator.java @@ -51,7 +51,7 @@ public class OioraspPolicyBasedResultsValidator extends PolicyBasedResultsValida rmd.getPolicyData().getRampartConfig(), rmd.getCustomClassLoader()).getAliasForX509Cert(issuerString, issuerSerial); } catch (WSSecurityException ex) { - throw new RampartException("cannotFindAliasForCert", new String[]{subjectString}, ex); + throw new RampartException("E-RSP12001: cannotFindAliasForCert", new String[]{subjectString}, ex); } if (alias != null) { @@ -61,7 +61,7 @@ public class OioraspPolicyBasedResultsValidator extends PolicyBasedResultsValida rmd.getPolicyData().getRampartConfig(), rmd.getCustomClassLoader()).getCertificates(alias); } catch (WSSecurityException ex) { - throw new RampartException("noCertForAlias", new String[]{alias}, ex); + throw new RampartException("E-RSP12002: noCertForAlias", new String[]{alias}, ex); } // If certificates have been found, the certificates must be compared @@ -79,7 +79,7 @@ public class OioraspPolicyBasedResultsValidator extends PolicyBasedResultsValida } // SECOND step - // OIOSI RASP interceptor code + // OIORASP interceptor code // The new oces2 certificates has a certificate chain of 3 // Top - root certificate // middle - issuer certificate @@ -92,7 +92,7 @@ public class OioraspPolicyBasedResultsValidator extends PolicyBasedResultsValida boolean rootCertificateFound = false; //ICertificateLookup lookup = LdapLookupFactory.createLdapLookupClient(); - List list = new ArrayList(); + List list = new ArrayList<>(); list.add(cert); X509Certificate currentCert = cert; CertificateUtil certificatUtil = new CertificateUtil(); @@ -120,7 +120,7 @@ public class OioraspPolicyBasedResultsValidator extends PolicyBasedResultsValida rmd.getPolicyData().getRampartConfig(), rmd.getCustomClassLoader()).getAliasesForDN(issuerString); } catch (WSSecurityException ex) { - throw new RampartException("cannotFindAliasForCert", new String[]{issuerString}, ex); + throw new RampartException("E-RSP12001: cannotFindAliasForCert", new String[]{issuerString}, ex); } // If the alias has not been found, the issuer is not in the keystore @@ -167,30 +167,28 @@ public class OioraspPolicyBasedResultsValidator extends PolicyBasedResultsValida // THIRD step // Check the certificate trust path for every alias of the issuer found in the keystore - for (int i = 0; i < aliases.length; i++) { - alias = aliases[i]; - + for (String a : aliases) { if (doDebug) { - log.debug("Preparing to validate certificate path with alias " + alias + " for issuer " + issuerString); + log.debug("Preparing to validate certificate path with alias " + a + " for issuer " + issuerString); } - // Retrieve the certificate(s) for the alias from the keystore + // Retrieve the certificate(s) for the alias from the keystore: try { - certs = RampartUtil.getSignatureCrypto(rmd.getPolicyData().getRampartConfig(), rmd.getCustomClassLoader()).getCertificates(alias); + certs = RampartUtil.getSignatureCrypto(rmd.getPolicyData().getRampartConfig(), rmd.getCustomClassLoader()).getCertificates(a); } catch (WSSecurityException ex) { - throw new RampartException("noCertForAlias", new String[]{alias}, ex); + throw new RampartException("E-RSP12002: noCertForAlias", new String[]{a}, ex); } // If no certificates have been found, there has to be an error: // The keystore can find an alias but no certificate(s) if (certs == null || certs.length < 1) { - throw new RampartException("noCertForAlias", new String[]{alias}); + throw new RampartException("E-RSP12002: noCertForAlias", new String[]{a}); } // Form a certificate chain from the transmitted certificate and the certificate(s) of the issuer from the keystore // First, create new array X509Certificate[] x509certs = new X509Certificate[certs.length + list.size()]; - // Then add the first (and downloaded) certificate ... + // Then add the first (and downloaded) certificate: int indexList; for (indexList = 0; indexList < list.size(); indexList++) { cert = list.get(indexList); @@ -216,15 +214,14 @@ public class OioraspPolicyBasedResultsValidator extends PolicyBasedResultsValida return true; } } catch (WSSecurityException e) { - log.error("Validation of [" + subjectString + "] gave: " + e.getMessage(), e); + log.error("E-RSP12004: Validation of [" + subjectString + "] gave: " + e.getMessage(), e); throw new RampartException("certPathVerificationFailed", new String[]{subjectString}, e); } } } } - //} log.debug("WSHandler: Certificate path could not be verified for certificate with subject " + subjectString); return false; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/RaspHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/RaspHandler.java index a301f518c4627e4f622631cb34379d1470a59c0d..f6b25b0630c5c61b8daafed78e29fe7a729a29df 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/RaspHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/RaspHandler.java @@ -37,11 +37,12 @@ import java.util.List; */ public abstract class RaspHandler implements Handler { - private Log log = LogFactory.getLog(RaspHandler.class); + private final Log log = LogFactory.getLog(RaspHandler.class); /** * @deprecated See {@link Handler}.cleanup method */ + @Deprecated public void cleanup() { } @@ -86,7 +87,8 @@ public abstract class RaspHandler implements Handler { oiosiPolicyBean.moveValues(assertionValue); - if (oiosiPolicyBean.getRaspConfiguration() != null) { + // Only set new value for ConfigurationFile, if value exists and differs from existing: + if (oiosiPolicyBean.getRaspConfiguration() != null && !oiosiPolicyBean.getRaspConfiguration().equals(ConfigurationHandler.getRaspConfigurationFileName())) { log.debug("Setting Custom RaspConfiguration.xml: " + oiosiPolicyBean.getRaspConfiguration()); ConfigurationHandler.setConfigurationFile(oiosiPolicyBean.getRaspConfiguration()); } @@ -94,7 +96,7 @@ public abstract class RaspHandler implements Handler { } } } catch (Exception e) { - log.error("Failed to initialize OIOSIPolicyBean - use default values: " + e.getMessage(), e); + log.error("E-RSP12011: Failed to initialize OIOSIPolicyBean - use default values: " + e.getMessage(), e); } // Save for this message context... @@ -102,4 +104,4 @@ public abstract class RaspHandler implements Handler { return oiosiPolicyBean; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderInHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderInHandler.java index 63ce964705203950cf5dddd470777a6cc3560ecc..4f24efb1a92a79bf8473fdb1b5641fb35be58183 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderInHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderInHandler.java @@ -197,7 +197,7 @@ public class CustomHeaderInHandler extends RaspHandler { // Enforce mandatory headers if ((!foundIdentifier && !rmMessage) || !foundReceiverID || !foundSenderID) { - String msg = "Message receiver without mandatory Rasp Headers (identifier=" + foundIdentifier + ", sender=" + foundSenderID + ", receiver=" + foundReceiverID + ")."; + String msg = "W-RSP12021: Message receiver without mandatory Rasp Headers (identifier=" + foundIdentifier + ", sender=" + foundSenderID + ", receiver=" + foundReceiverID + ")."; log.warn(msg); MainException e = new MainException(msg); e.setReceiverError(false); diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderOutHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderOutHandler.java index a53470ca29665ff932306a97354b6fe472b00443..4688c407773d5021ebb8e9894ff417f0fa336cc1 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderOutHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/customheaders/CustomHeaderOutHandler.java @@ -41,10 +41,10 @@ import java.util.List; */ public class CustomHeaderOutHandler extends RaspHandler { + public static final String NAME = "CustomHeaderOutHandler"; private static final Log log = LogFactory.getLog(CustomHeaderOutHandler.class); private static HandlerDescription EMPTY_HANDLER_METADATA = new HandlerDescription("deafult Handler"); private HandlerDescription handlerDesc; - public static final String NAME = "CustomHeaderOutHandler"; /** @@ -56,7 +56,7 @@ public class CustomHeaderOutHandler extends RaspHandler { /* * (non-Javadoc) - * + * * @see org.apache.axis2.engine.Handler#init(org.apache.axis2.description.HandlerDescription) */ public void init(HandlerDescription handlerDesc) { @@ -65,7 +65,7 @@ public class CustomHeaderOutHandler extends RaspHandler { /* * (non-Javadoc) - * + * * @see org.apache.axis2.engine.Handler#invoke(org.apache.axis2.context.MessageContext) */ @SuppressWarnings("unchecked") @@ -110,18 +110,16 @@ public class CustomHeaderOutHandler extends RaspHandler { boolean rmMessage = RaspModule.getInstance().isRMNamespaceByAction(msgContext.getSoapAction()); - for (int i = 0; i < customHeaderList.size(); i++) { - SOAPHeaderBlock shb = (SOAPHeaderBlock) customHeaderList.get(i); - if (dk.gov.oiosi.Constants.RASP_MESSAGE_IDENTIFIER.equals(shb.getLocalName()) && rmMessage) { + for (SOAPHeaderBlock soapHeaderBlock : customHeaderList) { + if (dk.gov.oiosi.Constants.RASP_MESSAGE_IDENTIFIER.equals(soapHeaderBlock.getLocalName()) && rmMessage) { // SKIP MessageIdentifier for RM } else { - log.debug("Add: " + shb.getLocalName()); + log.debug("Add: " + soapHeaderBlock.getLocalName()); if (msgContext.getProperty("OutgoingHeadersAdded") == null) { - SOAPHeaderBlock newHeader = header.addHeaderBlock(shb.getLocalName(), shb.getNamespace()); - newHeader.setText(shb.getText()); + SOAPHeaderBlock newHeader = header.addHeaderBlock(soapHeaderBlock.getLocalName(), soapHeaderBlock.getNamespace()); + newHeader.setText(soapHeaderBlock.getText()); } } - } if (!rmMessage && transferredMessageId != null) { @@ -140,7 +138,7 @@ public class CustomHeaderOutHandler extends RaspHandler { /* * (non-Javadoc) - * + * * @see org.apache.axis2.engine.Handler#flowComplete(org.apache.axis2.context.MessageContext) */ public void flowComplete(MessageContext arg0) { @@ -148,7 +146,7 @@ public class CustomHeaderOutHandler extends RaspHandler { /* * (non-Javadoc) - * + * * @see org.apache.axis2.engine.Handler#getName() */ public String getName() { @@ -157,7 +155,7 @@ public class CustomHeaderOutHandler extends RaspHandler { /* * (non-Javadoc) - * + * * @see org.apache.axis2.engine.Handler#getParameter(java.lang.String) */ public Parameter getParameter(String name) { @@ -166,11 +164,10 @@ public class CustomHeaderOutHandler extends RaspHandler { /* * (non-Javadoc) - * + * * @see org.apache.axis2.engine.Handler#getHandlerDesc() */ public HandlerDescription getHandlerDesc() { return handlerDesc; } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/signatureproof/SignatureProofHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/signatureproof/SignatureProofHandler.java index d856b1aa4bf5fc17b12d8861c801643dae37a68b..57a13a5be71148a1797c744f4678bec89d7a8471 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/signatureproof/SignatureProofHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/signatureproof/SignatureProofHandler.java @@ -75,18 +75,18 @@ public class SignatureProofHandler extends RaspHandler { OiosiPolicyBean oiosiPolicyBean = getPolicyBean(msgContext); if (!oiosiPolicyBean.doSignatureProof()) { - log.warn("SignatureProofHandler not activated. Check your policy configuration."); + log.warn("W-RSP12031: SignatureProofHandler not activated. Check your policy configuration."); return InvocationResponse.CONTINUE; } if (!msgContext.isEngaged(RaspModule.MODULE_NAME)) { - log.error("SignatureProofHandler is missing prerequisite: Rasp module not engaged"); + log.error("E-RSP12032: SignatureProofHandler is missing prerequisite: Rasp module not engaged"); // return InvocationResponse.ABORT; throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Receiver, "SignatureProofHandler is missing prerequisite: Rasp module not engaged"); } if (!msgContext.isEngaged(WSSHandlerConstants.SECURITY_MODULE_NAME)) { - log.error("SignatureProofHandler is missing prerequisite: Security module not engaged"); + log.error("E-RSP12033: SignatureProofHandler is missing prerequisite: Security module not engaged"); // return InvocationResponse.ABORT; throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Receiver, "SignatureProofHandler is missing prerequisite: Security module not engaged"); } @@ -98,14 +98,14 @@ public class SignatureProofHandler extends RaspHandler { Object recv_results = msgContext.getProperty(WSHandlerConstants.RECV_RESULTS); if (recv_results == null) { - log.error("The received result was null"); + log.error("E-RSP12034: The received result was null"); // return InvocationResponse.ABORT; throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Receiver, "The received result was null"); } X509Certificate signerCertificate = AxisWSSUtil.getCertificateFrom_RECV_RESULTS(recv_results); if (signerCertificate == null) { - log.error("Could not read/find any signer certificate"); + log.error("E-RSP12035: Could not read/find any signer certificate"); //return InvocationResponse.ABORT; throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Receiver, "Could not read/find any signer certificate"); } @@ -128,7 +128,7 @@ public class SignatureProofHandler extends RaspHandler { if (response.isValid()) { passedRevocation = true; } else { - log.warn("Certificate is not valid [" + signerCertificate.getSubjectDN() + "]"); + log.warn("W-RSP12036: Certificate is not valid [" + signerCertificate.getSubjectDN() + "]"); throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Sender, "Certificate is not valid [" + signerCertificate.getSubjectDN() + "]"); } } catch (AxisFault exception) { @@ -137,10 +137,10 @@ public class SignatureProofHandler extends RaspHandler { // log.warn("Validation of certificate failed " + signerCertificate.getSubjectX500Principal() + ": " + e.getMessage(), e); // throw AxisFaultUtil.buildAxisFault(msgContext, e); } catch (MainException e) { - log.warn("Validation of certificate failed " + signerCertificate.getSubjectX500Principal() + ": " + e.getMessage(), e); + log.warn("W-RSP12037: Validation of certificate failed " + signerCertificate.getSubjectX500Principal() + ": " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, e); } catch (Exception e) { - log.warn("Could not validate incoming signer certificate: " + e.getMessage(), e); + log.warn("W-RSP12038: Could not validate incoming signer certificate: " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Receiver, "Could not validate incoming signer certificate: " + e.getMessage()); } @@ -148,10 +148,10 @@ public class SignatureProofHandler extends RaspHandler { CertificateValidator.validateCertificate(signerCertificate); passedValidation = true; } catch (CertificateNotActiveException e) { - log.warn("Incoming certificate not valid yet: " + signerCertificate.getSubjectX500Principal(), e); + log.warn("W-RSP12039: Incoming certificate not valid yet: " + signerCertificate.getSubjectX500Principal(), e); throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Sender, "Sender certificate is not active"); } catch (CertificateExpiredException e) { - log.warn("Incoming certificate is expired: " + signerCertificate.getSubjectX500Principal(), e); + log.warn("W-RSP12040: Incoming certificate is expired: " + signerCertificate.getSubjectX500Principal(), e); throw AxisFaultUtil.buildAxisFault(msgContext, OiosiInnerFaultCode.SignatureNotValidFault, OiosiFaultCode.Sender, "Sender certificate has expired"); } @@ -178,7 +178,7 @@ public class SignatureProofHandler extends RaspHandler { msgContext.setProperty(Constants.RASP_SIGNATURE_PROOF, signatureProof); } catch (SignatureValidationProofAllreadyCompletedException thisShouldNotHappen) { - log.error("SignatureProof could not be created: " + thisShouldNotHappen, thisShouldNotHappen); + log.error("E-RSP12041: SignatureProof could not be created: " + thisShouldNotHappen, thisShouldNotHappen); throw AxisFaultUtil.buildAxisFault(msgContext, thisShouldNotHappen); } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchemaHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchemaHandler.java index 8b17f651ae06d69eab981cd69ede60996567a781..8ab1d2a2b0bc1c35423a1a38a0676c2cc09e4f72 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchemaHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchemaHandler.java @@ -105,10 +105,10 @@ public class SchemaHandler extends RaspHandler { DocumentTypeConfigSearcher documentSearcher = new DocumentTypeConfigSearcher(); documentTypeConfig = documentSearcher.findUniqueDocumentType(xmlDocument); } catch (MainException e) { - log.error("Failed init/find document config: " + e.getMessage(), e); + log.error("E-RSP12111: Failed init/find document config: " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, e); } catch (Exception e) { - log.error("Failed init/find document config: " + e.getMessage(), e); + log.error("E-RSP12112: Failed init/find document config: " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, new MainException(e)); } @@ -120,13 +120,13 @@ public class SchemaHandler extends RaspHandler { log.debug("- Schema validate OK"); } catch (SchemaValidationFailedException e) { // this is what could be expected... only log warn - log.warn("Failed XML schema validate document: " + e); + log.warn("W-RSP12113: Failed XML schema validate document: " + e); throw AxisFaultUtil.buildAxisFault(msgContext, e); } catch (MainException e) { - log.error("Failed XML schema validate document: " + e, e); + log.error("E-RSP12114: Failed XML schema validate document: " + e, e); throw AxisFaultUtil.buildAxisFault(msgContext, e); } catch (Exception e) { - log.error("Failed XML schema validate document: " + e, e); + log.error("E-RSP12115: Failed XML schema validate document: " + e, e); throw AxisFaultUtil.buildAxisFault(msgContext, new MainException(e)); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchematronHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchematronHandler.java index e077abbb00d33a0743bcd856b986bd065c3d422f..ef78999883c89b68405c22f2fbc5be6f74b11daa 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchematronHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/SchematronHandler.java @@ -43,14 +43,12 @@ import javax.xml.transform.Transformer; */ public class SchematronHandler extends RaspHandler { - private static final Log log = LogFactory.getLog(SchematronHandler.class); - public static final String NAME = "SchematronHandler"; - + private static final Log log = LogFactory.getLog(SchematronHandler.class); /** * Description. */ - private static HandlerDescription EMPTY_HANDLER_METADATA = new HandlerDescription("default Handler"); + private static final HandlerDescription EMPTY_HANDLER_METADATA = new HandlerDescription("default Handler"); private HandlerDescription handlerDesc; @@ -129,8 +127,6 @@ public class SchematronHandler extends RaspHandler { } /* - * (non-Javadoc) - * * @see org.apache.axis2.engine.Handler#getHandlerDesc() */ public HandlerDescription getHandlerDesc() { @@ -143,11 +139,11 @@ public class SchematronHandler extends RaspHandler { DocumentTypeConfigSearcher documentSearcher = new DocumentTypeConfigSearcher(); return documentSearcher.findUniqueDocumentType(xmlDocument); } catch (MainException e) { - log.error("Failed find document config: " + e.getMessage(), e); + log.error("E-RSP12103: Failed find document config: " + e.getMessage(), e); throw e; } catch (Exception e) { - log.error("Failed find document config: " + e.getMessage(), e); - throw new MainException(e); + log.error("E-RSP12101: Failed find document config: " + e.getMessage(), e); + throw new MainException(e, "E-RSP12101"); } } @@ -166,12 +162,12 @@ public class SchematronHandler extends RaspHandler { validator.schematronValidateXmlDocument(xmlDocument, transform); log.debug("- Schematron validate OK"); } catch (SchematronErrorException e) { - log.warn("Failed schematron document validation: " + e.getMessage(), e); + log.warn("W-RSP12105: Failed schematron document validation: " + e.getMessage(), e); throw e; } catch (Exception e) { - log.warn("Failed schematron document validation: " + e.getMessage(), e); - throw new MainException(e); + log.warn("W-RSP12106: Failed schematron document validation: " + e.getMessage(), e); + throw new MainException(e, "E-RSP12102"); } } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/TransformationHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/TransformationHandler.java index 1525c5ce7df7e7597d136a3175cdeb3ddc6cd1bb..140066e486d319aa80d47097645c282f4696ebac 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/TransformationHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/axis2/module/xml/TransformationHandler.java @@ -115,10 +115,10 @@ public class TransformationHandler extends RaspHandler { DocumentTypeConfigSearcher documentSearcher = new DocumentTypeConfigSearcher(); documentTypeConfig = documentSearcher.findUniqueDocumentType(xmlDocument); } catch (MainException e) { - log.error("Failed init/find document config: " + e.getMessage(), e); + log.error("E-RSP12121: Failed init/find document config: " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, e); } catch (Exception e) { - log.error("Failed init/find document config: " + e.getMessage(), e); + log.error("E-RSP12122: Failed init/find document config: " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, new MainException(e)); } @@ -139,7 +139,7 @@ public class TransformationHandler extends RaspHandler { log.debug("Failed to transform document: " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, e); } catch (Exception e) { - log.error("Failed to transform document: " + e.getMessage(), e); + log.error("E-RSP12123: Failed to transform document: " + e.getMessage(), e); throw AxisFaultUtil.buildAxisFault(msgContext, new MainException(e)); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/IdentifierUtility.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/IdentifierUtility.java index 387b22005618d387934697b558e793a0ecbc9e51..52cfae13d54440bb063d1f58c07350173dfb3e02 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/IdentifierUtility.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/IdentifierUtility.java @@ -20,7 +20,6 @@ package dk.gov.oiosi.common; import dk.gov.oiosi.addressing.EndpointAddress; -import dk.gov.oiosi.addressing.EndpointAddressHttp; import dk.gov.oiosi.communication.Uri; import dk.gov.oiosi.uddi.UddiGuidId; import dk.gov.oiosi.uddi.UddiId; @@ -70,13 +69,13 @@ public class IdentifierUtility { */ public static EndpointAddress getEndpointAddressFromString(final String endpointAddress) { if (!endpointAddress.toLowerCase().startsWith("http://")) { - throw new IllegalArgumentException("EndpointAddress not an http:// address: " + endpointAddress); + throw new IllegalArgumentException("E-RSP32002: EndpointAddress not an http:// address: " + endpointAddress); } try { - return new EndpointAddressHttp(new Uri(endpointAddress)); + return new EndpointAddress(new Uri(endpointAddress)); } catch (URISyntaxException e) { - throw new IllegalArgumentException("EndpointAddress could not be created from " + endpointAddress, e); + throw new IllegalArgumentException("E-RSP32001: EndpointAddress could not be created from " + endpointAddress, e); } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/LogUtil.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/LogUtil.java index 69b6d473956ba3df9deb1f9ddad2bf57834642a5..6193c8cdfff420f3f6bff73806c7a1c244a1c697 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/LogUtil.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/LogUtil.java @@ -5,8 +5,7 @@ import java.util.Iterator; /** * Utility class for printing collection to log string - * - * @author Dmitriy Lapko, TrueLink A/S + * * @since OIORASP 1.3.0 */ public class LogUtil { diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/OutVariable.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/OutVariable.java index 00609e0471a617f1140d9f51289ed8c367242e57..9c3b46a4287654c982dbdb5bd8adf3c79b20ba1b 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/OutVariable.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/OutVariable.java @@ -13,7 +13,7 @@ * The Original Code is Java RASP toolkit. * * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and + * created by Lenio are Copyright (C) 2007 Danish National IT and * Telecom Agency (http://www.itst.dk). All Rights Reserved. */ @@ -21,37 +21,43 @@ package dk.gov.oiosi.common; /** * Represents an out variable to have .Net like out variable on custom collections + * * @param The type of the parameter */ public class OutVariable { - private T variable; - /** - * Default constructor that sets the internal variable to null. - */ - public OutVariable() {} + private T variable; + + /** + * Default constructor that sets the internal variable to null. + */ + public OutVariable() { + } + + /** + * Constructor that takes the variable as parameter and sets it internally + * + * @param variable Variable to set on the new object. + */ + public OutVariable(T variable) { + setVariable(variable); + } + + /** + * Gets the internal variable. + * + * @return the internal variable. + */ + public T getVariable() { + return variable; + } - /** - * Constructor that takes the variable as parameter and sets it internally - * @param variable - */ - public OutVariable(T variable) { - setVariable(variable); - } - - /** - * Gets the internal variable - * @return the internal variable - */ - public T getVariable() { - return variable; - } - - /** - * Set the internal variable - * @param variable the variable to be set internally - */ - public void setVariable(T variable) { - this.variable = variable; - } + /** + * Set the internal variable. + * + * @param variable the variable to be set internally + */ + public void setVariable(T variable) { + this.variable = variable; + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/RaspLibraryException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/RaspLibraryException.java index d1c7370eb0d6e4d1bd71153645c0c590cf50bc81..80bb6fce016efcfdb1f4b7ce41ee6c6493e96dd8 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/RaspLibraryException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/RaspLibraryException.java @@ -28,9 +28,8 @@ public class RaspLibraryException extends RuntimeException { /** * RaspLibraryException. - * - * @param string - * message + * + * @param string message */ public RaspLibraryException(final String string) { super(string); @@ -38,22 +37,19 @@ public class RaspLibraryException extends RuntimeException { /** * RaspLibraryException. - * - * @param t - * message + * + * @param t Error thrown. */ - public RaspLibraryException(final Throwable t) { - super(t); + public RaspLibraryException(final Throwable t, final String errorCode) { + super(errorCode, t); } /** * RaspLibraryException. - * - * @param message - * message + * + * @param message message */ - public RaspLibraryException(String message, Throwable e) { - super(message,e); + public RaspLibraryException(String message, Throwable e, final String errorCode) { + super(errorCode + ": " + message, e); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/Utilities.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/Utilities.java index 5c04f4c4f58c8c3fce481dc8d61d8a6a2bf00b15..44b65b0f0fc3ba3afd467bbe2d4a0b1131c1ff4f 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/Utilities.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/Utilities.java @@ -180,7 +180,7 @@ public class Utilities { return IdentifierUtility.getUddiIDFromString(profileTModelGuid); } - throw new OioublDocumentProfileMappingNotFoundException(profileName); + throw new OioublDocumentProfileMappingNotFoundException(profileName, "E-RSP32002"); } /** @@ -210,6 +210,6 @@ public class Utilities { return IdentifierUtility.getUddiIDFromString(profileTModelGuid); } - throw new OioublDocumentProfileMappingNotFoundException(profileName); + throw new OioublDocumentProfileMappingNotFoundException(profileName, "E-RSP32002"); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/ICache.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/ICache.java index f592128639a69ef4de36b88bb2e246be5119ff33..da860a7a0bd91804c5555974e1aa7b39ad24e3e1 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/ICache.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/ICache.java @@ -13,87 +13,81 @@ * The Original Code is Java RASP toolkit. * * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and + * created by Lenio are Copyright (C) 2007 Danish National IT and * Telecom Agency (http://www.itst.dk). All Rights Reserved. */ - package dk.gov.oiosi.common.cache; -import java.util.Map; - import dk.gov.oiosi.common.OutVariable; +import java.util.Map; + /** - * Interface that represents a simple cache + * Interface that represents a simple cache */ public interface ICache { - - public static final String CONFIG_CACHE_NAME = "CacheName"; - /** + String CONFIG_CACHE_NAME = "CacheName"; + + /** * Adds the key-value pair to the cache. - * - * @param key - * key for cached item - * @param value - * item to cache + * + * @param key key for cached item + * @param value item to cache */ void add(TKey key, TValue value); /** * Sets the value of the specified key. Overwrites value if already present. - * - * @param key key for cached item + * + * @param key key for cached item * @param value item to cache */ void set(TKey key, TValue value); - + /** * Lookup whether a given key is represented in the cache. - * - * @param key - * key to search for + * + * @param key key to search for * @return true if key exists */ boolean containsKey(TKey key); /** * Removes a given key-value pair from the cache, based on the key. - * - * @param key - * remove item for key + * + * @param key remove item for key */ void remove(TKey key); /** * Try to get the value from a given key. - * - * @param key - * search for item with key - * @return value or null if unknown + * + * @param key search for item with key + * @return whether any results where found. */ boolean tryGetValue(TKey key, OutVariable value); /** * Check the validity of the data in the cache - * + * * @return number of expired cache entries */ - /* - * dlk, 2012-04-05 - * - * In the code, which was posted to digitalizer.dk regarding propositions - * for improvements of caches, TimedCache was modified to return integer in - * this method. Let's keep it. - */ + /* + * dlk, 2012-04-05 + * + * In the code, which was posted to digitalizer.dk regarding propositions + * for improvements of caches, TimedCache was modified to return integer in + * this method. Let's keep it. + */ int checkExpired(); - /** - * @return configuration map for this cache instance. Can be used by cache - * clients to pass them additional configuraiton parameters. Can - * return null. - */ + /** + * @return configuration map for this cache instance. Can be used by cache + * clients to pass them additional configuraiton parameters. Can + * return null. + */ Map getConfiguration(); int getSize(); diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/MultipleQuantityCache.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/MultipleQuantityCache.java index c05bcfdaf43d616927f8230ccab307229958b9f5..8fca6b7809ee61e6ba0d7cd99ec036ae87988021 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/MultipleQuantityCache.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/MultipleQuantityCache.java @@ -53,17 +53,15 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public static final String CONFIG_MAX_SIZE = "maxSize"; public static final String CONFIG_MAX_EQUAL_KEY_SIZE = "maxEqualKeySize"; - - private Map> _keyedDictionary; - private int _maxSize; - private int _maxEqualKeySize; - protected int _cacheUsageIndex; private final Object _lockObject = new Object(); - /** * Keeps configuration so cache users can use it for additional configuration of their functionality */ private final Map configuration; + protected int _cacheUsageIndex; + private Map> _keyedDictionary; + private int _maxSize; + private int _maxEqualKeySize; /** * Constructor that takes the max size of the cache @@ -82,7 +80,7 @@ public class MultipleQuantityCache extends AbstractStatisticsColle */ public MultipleQuantityCache(int maxSize, int maxEqualKeySize) { if (maxSize < 0) { - throw new IllegalArgumentException(CONFIG_MAX_SIZE); + throw new IllegalArgumentException("E-RSP32202: " + CONFIG_MAX_SIZE); } this.configuration = new HashMap(); this.configuration.put(CONFIG_MAX_SIZE, String.valueOf(maxSize)); @@ -91,37 +89,37 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public MultipleQuantityCache(Map configuration) { if (configuration == null) { - configuration = new HashMap(2); + configuration = new HashMap<>(2); } /* - * dlk, 2012-03-21 - * - * Keep configuration so cache users can use it for additional - * configuration of their functionality - */ + * dlk, 2012-03-21 + * + * Keep configuration so cache users can use it for additional + * configuration of their functionality + */ this.configuration = configuration; if (configuration.containsKey(CONFIG_MAX_SIZE)) { String value = configuration.get(CONFIG_MAX_SIZE); - int maxSize = Integer.valueOf(value); + int maxSize = Integer.parseInt(value); if (maxSize < 0) { - throw new IllegalArgumentException(CONFIG_MAX_SIZE); + throw new IllegalArgumentException("E-RSP32202: " + CONFIG_MAX_SIZE); } value = configuration.get(CONFIG_MAX_EQUAL_KEY_SIZE); int maxEqualKeySize = 1; if (value != null) { - maxEqualKeySize = Integer.valueOf(value); + maxEqualKeySize = Integer.parseInt(value); if (maxEqualKeySize < 0) { - throw new IllegalArgumentException(CONFIG_MAX_EQUAL_KEY_SIZE); + throw new IllegalArgumentException("E-RSP32203: " + CONFIG_MAX_EQUAL_KEY_SIZE); } } this.setup(maxSize, maxEqualKeySize); } else { - throw new IllegalArgumentException("Argument [" + CONFIG_MAX_SIZE + "] was not present in the configuration arguments"); + throw new IllegalArgumentException("E-RSP32204: Argument [" + CONFIG_MAX_SIZE + "] was not present in the configuration arguments"); } } protected IMultipleQuantityValueHolder buildValueHolder(TKey key) { - return new LeastRecentlyUsedListValueHolder(key, _maxEqualKeySize); + return new LeastRecentlyUsedListValueHolder<>(key, _maxEqualKeySize); } private void setup(int maxSize, int maxEqualKeySize) { @@ -132,7 +130,7 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public void add(TKey key, TValue value) { if (key == null) { - throw new ArgumentNullException("key"); + throw new ArgumentNullException("key", "E-RSP32205"); } this.statData.incrementAddTotalCount(); if (_maxSize == 0) { @@ -158,7 +156,7 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public boolean containsKey(TKey key) { if (key == null) { - throw new ArgumentNullException("key"); + throw new ArgumentNullException("key", "E-RSP32205"); } if (_maxSize == 0) { this.statData.incrementContainsMissCount(); @@ -183,7 +181,7 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public void remove(TKey key) { if (key == null) { - throw new ArgumentNullException("key"); + throw new ArgumentNullException("key", "E-RSP32205"); } this.statData.incrementRemoveTotalCount(); if (_maxSize == 0) { @@ -196,7 +194,7 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public boolean tryGetValue(TKey key, OutVariable value) { if (key == null) { - throw new ArgumentNullException("key"); + throw new ArgumentNullException("key", "E-RSP32205"); } if (_maxSize == 0) { return false; @@ -225,10 +223,10 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public int checkExpired() { this.statData.incrementCheckExpiredTotalCount(); /* - * We need to protect this method from simultaneous access, otherwise - * ConcurrentModificationException can occur if someone calls this - * method outside (not via method add) - */ + * We need to protect this method from simultaneous access, otherwise + * ConcurrentModificationException can occur if someone calls this + * method outside (not via method add) + */ boolean removed = false; synchronized (_lockObject) { if (_keyedDictionary.size() >= _maxSize) { @@ -284,4 +282,4 @@ public class MultipleQuantityCache extends AbstractStatisticsColle public int getSize() { return _keyedDictionary.size(); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/TimedCache.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/TimedCache.java index 5cc76ef2dec23bd318425bfe6a0952d06f94eca6..285c263b85fed2d9e233e9e1f1b743ef2361f932 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/TimedCache.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/TimedCache.java @@ -52,7 +52,7 @@ public class TimedCache extends AbstractStatisticsCollectorCache extends AbstractStatisticsCollectorCache> cache; - - /* - * Let's use AtomicBoolean, which guarantees that 2 threads will not change - * it from false to true simultaneously by method - */ - private AtomicBoolean isCheckRunningNow = new AtomicBoolean(false); - private final Map configuration; + /* + * Let's use AtomicBoolean, which guarantees that 2 threads will not change + * it from false to true simultaneously by method + */ + private final AtomicBoolean isCheckRunningNow = new AtomicBoolean(false); /* * Constructors, present before OIORASP 1.3.0 @@ -114,40 +112,15 @@ public class TimedCache extends AbstractStatisticsCollectorCache>(); this.createExpiredCheckTask(); } - protected TimeSpan parseTimeOut(Map configuration) { - return parseField(configuration, CONFIG_VALIDITY_TIME_IN_MINUTES, CONFIG_VALIDITY_TIME_IN_HOURS, DEFAULT_VALIDITY_IN_MINUTES); - } - - protected TimeSpan parseFrequency(Map configuration) { - return parseField(configuration, CONFIG_FREQUENCY_IN_MINUTES, CONFIG_FREQUENCY_IN_HOURS, DEFAULT_FREQUENCY_IN_MINUTES); - } - - private TimeSpan parseField(Map configuration, String configMinutes, String configHours, int configDefault) { - TimeSpan timeSpan; - if (configuration.containsKey(configMinutes)) { - String value = configuration.get(configMinutes); - int minutes = Integer.valueOf(value); - timeSpan = new TimeSpan(TimeUnit.MINUTES, minutes); - } else if (configuration.containsKey(configHours)) { - String value = configuration.get(configHours); - int hours = Integer.valueOf(value); - timeSpan = new TimeSpan(TimeUnit.HOURS, hours); - } else { - log.warn("The " + configMinutes + "/" + configHours + " are not defined for the TimedCache, use default '" + configDefault + "' minutes."); - timeSpan = new TimeSpan(TimeUnit.MINUTES, configDefault); - } - return timeSpan; - } - /** * @param timeSpan Cache timeout value. * @param frequencyInMinutes frequency in minutes for checking the time cache. @@ -176,7 +149,7 @@ public class TimedCache extends AbstractStatisticsCollectorCache buildConfigMap(TimeSpan timeSpan, TimeSpan frequencyTimeSpan) { - Map configuration = new HashMap(); + Map configuration = new HashMap<>(); if (timeSpan.getTimeUnit() == TimeUnit.HOURS) { configuration.put(CONFIG_VALIDITY_TIME_IN_HOURS, String.valueOf(timeSpan.getTimeUnitSpan())); } else { @@ -190,9 +163,34 @@ public class TimedCache extends AbstractStatisticsCollectorCache configuration) { + return parseField(configuration, CONFIG_VALIDITY_TIME_IN_MINUTES, CONFIG_VALIDITY_TIME_IN_HOURS, DEFAULT_VALIDITY_IN_MINUTES); + } + + protected TimeSpan parseFrequency(Map configuration) { + return parseField(configuration, CONFIG_FREQUENCY_IN_MINUTES, CONFIG_FREQUENCY_IN_HOURS, DEFAULT_FREQUENCY_IN_MINUTES); + } + + private TimeSpan parseField(Map configuration, String configMinutes, String configHours, int configDefault) { + TimeSpan timeSpan; + if (configuration.containsKey(configMinutes)) { + String value = configuration.get(configMinutes); + int minutes = Integer.parseInt(value); + timeSpan = new TimeSpan(TimeUnit.MINUTES, minutes); + } else if (configuration.containsKey(configHours)) { + String value = configuration.get(configHours); + int hours = Integer.parseInt(value); + timeSpan = new TimeSpan(TimeUnit.HOURS, hours); + } else { + log.warn("W-RSP32305: The " + configMinutes + "/" + configHours + " are not defined for the TimedCache, use default '" + configDefault + "' minutes."); + timeSpan = new TimeSpan(TimeUnit.MINUTES, configDefault); + } + return timeSpan; + } + private void createExpiredCheckTask() { // Start a scheduled task to clean the cache at a fix rate - CacheExpiredCheckTask task = new CacheExpiredCheckTask(this); + CacheExpiredCheckTask task = new CacheExpiredCheckTask<>(this); // Let's use the same scheduling infrastructure in the whole OIORASP library. ScheduledExecutor.getInstance().scheduleJob(task, cacheCheckFrequency.getTimeUnitSpan(), cacheCheckFrequency.getTimeUnit()); } @@ -226,7 +224,7 @@ public class TimedCache extends AbstractStatisticsCollectorCache cacheValue = new TimedCacheValue(timeOut, value); + TimedCacheValue cacheValue = new TimedCacheValue<>(timeOut, value); synchronized (cache) { cache.put(key, cacheValue); } @@ -297,7 +295,7 @@ public class TimedCache extends AbstractStatisticsCollectorCache ignoreMe = new OutVariable(); + OutVariable ignoreMe = new OutVariable<>(); found = tryGetValue(key, ignoreMe); // Move statistics update outside synchronized section - statData uses concurrent-safe objects @@ -330,16 +328,16 @@ public class TimedCache extends AbstractStatisticsCollectorCache extends AbstractStatisticsCollectorCache extends AbstractStatisticsCollectorCache * @param */ @@ -59,7 +59,7 @@ public class LeastRecentlyUsedListValueHolder implements IMultiple @Override public void add(TValue value) { - this.valueList.add(new InternalValueHolder(value)); + this.valueList.add(new InternalValueHolder<>(value)); } protected class InternalValueHolder { diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/holder/SimpleValueHolder.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/holder/SimpleValueHolder.java index f18e6c55139f496cddb5b4be588d67bfa07554cc..1c3a67bf9069e3abadbcbfee8a51dafa0d6c434e 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/holder/SimpleValueHolder.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/holder/SimpleValueHolder.java @@ -5,69 +5,66 @@ import dk.gov.oiosi.common.cache.MultipleQuantityCache; /** * Simple value holder for {@link MultipleQuantityCache} caches. Supposes to be * used for implementation of Least recently used algorithm. - * - * @author Dmitriy Lapko, TrueLink A/S - * + * * @param * @param */ public class SimpleValueHolder implements IMultipleQuantityValueHolder { - protected final TKey key; - /* - * Marked as volatile so all threads are aware about changes in this value. - */ - protected volatile TValue value; - /** - * Index which shows at which number of cache usage this key was returned. - */ - /* - * Marked as volatile so all threads are aware about changes in this value. - */ - protected volatile int usageIndex; + protected final TKey key; + /* + * Marked as volatile so all threads are aware about changes in this value. + */ + protected volatile TValue value; + /** + * Index which shows at which number of cache usage this key was returned. + */ + /* + * Marked as volatile so all threads are aware about changes in this value. + */ + protected volatile int usageIndex; - public SimpleValueHolder(TKey key) { - this.key = key; - } + public SimpleValueHolder(TKey key) { + this.key = key; + } - @Override - public TValue getValue() { - return this.value; - } + @Override + public TValue getValue() { + return this.value; + } - @Override - public int incrementUseCount(int cacheUsageIndex) { - this.usageIndex = cacheUsageIndex; - return cacheUsageIndex; - } + @Override + public int incrementUseCount(int cacheUsageIndex) { + this.usageIndex = cacheUsageIndex; + return cacheUsageIndex; + } - @Override - public int getUseCount() { - return usageIndex; - } + @Override + public int getUseCount() { + return usageIndex; + } - @Override - public TKey getKey() { - return this.key; - } + @Override + public TKey getKey() { + return this.key; + } - @Override - public void add(TValue value) { - this.value = value; - } + @Override + public void add(TValue value) { + this.value = value; + } - @Override - public boolean isEmpty() { - return value == null; - } + @Override + public boolean isEmpty() { + return value == null; + } - @Override - public String toString() { - StringBuffer sb = new StringBuffer(); - sb.append("used="); - sb.append(usageIndex); - sb.append(", value="); - sb.append(value); - return sb.toString(); - } + @Override + public String toString() { + return "SimpleValueHolder{" + + "key=" + key + + ", value=" + value + + ", usageIndex=" + usageIndex + + '}'; + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/holder/SingleValueHolder.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/holder/SingleValueHolder.java deleted file mode 100644 index a2d5de8d2cd024d356542f25f7bfa5de6a908432..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/cache/holder/SingleValueHolder.java +++ /dev/null @@ -1,42 +0,0 @@ -package dk.gov.oiosi.common.cache.holder; - -import dk.gov.oiosi.common.cache.MultipleQuantityCache; - -/** - * Value holder with one value only for implementation Least frequently used - * cache policy by {@link MultipleQuantityCache} implementations. - * - * @author Dmitriy Lapko, TrueLink A/S - * - * @param - * @param - */ -public class SingleValueHolder extends SimpleValueHolder implements IMultipleQuantityValueHolder { - - private volatile int useCount; - - public SingleValueHolder(TKey key) { - super(key); - } - - @Override - public int incrementUseCount(int cacheUsageIndex) { - return this.useCount++; - } - - @Override - public int getUseCount() { - return this.useCount; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("used="); - sb.append(useCount); - sb.append(", value="); - sb.append(value); - return sb.toString(); - } - -} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/AbstractScheduleJob.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/AbstractScheduleJob.java index f9c87f4785d161b5462b5f07eaca0278594741ba..9cf75777e638f2713f1661cf46f6f68560e3a756 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/AbstractScheduleJob.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/AbstractScheduleJob.java @@ -31,14 +31,14 @@ public abstract class AbstractScheduleJob implements Runnable, Serializable { continueAttempts = doJob(); } catch (RuntimeException e) { if (logEnabled) { - log.error("Scheduler: " + getJobDetails() + " failed with exception", e); + log.error("E-RSP32401: Scheduler: " + getJobDetails() + " failed with exception", e); } throw e; } catch (Exception e) { if (logEnabled) { - log.error("Scheduler: " + getJobDetails() + " failed with exception", e); + log.error("E-RSP32402: Scheduler: " + getJobDetails() + " failed with exception", e); } - throw new RuntimeException("Scheduler: " + getJobDetails() + " failed", e); + throw new RuntimeException("E-RSP32403: Scheduler: " + getJobDetails() + " failed", e); } if (infoEnabled) { long duration = System.currentTimeMillis() - start; @@ -48,7 +48,7 @@ public abstract class AbstractScheduleJob implements Runnable, Serializable { if (log != null && log.isDebugEnabled()) { log.debug("Scheduler: job " + getJobDetails() + " requested to stop future executions"); } - throw new ScheduledExecutionTerminateRuntimeException("Scheduler: job " + getJobDetails() + " requested to stop future executions"); + throw new ScheduledExecutionTerminateRuntimeException("E-RSP32404: Scheduler: job " + getJobDetails() + " requested to stop future executions"); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/ScheduledExecutor.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/ScheduledExecutor.java index f80e6822d4a551d3e43c5dc5130c8c8260d0f9dd..8b494963f2ec82db3e42d13a976c54d7af4d9f98 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/ScheduledExecutor.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/schedule/ScheduledExecutor.java @@ -62,10 +62,10 @@ public class ScheduledExecutor { try { executor.scheduleWithFixedDelay(job, interval, interval, timeUnit); } catch (IllegalArgumentException e) { - log.error("Scheduling failed for job=" + job + ", error: " + e.getMessage(), e); + log.error("E-RSP32411: Scheduling failed for job=" + job + ", error: " + e.getMessage(), e); throw e; } catch (RejectedExecutionException e) { - log.warn("ScheduledExecutor is requested to shutdown, skip scheduling a new job=" + job + ", error=" + e.getMessage(), e); + log.warn("W-RSP32412: ScheduledExecutor is requested to shutdown, skip scheduling a new job=" + job + ", error=" + e.getMessage(), e); return; } if (log.isInfoEnabled()) { @@ -77,7 +77,7 @@ public class ScheduledExecutor { try { executor.execute(job); } catch (RejectedExecutionException ree) { - log.warn("ScheduledExecutor is requested to shutdown, skip execution of a new job " + job); + log.warn("W-RSP32413: ScheduledExecutor is requested to shutdown, skip execution of a new job " + job); } } @@ -87,7 +87,7 @@ public class ScheduledExecutor { try { executor.scheduleWithFixedDelay(job, initialDelay, interval, timeUnit); } catch (RejectedExecutionException ree) { - log.warn("ScheduledExecutor is requested to shutdown, skip scheduling a new job " + job); + log.warn("W-RSP32414: ScheduledExecutor is requested to shutdown, skip scheduling a new job " + job); return; } if (log.isInfoEnabled()) { diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/DownloadCRLStartupTask.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/DownloadCRLStartupTask.java index ab5c1d9f185c3590893277ae3692c6fe1755a679..0a8ac697572e1190562ae18efb1d4bb8df52f46b 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/DownloadCRLStartupTask.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/DownloadCRLStartupTask.java @@ -36,18 +36,18 @@ public class DownloadCRLStartupTask extends AbstractStartupTask { log.info("DownloadCRLStartupTask: started"); if (!isRevocationCrlSource()) { - log.warn("DownloadCRLStartupTask: startup task to pre-load CRL data is configured, but RevocationLookup implementation does not use CRL as revocation source. Please either change implementation or remove this startup task as it has no sense. Task is skipped."); + log.warn("W-RSP32501: DownloadCRLStartupTask: startup task to pre-load CRL data is configured, but RevocationLookup implementation does not use CRL as revocation source. Please either change implementation or remove this startup task as it has no sense. Task is skipped."); return; } - List urlList = new ArrayList(configList.size()); + List urlList = new ArrayList<>(configList.size()); for (StartupTaskConfiguration c : configList) { if (CONFIG_DOWNLOAD_CRL_URL.equals(c.getName())) { URL url; try { url = new URL(c.getValue()); } catch (Exception e) { - log.warn("DownloadCRLStartupTask: failed parse CRL URL [" + c.getValue() + "], so skip it: " + e.getMessage()); + log.warn("W-RSP32502: DownloadCRLStartupTask: failed parse CRL URL [" + c.getValue() + "], so skip it: " + e.getMessage()); continue; } downloadCrlUrl(url); @@ -64,7 +64,7 @@ public class DownloadCRLStartupTask extends AbstractStartupTask { } } catch (Exception e) { - log.error("DownloadCRLStartupTask: failed to execute task", e); + log.error("E-RSP32503: DownloadCRLStartupTask: failed to execute task", e); } } @@ -73,7 +73,7 @@ public class DownloadCRLStartupTask extends AbstractStartupTask { try { lookup = RevocationLookupFactory.createRevocationLookupClient(); } catch (Exception e) { - log.warn("DownloadCRLStartupTask: failed to create revocation lookup client to check revocation source type, consider non CRL", e); + log.warn("W-RSP32504: DownloadCRLStartupTask: failed to create revocation lookup client to check revocation source type, consider non CRL", e); return false; } return lookup.getRevocationSourceType() == IRevocationLookup.RevocationSourceType.CRL; @@ -83,4 +83,4 @@ public class DownloadCRLStartupTask extends AbstractStartupTask { CrlCacheUpdateJob preloadJob = new CrlCacheUpdateJob(url, "preload"); ScheduledExecutor.getInstance().runJobNow(preloadJob); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/IStartupTask.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/IStartupTask.java index c86d483d90272b6659edb9436adba196b4954dcb..df0eab8ccdebf78427eb3e4612cc1fa828fb8707 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/IStartupTask.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/IStartupTask.java @@ -6,26 +6,21 @@ import dk.gov.oiosi.exception.MainException; import java.util.List; /** - * Interface for all startup tasks, which can be executed by - * {@link ConfigurationHandler}.executeStartupTasks + * Interface for all startup tasks, which can be executed by {@link ConfigurationHandler}.executeStartupTasks * - * @author Dmitriy Lapko, TrueLink A/S * @since OIORASP 1.3.0 */ public interface IStartupTask { - /** - * Provides list of config options for the task - */ - public void init(List configList); - - /** - * Actually executes the task - * - * @throws MainException - * if some critical problem was found which should prevent - * system from further loading - */ - public void doTask() throws MainException; + /** + * Provides list of config options for the task + */ + public void init(List configList); + /** + * Actually executes the task + * + * @throws MainException if some critical problem was found which should prevent system from further loading. + */ + public void doTask() throws MainException; } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/SchematronPreloadStartupTask.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/SchematronPreloadStartupTask.java index 8ebbc823f41d6843a618049ed3ff808c27b35cc9..ba2902e8c0c7d9dcb3ac8521802af51f51927536 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/SchematronPreloadStartupTask.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/SchematronPreloadStartupTask.java @@ -65,7 +65,7 @@ public class SchematronPreloadStartupTask extends AbstractStartupTask { log.info("SchematronPreloadStartupTask: finished in " + (System.currentTimeMillis() - start) + " ms"); } } catch (Exception e) { - log.error("SchematronPreloadStartupTask: failed to execute task", e); + log.error("E-RSP32511: SchematronPreloadStartupTask: failed to execute task", e); } } @@ -85,12 +85,12 @@ public class SchematronPreloadStartupTask extends AbstractStartupTask { increaseDocumentTypeProcessedCount(documentTypeConfig); return; } catch (Exception e) { - log.error("SchematronPreloadStartupTask: failed to preload schematron for document type '" + documentTypeConfig.getFriendlyName() + "'", e); + log.error("E-RSP32512: SchematronPreloadStartupTask: failed to preload schematron for document type '" + documentTypeConfig.getFriendlyName() + "'", e); return; } } } - log.warn("SchematronPreloadStartupTask: failed to find matching document type config for friendly name '" + value + "'"); + log.warn("W-RSP32513: SchematronPreloadStartupTask: failed to find matching document type config for friendly name '" + value + "'"); } protected void preValidateXmlFolder(String value) throws MainException, IOException { @@ -103,7 +103,7 @@ public class SchematronPreloadStartupTask extends AbstractStartupTask { } }); if (fileList == null || fileList.length == 0) { - log.warn("SchematronPreloadStartupTask: no *.xml files found in configured folder " + file.getCanonicalPath()); + log.warn("W-RSP32514: SchematronPreloadStartupTask: no *.xml files found in configured folder " + file.getCanonicalPath()); return; } for (File xmlFile : fileList) { @@ -112,7 +112,7 @@ public class SchematronPreloadStartupTask extends AbstractStartupTask { try { xmlDocument.load(xmlFile.getCanonicalPath()); } catch (Exception e) { - log.warn("SchematronPreloadStartupTask: failed to load file " + xmlFile.getCanonicalPath() + " as xml", e); + log.warn("W-RSP32515: SchematronPreloadStartupTask: failed to load file " + xmlFile.getCanonicalPath() + " as xml", e); continue; } DocumentTypeConfig documentType; @@ -120,10 +120,10 @@ public class SchematronPreloadStartupTask extends AbstractStartupTask { DocumentTypeConfigSearcher documentSearcher = new DocumentTypeConfigSearcher(); documentType = documentSearcher.findUniqueDocumentType(xmlDocument); } catch (NoDocumentTypeFoundFromXmlDocumentException e) { - log.warn("SchematronPreloadStartupTask: failed to find matching document type config for file " + xmlFile.getCanonicalPath()); + log.warn(" W-RSP32516: SchematronPreloadStartupTask: failed to find matching document type config for file " + xmlFile.getCanonicalPath()); continue; } catch (Exception e) { - log.warn("SchematronPreloadStartupTask: failed to find matching document type config for file " + xmlFile.getCanonicalPath(), e); + log.warn("W-RSP32517: SchematronPreloadStartupTask: failed to find matching document type config for file " + xmlFile.getCanonicalPath(), e); continue; } @@ -140,7 +140,7 @@ public class SchematronPreloadStartupTask extends AbstractStartupTask { } } } else { - log.warn("SchematronPreloadStartupTask: folder '" + file.getCanonicalPath() + "' does not exist or is not a directory"); + log.warn("W-RSP32518: SchematronPreloadStartupTask: folder '" + file.getCanonicalPath() + "' does not exist or is not a directory"); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTask.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTask.java index ca8b627cb0b1d3dced47f3e60bc139e6e18cc9a0..b6cfa65b804a4a71632bf78df9a8399e21bbbc9d 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTask.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTask.java @@ -35,7 +35,7 @@ public class StartCacheStateLogScheduledJobStartupTask extends AbstractStartupTa @Override public void doTask() throws MainException { if (!CacheStateLogScheduledJob.log.isInfoEnabled()) { - log.warn("Startup task StartCacheStateLogScheduledJobStartupTask is configured, but logging level for 'CacheStateLogScheduledJob' is above 'info', so the task is skipped."); + log.warn("W-RSP32521: Startup task StartCacheStateLogScheduledJobStartupTask is configured, but logging level for 'CacheStateLogScheduledJob' is above 'info', so the task is skipped."); return; } @@ -46,7 +46,7 @@ public class StartCacheStateLogScheduledJobStartupTask extends AbstractStartupTa try { scheduleJobRunInterval = Long.parseLong(config.getValue()); } catch (Exception e) { - log.warn("StartCacheStateLogScheduledJobStartupTask: failed to parse value of config field " + CONFIG_SCHEDULE_JOB_RUN_INTERVAL + "='" + config.getValue() + "', use default: " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL + " " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT); + log.warn("W-RSP32522: StartCacheStateLogScheduledJobStartupTask: failed to parse value of config field " + CONFIG_SCHEDULE_JOB_RUN_INTERVAL + "='" + config.getValue() + "', use default: " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL + " " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT); scheduleJobRunInterval = DEFAULT_SCHEDULE_JOB_RUN_INTERVAL; scheduleJobRunIntervalTimeUnit = DEFAULT_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT; } @@ -55,7 +55,7 @@ public class StartCacheStateLogScheduledJobStartupTask extends AbstractStartupTa try { scheduleJobRunIntervalTimeUnit = TimeUnit.valueOf(config.getValue()); } catch (Exception e) { - log.warn("StartCacheStateLogScheduledJobStartupTask: failed to parse value of config field " + CONFIG_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT + "='" + config.getValue() + "', use default: " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL + " " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT); + log.warn("W-RSP32523: StartCacheStateLogScheduledJobStartupTask: failed to parse value of config field " + CONFIG_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT + "='" + config.getValue() + "', use default: " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL + " " + DEFAULT_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT); scheduleJobRunInterval = DEFAULT_SCHEDULE_JOB_RUN_INTERVAL; scheduleJobRunIntervalTimeUnit = DEFAULT_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT; } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/OiosiCommunicationException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/OiosiCommunicationException.java index 43137bc56470094b1e25f8fc433609f95e362a84..1dad2fcd841365a2064b51e95bc71e1c6bfc8f0f 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/OiosiCommunicationException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/OiosiCommunicationException.java @@ -42,8 +42,8 @@ public class OiosiCommunicationException extends MainException { * * @param s message */ - public OiosiCommunicationException(final String s) { - super(s); + public OiosiCommunicationException(final String s, final String errorCode) { + super(s, errorCode); } /** @@ -64,4 +64,4 @@ public class OiosiCommunicationException extends MainException { public OiosiCommunicationException(final String s, final Throwable e) { super(s, e); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/Request.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/Request.java index d45ac662680f2b50f456a2dad4120556127c043c..02971c3f35b3d8d2295931204a0917e90158560a 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/Request.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/Request.java @@ -42,7 +42,7 @@ public class Request implements IRequest { /** * Local logger. */ - private Log log = LogFactory.getLog(Request.class); + private final Log log = LogFactory.getLog(Request.class); /** * Credentials set by caller. @@ -58,6 +58,34 @@ public class Request implements IRequest { * Policy. */ private SendPolicy policy = null; + /** + * modify RASP call not to use RM. + */ + private boolean useRM = true; + /** + * modify RASP call not to use WSS. + */ + private boolean useWSS = true; + /** + * use this proxyport in HTTP soap request. + */ + private int proxyPort = -1; + /** + * use this proxyhost in HTTP soap request. + */ + private String proxyHost = null; + /** + * Fallback axis configuration file. + */ + private String axisConfigurationFile = "./conf/client_axis2.xml"; + /** + * Fallback axis repository folder. + */ + private String axisRepositoryDir = "./test/conf/client"; + /** + * The actual 'request'. + */ + private IAxisDispatcher dispatcher = null; /** * Default constructor. @@ -66,14 +94,14 @@ public class Request implements IRequest { } /** - * Constructor + * Constructor. * * @param endpointAddress endpoint URI - * @throws MainException On error... + * @throws MainException On error. */ public Request(final Uri endpointAddress) throws MainException { // Test that a valid endpoint address was given - testEndpointAddressCompability(endpointAddress.toString()); + testEndpointAddressCompatibility(endpointAddress.toString()); setRequestUri(endpointAddress); setPolicy(ConfigurationHandler.getInstance().getSendPolicy()); } @@ -83,7 +111,7 @@ public class Request implements IRequest { * * @param endpointAddress endpoint uri * @param credentials credentials - * @throws MainException On error... + * @throws MainException On error. */ public Request(final Uri endpointAddress, final Credentials credentials) throws MainException { this(endpointAddress); @@ -105,11 +133,6 @@ public class Request implements IRequest { setPolicy(sendPolicy); } - /** - * modify RASP call not to use RM. - */ - private boolean useRM = true; - /** * Set whether the RASP call should use reliable messaging (RM). * @@ -119,11 +142,6 @@ public class Request implements IRequest { this.useRM = useRM; } - /** - * modify RASP call not to use WSS. - */ - private boolean useWSS = true; - /** * Set whether to use WS-Security in RASP call. * @@ -133,11 +151,6 @@ public class Request implements IRequest { this.useWSS = useWSS; } - /** - * use this proxyport in HTTP soap request. - */ - private int proxyPort = -1; - /** * Use this proxyport in HTTP soap request. * @@ -147,11 +160,6 @@ public class Request implements IRequest { proxyPort = port; } - /** - * use this proxyhost in HTTP soap request. - */ - private String proxyHost = null; - /** * Use this proxyhost in HTTP soap request. * @@ -161,11 +169,6 @@ public class Request implements IRequest { proxyHost = host; } - /** - * Fallback axis configuration file. - */ - private String axisConfigurationFile = "./conf/client_axis2.xml"; - /** * Set the fallback axis configuration file. * @@ -175,11 +178,6 @@ public class Request implements IRequest { axisConfigurationFile = value; } - /** - * Fallback axis repository folder. - */ - private String axisRepositoryDir = "./test/conf/client"; - /** * Set the fallback axis repository folder. * @@ -196,23 +194,18 @@ public class Request implements IRequest { * @throws RequestNoEndpointGivenException if input == null * @throws RequestNotSupportedSchemeException if unknown transport */ - protected void testEndpointAddressCompability(String endpointAddress) throws RequestNoEndpointGivenException, RequestNotSupportedSchemeException { + protected void testEndpointAddressCompatibility(String endpointAddress) throws RequestNoEndpointGivenException, RequestNotSupportedSchemeException { if (endpointAddress == null) { - throw new RequestNoEndpointGivenException(); + throw new RequestNoEndpointGivenException("E-RSP31001"); } // We only support 'http' String scheme = endpointAddress.toLowerCase(); if (!scheme.startsWith("http:")) { - throw new RequestNotSupportedSchemeException(scheme); + throw new RequestNotSupportedSchemeException(scheme, "E-RSP31002"); } } - /** - * The actual 'request'. - */ - private IAxisDispatcher dispatcher = null; - /** * Creates the proxy object. Note: This method is inherited from .Net... * @@ -227,7 +220,7 @@ public class Request implements IRequest { dispatcher = IAxisDispatcher.Factory.getDispatcher(axisConfigurationFile, axisRepositoryDir, useWSS, useRM, wSSPolicyFileName, httpRMPolicy, proxyPort, proxyHost); } catch (Exception e) { - log.error("Failed to create Axis Dispatcher: " + e.getMessage(), e); + log.error("E-RSP31013: Failed to create Axis Dispatcher: " + e.getMessage(), e); throw new ProxyGenerationException(e); } } @@ -236,26 +229,26 @@ public class Request implements IRequest { private void validateParameters() throws MainException { // test endpoint address if (requestUri == null) { - throw new MainException("Missing : endpoint address"); + throw new MainException("E-RSP31008: Missing : endpoint address"); } // test credentials if (credentials == null) { - throw new MainException("Missing : credentials"); + throw new MainException("E-RSP31009: Missing : credentials"); } // test policy if (policy == null) { - throw new MainException("Missing : policy"); + throw new MainException("E-RSP31010: Missing : policy"); } } /** * Synchronously sends a request and gets a response. * - * @param message The message to send - * @return The response message - * @throws MainException + * @param message The message to send. + * @return The response message. + * @throws MainException On error. */ public Response getResponse(OiosiMessage message) throws MainException { if (log.isDebugEnabled()) { @@ -300,34 +293,35 @@ public class Request implements IRequest { response.getResponseMessage().setSignatureProof(signatureProof[0]); } catch (XmlDocumentException e) { - log.error("Failed to send document: " + e.getMessage(), e); - throw e; + + log.error("E-RSP31011: Failed to send document: " + e.getMessage(), e); + throw new XmlDocumentException("E-RSP31011: " + e.getMessage()); } catch (AxisFault e) { /* - * dlk 2012-04-04 - * - * 1) Fixed error message - from "Failed to get document" to "Failed to send document" - * - * 2) Extended logging of error message - added parsing of AxisFault - * action and code. In case if a problem with .NET client receiving - * 400 HTTP code is solved, it will allow to see reason of the - * problem from server point of view - is it Sender or Receiver, - * which is important for Sender to know, should it try to resend a - * document or something wrong with it or with configuration. - */ + * dlk 2012-04-04 + * + * 1) Fixed error message - from "Failed to get document" to "Failed to send document" + * + * 2) Extended logging of error message - added parsing of AxisFault + * action and code. In case if a problem with .NET client receiving + * 400 HTTP code is solved, it will allow to see reason of the + * problem from server point of view - is it Sender or Receiver, + * which is important for Sender to know, should it try to resend a + * document or something wrong with it or with configuration. + */ String faultRole = AxisUtil.extractFaultCode(e.getFaultCode()); boolean receiverError = "Receiver".equals(faultRole); String soapFaultAction = AxisUtil.extractFaultAction(e.getFaultSubCodes()); - log.error("Failed to send document (AxisFault): role=" + faultRole + ", receiverError=" + receiverError + ", parsedAction=" + soapFaultAction, e); + log.error("E-RSP31015: Failed to send document (AxisFault): role=" + faultRole + ", receiverError=" + receiverError + ", parsedAction=" + soapFaultAction, e); - OiosiCommunicationException oce = new OiosiCommunicationException(e.getMessage(), e); + OiosiCommunicationException oce = new OiosiCommunicationException("E-RSP31012: " + e.getMessage(), e); oce.setSoapFaultAction(soapFaultAction); oce.setReceiverError(receiverError); throw oce; } catch (Exception e) { - log.error("Failed to send document: " + e.getMessage(), e); - throw new RaspLibraryException(e.getMessage(), e); + log.error("E-RSP31011: Failed to send document: " + e.getMessage(), e); + throw new RaspLibraryException(e.getMessage(), e, "E-RSP31011"); } // 4. Return @@ -389,4 +383,4 @@ public class Request implements IRequest { setAxisConfigurationFile(value.getAxisConfigurationFile()); setRepositoryDir(value.getAxisRepositoryDir()); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNoEndpointGivenException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNoEndpointGivenException.java index fd4b95f3efd8ac7e1d30f5aebf8cf5f8d7d3b5ba..0856398af8116d33cbe0b08ad7ad4635bc2d5b58 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNoEndpointGivenException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNoEndpointGivenException.java @@ -32,7 +32,7 @@ public class RequestNoEndpointGivenException extends OiosiCommunicationException /** * Base constructor. */ - public RequestNoEndpointGivenException() { - super(); + public RequestNoEndpointGivenException(String errorCode) { + super("", errorCode); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNotSupportedSchemeException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNotSupportedSchemeException.java index 199c0ca2d1dd29b6ccef4dec6fa5ee61f1d433b0..909a83065871fcc8a44789255e4b46b811fbfe9d 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNotSupportedSchemeException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/RequestNotSupportedSchemeException.java @@ -34,7 +34,7 @@ public class RequestNotSupportedSchemeException extends OiosiCommunicationExcept * * @param scheme the used scheme */ - public RequestNotSupportedSchemeException(final String scheme) { - super(scheme); + public RequestNotSupportedSchemeException(final String scheme, String errorCode) { + super(scheme, errorCode); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/AxisMercuryDispatcher.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/AxisMercuryDispatcher.java index 26269d6e2440882b8e80a4ab546e1fca7c7850e4..529759edf48ee5c42e7310887d8029524de4a16a 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/AxisMercuryDispatcher.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/AxisMercuryDispatcher.java @@ -93,7 +93,7 @@ public class AxisMercuryDispatcher implements IAxisDispatcher { synchronized (AxisMercuryDispatcher.class) { if (configContext == null) { // Do nothing, there is nothing to shutdown. - log.warn("Shutdown method was called even though no configContext exists."); + log.warn("W-RSP31401: Shutdown method was called even though no configContext exists."); } else { configContext.terminate(); configContext = null; @@ -146,7 +146,7 @@ public class AxisMercuryDispatcher implements IAxisDispatcher { return url.getFile(); } } catch (Exception e) { - log.warn("Error loading resource [" + f + "]: " + e.getMessage(), e); + log.warn("W-RSP31402: Error loading resource [" + f + "]: " + e.getMessage(), e); } return f; } @@ -184,7 +184,7 @@ public class AxisMercuryDispatcher implements IAxisDispatcher { log.debug("Reuse Axis2 Configuration: file=" + axisXml + ", repository=" + axisRepository); } if (!configContextKey.equals(key)) { - log.warn("This Implementation only supports one configuration context"); + log.warn("W-RSP31403: This Implementation only supports one configuration context"); } } } @@ -314,7 +314,7 @@ public class AxisMercuryDispatcher implements IAxisDispatcher { // On RM errors, we'd like to log them MercuryErrorCallback rmErrorCallback = new MercuryErrorCallback() { public void onError(RMException e) { - log.warn("AxisMercuryDispatcher: RM sending failed: " + e.getMessage(), e); + log.warn("W-RSP31404 : AxisMercuryDispatcher: RM sending failed: " + e.getMessage(), e); } }; clientOptions.setProperty(MercuryClientConstants.ERROR_CALLBACK, rmErrorCallback); @@ -348,14 +348,14 @@ public class AxisMercuryDispatcher implements IAxisDispatcher { log.debug("serviceClient.cleanupTransport() done for ThreadId=" + Thread.currentThread().getId() + ", ThreadName=" + Thread.currentThread().getName()); } } catch (Exception e) { - log.warn("AxisMercuryDispatcher: Failed to clean transport: " + e.getMessage(), e); + log.warn("W-RSP31405: AxisMercuryDispatcher: Failed to clean transport: " + e.getMessage(), e); } if (mc != null) { try { // Shut down the communication mc.terminateSequence(offeredSequenceId); } catch (Exception e) { - log.warn("AxisMercuryDispatcher: Failed to terminate sequence: " + e.getMessage(), e); + log.warn("W-RSP31406: AxisMercuryDispatcher: Failed to terminate sequence: " + e.getMessage(), e); } } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/IAxisDispatcher.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/IAxisDispatcher.java index 1095e1ddabc1c51808a9a31041ac6409e30aa995..cc4ae93d9e224fc24662d05a7b15adcbb1e7752b 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/IAxisDispatcher.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/IAxisDispatcher.java @@ -72,7 +72,7 @@ public interface IAxisDispatcher { } return dispatcher; } catch (Exception e) { - throw new ProxyGenerationException(e); + throw new ProxyGenerationException("E-RSP31003: " + e.getMessage()); } } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/TransportController.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/TransportController.java index b1b7a6f4e6f2601230365e649a5b8cfd5c76deb0..d8541fb560480e529c7d1fd0edba3dd1ca71b9f4 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/TransportController.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/client/TransportController.java @@ -13,7 +13,7 @@ public class TransportController { try { IAxisDispatcher.Factory.shutdownContext(); } catch (Exception e) { - throw new MainException("Error in shutting down axis2 context: " + e.getMessage(), e); + throw new MainException("E-RSP31005: Error in shutting down axis2 context: " + e.getMessage(), e); } } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultException.java index 93d1adeaa5435102900a018b1ec272db5febecb4..8e4b2aea28a522eb8b2bba6d71f295f7738e1774 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultException.java @@ -40,10 +40,10 @@ public class AmbiguousDocumentTypeResultException extends OiosiCommunicationExce /** * Default constructor. - * @param e message + * + * @param e Error message. */ - public AmbiguousDocumentTypeResultException(final String e) { - super(e); + public AmbiguousDocumentTypeResultException(final String e, final String errorCode) { + super(e, errorCode); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromIdException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromIdException.java index a4ad11b9b219f887d6b0a7658f98aaeabbe62541..fa0282e20d0461eb3d4bd0433a3c7d901f43f030 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromIdException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromIdException.java @@ -33,11 +33,10 @@ public class AmbiguousDocumentTypeResultFromIdException extends AmbiguousDocumen /** * Constructor. - * - * @param id - * The ID of the document + * + * @param id The ID of the document. */ - public AmbiguousDocumentTypeResultFromIdException(final Guid id) { - super(id.getGuid()); + public AmbiguousDocumentTypeResultFromIdException(final Guid id, final String errorCode) { + super(id.getGuid(), errorCode); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromParametersException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromParametersException.java index 01ecc4b57a163def5a06641686b0677e73a12666..8ed13f5515e4bf88817ffe70a120a08841866d68 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromParametersException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/AmbiguousDocumentTypeResultFromParametersException.java @@ -34,17 +34,13 @@ public class AmbiguousDocumentTypeResultFromParametersException extends OiosiCom /** * Constructor. - * - * @param rootName - * rootname of document - * @param rootNamespace - * document namespace - * @param identifierDiscriminators - * identifierDiscriminators + * + * @param rootName rootname of document + * @param rootNamespace document namespace + * @param identifierDiscriminators identifierDiscriminators */ public AmbiguousDocumentTypeResultFromParametersException(final String rootName, final String rootNamespace, - final XPathDiscriminatorConfigCollection identifierDiscriminators) { - super(rootName + " : " + rootNamespace + " : " + identifierDiscriminators); + final XPathDiscriminatorConfigCollection identifierDiscriminators, final String errorCode) { + super(rootName + " : " + rootNamespace + " : " + identifierDiscriminators, errorCode); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/CustomHeaderConfiguration.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/CustomHeaderConfiguration.java index 4a786875178281d3fc0045b25a72331081cab2be..5fd981ad84418ee05943743173e3e3c171da99d8 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/CustomHeaderConfiguration.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/CustomHeaderConfiguration.java @@ -40,7 +40,7 @@ public class CustomHeaderConfiguration { */ public CustomHeaderXPathConfiguration[] getXPaths() { if (!xPaths.isEmpty()) { - return xPaths.toArray(new CustomHeaderXPathConfiguration[xPaths.size()]); + return xPaths.toArray(new CustomHeaderXPathConfiguration[0]); } else { return null; } @@ -54,4 +54,4 @@ public class CustomHeaderConfiguration { public void setXPaths(CustomHeaderXPathConfiguration[] value) { xPaths = Arrays.asList(value); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentAllreadyAddedException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentAllreadyAddedException.java index 849a0623db15217fa8d37c67c68ac2ea584a7953..707fed48c1244de605836b96ae613fc9da8f3895 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentAllreadyAddedException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentAllreadyAddedException.java @@ -34,10 +34,10 @@ public class DocumentAllreadyAddedException extends OiosiCommunicationException /** * Constructor. - * + * * @param documentName name of document */ - public DocumentAllreadyAddedException(final String documentName) { - super("DocumentName" + documentName); + public DocumentAllreadyAddedException(final String documentName, final String errorCode) { + super("DocumentName" + documentName, errorCode); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeCollectionConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeCollectionConfig.java index 9dbd8e7c4b855fe9b6ded54e83d4146ad2cf0945..55b5ddd5caa63a7077419f0bd62a384f39801673 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeCollectionConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeCollectionConfig.java @@ -49,19 +49,19 @@ public class DocumentTypeCollectionConfig { /** * A list of RASP document types supported by the client (e.g. Invoices, Notifications...). * - * @return DocumentTypes as list. + * @param value DocumentTypes */ - public List getDocumentTypesAsList() { - return documentTypes; + public void setDocumentTypes(List value) { + documentTypes = value; } /** * A list of RASP document types supported by the client (e.g. Invoices, Notifications...). * - * @param value DocumentTypes + * @return DocumentTypes as list. */ - public void setDocumentTypes(List value) { - documentTypes = value; + public List getDocumentTypesAsList() { + return documentTypes; } /** @@ -71,10 +71,10 @@ public class DocumentTypeCollectionConfig { */ public void addDocumentType(DocumentTypeConfig documentTypeConfig) throws DocumentAllreadyAddedException { if (documentTypeConfig == null) { - throw new ArgumentNullException("documentType"); + throw new ArgumentNullException("documentType", "E-RSP31101"); } if (containsDocumentTypeByValue(documentTypeConfig)) { - throw new DocumentAllreadyAddedException(documentTypeConfig.getFriendlyName()); + throw new DocumentAllreadyAddedException(documentTypeConfig.getFriendlyName(), "E-RSP31127"); } documentTypes.add(documentTypeConfig); } @@ -86,7 +86,7 @@ public class DocumentTypeCollectionConfig { */ public void removeDocumentType(DocumentTypeConfig documentTypeConfig) { if (documentTypeConfig == null) { - throw new ArgumentNullException("documentType"); + throw new ArgumentNullException("documentType", "E-RSP31101"); } documentTypes.remove(documentTypeConfig); } @@ -104,25 +104,25 @@ public class DocumentTypeCollectionConfig { * Returns whether a certain document type is in the collection. The document type is in the collection if it has the same id or has the * same root name, root namespace and identifier discriminators. * - * @param documentTypeConfig - * @return whether the documenttype is in the configuration + * @param documentTypeConfig DocumentTypeConfig. + * @return whether the DocumentType is in the configuration. */ public boolean containsDocumentTypeByValue(DocumentTypeConfig documentTypeConfig) { return documentTypes.contains(documentTypeConfig); } /** - * Returns whether a certain document type is in the collection. The document type is in the collectio if the reference is the same. + * Returns whether a certain document type is in the collection. The document type is in the collection if the reference is the same. * - * @param documentTypeConfig - * @return whether the documenttype is in the configuration + * @param documentTypeConfig DocumentTypeConfig. + * @return whether the DocumentType is in the configuration */ public boolean containsDocumentTypeByReference(DocumentTypeConfig documentTypeConfig) { return documentTypes.contains(documentTypeConfig); } /** - * Gets the documents types with a certain root name and root namespace. This does not uniqely identfies a certain document type hence + * Gets the documents types with a certain root name and root namespace. This does not uniquely identify a certain document type hence * multiple document types can be returned as result. * * @param rootName @@ -130,7 +130,7 @@ public class DocumentTypeCollectionConfig { * @return document types */ public Iterator getDocumentTypes(String rootName, String rootNamespace) { - List results = new ArrayList(); + List results = new ArrayList<>(); for (DocumentTypeConfig config : documentTypes) { if (config.getRootName().equals(rootName) && config.getRootNamespace().equals(rootNamespace)) { results.add(config); @@ -151,18 +151,18 @@ public class DocumentTypeCollectionConfig { XPathDiscriminatorConfigCollection identifierDiscriminators) throws NoDocumentTypeFoundFromParametersException, AmbiguousDocumentTypeResultFromParametersException, ArgumentNullException { if (rootName == null) { - throw new ArgumentNullException("rootName"); + throw new ArgumentNullException("rootName", "E-RSP31102"); } if (rootNamespace == null) { - throw new ArgumentNullException("rootNamespace"); + throw new ArgumentNullException("rootNamespace", "E-RSP31103"); } if (identifierDiscriminators == null) { - throw new ArgumentNullException("identifierDiscriminators"); + throw new ArgumentNullException("identifierDiscriminators", "E-RSP31104"); } DocumentTypeConfig documentType = tryGetDocumentType(rootName, rootNamespace, identifierDiscriminators); if (documentType == null) { - throw new NoDocumentTypeFoundFromParametersException(rootName, rootNamespace, identifierDiscriminators); + throw new NoDocumentTypeFoundFromParametersException(rootName, rootNamespace, identifierDiscriminators, "E-RSP31108"); } return documentType; } @@ -176,7 +176,7 @@ public class DocumentTypeCollectionConfig { public DocumentTypeConfig getDocumentType(Guid id) throws NoDocumentTypeFoundFromIdException, AmbiguousDocumentTypeResultFromIdException { DocumentTypeConfig documentType = tryGetDocumentType(id); if (documentType == null) { - throw new NoDocumentTypeFoundFromIdException(id); + throw new NoDocumentTypeFoundFromIdException(id, "E-RSP31105"); } return documentType; } @@ -193,16 +193,16 @@ public class DocumentTypeCollectionConfig { XPathDiscriminatorConfigCollection identifierDiscriminators) throws AmbiguousDocumentTypeResultFromParametersException, ArgumentNullException { if (rootName == null) { - throw new ArgumentNullException("rootName"); + throw new ArgumentNullException("rootName", "E-RSP31102"); } if (rootNamespace == null) { - throw new ArgumentNullException("rootNamespace"); + throw new ArgumentNullException("rootNamespace", "E-RSP31103"); } if (identifierDiscriminators == null) { - throw new ArgumentNullException("identifierDiscriminators"); + throw new ArgumentNullException("identifierDiscriminators", "E-RSP31104"); } - List searchList = new ArrayList(); + List searchList = new ArrayList<>(); for (DocumentTypeConfig config : documentTypes) { if (config.getRootName().equals(rootName) && config.getRootNamespace().equals(rootNamespace) && config.getIdentifierDiscriminators().equals(identifierDiscriminators)) { @@ -213,7 +213,7 @@ public class DocumentTypeCollectionConfig { if (searchList.isEmpty()) { return null; } else if (searchList.size() > 1) { - throw new AmbiguousDocumentTypeResultFromParametersException(rootName, rootNamespace, identifierDiscriminators); + throw new AmbiguousDocumentTypeResultFromParametersException(rootName, rootNamespace, identifierDiscriminators, "E-RSP31106"); } return searchList.get(0); } @@ -225,7 +225,7 @@ public class DocumentTypeCollectionConfig { * @return a specific document type */ public DocumentTypeConfig tryGetDocumentType(Guid id) throws AmbiguousDocumentTypeResultFromIdException { - List searchList = new ArrayList(); + List searchList = new ArrayList<>(); for (DocumentTypeConfig config : documentTypes) { if (config.getId().equals(id)) { @@ -236,8 +236,8 @@ public class DocumentTypeCollectionConfig { return null; } if (searchList.size() > 1) { - throw new AmbiguousDocumentTypeResultFromIdException(id); + throw new AmbiguousDocumentTypeResultFromIdException(id, "E-RSP31107"); } - return (DocumentTypeConfig) searchList.get(0); + return searchList.get(0); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeConfig.java index 849963c14e40d517c9b3212ce71b289c3a97433a..d724e4b796db3ea482f61bbda5ad4490ad99b81c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/DocumentTypeConfig.java @@ -48,8 +48,8 @@ public class DocumentTypeConfig { private String xsltTransformStylesheetPath = ""; private String profileIdXPath; private Guid id = Guid.newGuid(); - private List schematronValidationConfigList = new ArrayList(); - private List namespaces = new ArrayList(); + private List schematronValidationConfigList = new ArrayList<>(); + private List namespaces = new ArrayList<>(); private DocumentEndpointInformation endpointType = new DocumentEndpointInformation(); private XPathDiscriminatorConfigCollection identifierDiscriminators = new XPathDiscriminatorConfigCollection(); private CustomHeaderConfiguration customHeaderConfiguration = new CustomHeaderConfiguration(); @@ -69,13 +69,13 @@ public class DocumentTypeConfig { */ public DocumentTypeConfig(String rootName, String rootNamespace, XPathDiscriminatorConfigCollection identifierDiscriminators) { if (rootName == null) { - throw new ArgumentNullException("rootName"); + throw new ArgumentNullException("rootName", "E-RSP31111"); } if (rootNamespace == null) { - throw new ArgumentNullException("rootNamespace"); + throw new ArgumentNullException("rootNamespace", "E-RSP31112"); } if (identifierDiscriminators == null) { - throw new ArgumentNullException("identifierDiscriminators"); + throw new ArgumentNullException("identifierDiscriminators", "E-RSP31113"); } this.rootName = rootName; this.rootNamespace = rootNamespace; @@ -102,25 +102,25 @@ public class DocumentTypeConfig { this(rootName, rootNamespace, identifierDiscriminators); if (friendlyName == null) { - throw new ArgumentNullException("friendlyName"); + throw new ArgumentNullException("friendlyName", "E-RSP31114"); } if (schemaPath == null) { - throw new ArgumentNullException("schemaPath"); + throw new ArgumentNullException("schemaPath", "E-RSP31115"); } if (stylesheetPath == null) { - throw new ArgumentNullException("stylesheetPath"); + throw new ArgumentNullException("stylesheetPath", "E-RSP31116"); } if (serviceContractTModel == null) { - throw new ArgumentNullException("serviceContractTModel"); + throw new ArgumentNullException("serviceContractTModel", "E-RSP31117"); } if (xsltTransformStylesheetPath == null) { - throw new ArgumentNullException("xsltTransformStylesheetPath"); + throw new ArgumentNullException("xsltTransformStylesheetPath", "E-RSP31118"); } if (endpointType == null) { - throw new ArgumentNullException("endpointType"); + throw new ArgumentNullException("endpointType", "E-RSP31119"); } if (schematronValidationConfigList == null) { - throw new ArgumentNullException("schematronValidationConfigs"); + throw new ArgumentNullException("schematronValidationConfigs", "E-RSP31120"); } this.friendlyName = friendlyName; this.schemaPath = schemaPath; @@ -153,7 +153,7 @@ public class DocumentTypeConfig { this(friendlyName, rootName, rootNamespace, schemaPath, stylesheetPath, serviceContractTModel, xsltTransformStylesheetPath, endpointType, identifierDiscriminators, schematronValidationConfigList); if (namespaces == null) { - throw new ArgumentNullException("namespaces"); + throw new ArgumentNullException("namespaces", "E-RSP31125"); } this.namespaces = namespaces; } @@ -190,7 +190,7 @@ public class DocumentTypeConfig { */ public void setFriendlyName(String value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } friendlyName = value; } @@ -211,7 +211,7 @@ public class DocumentTypeConfig { */ public void setRootNamespace(String value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } rootNamespace = value; @@ -233,7 +233,7 @@ public class DocumentTypeConfig { */ public void setRootName(String value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } rootName = value; @@ -255,7 +255,7 @@ public class DocumentTypeConfig { */ public void setServiceContractTModel(String value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } serviceContractTModel = value; @@ -278,23 +278,23 @@ public class DocumentTypeConfig { public void setSchemaPath(String value) { // @since 2.1.0 Empty value is valid. if (value == null) { - throw new ArgumentNullException("value is null"); + throw new ArgumentNullException("value", "E-RSP31121"); } /* * TODO DLK: Try to find another way to allow unit tests to run. It is - * meaningless for PROD environment... - */ + * meaningless for PROD environment... + */ schemaPath = SchematronValidationConfig.modifyValueForUnitTests(value); /* - * dlk, 2012-03-30 - * - * This logic, introduced in 2012, breaks real server systems - it - * searches only at file system, but on servers resources are located in - * classpath, e.g. dk.gov.oiosi.examples.service project - * - * Commons-configuration should be used instead, the same way as class - * XmlDocument uses it when it loads schema or schematron - */ + * dlk, 2012-03-30 + * + * This logic, introduced in 2012, breaks real server systems - it + * searches only at file system, but on servers resources are located in + * classpath, e.g. dk.gov.oiosi.examples.service project + * + * Commons-configuration should be used instead, the same way as class + * XmlDocument uses it when it loads schema or schematron + */ // File file = new File(value); // if (!file.exists()) { // // In case of unit tests, try one level out. @@ -324,7 +324,7 @@ public class DocumentTypeConfig { */ public void setStylesheetPath(String value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } stylesheetPath = value; @@ -336,11 +336,7 @@ public class DocumentTypeConfig { * @return Namespaces */ public PrefixedNamespace[] getNamespaces() { - return namespaces.toArray(new PrefixedNamespace[namespaces.size()]); - } - - public List getNamespacesList() { - return namespaces; + return namespaces.toArray(new PrefixedNamespace[0]); } public void setNamespaces(List namespaces) { @@ -354,7 +350,7 @@ public class DocumentTypeConfig { */ public void setNamespaces(PrefixedNamespace[] value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } namespaces = Arrays.asList(value); @@ -367,7 +363,7 @@ public class DocumentTypeConfig { */ public void setNamespaces(Iterator value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } // _namespaces = new ArrayList(value); @@ -377,6 +373,10 @@ public class DocumentTypeConfig { } } + public List getNamespacesList() { + return namespaces; + } + /** * Gets the definition of what type of endpoints will receive documents of this type * @@ -393,7 +393,7 @@ public class DocumentTypeConfig { */ public void setEndpointType(DocumentEndpointInformation value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } endpointType = value; @@ -430,7 +430,7 @@ public class DocumentTypeConfig { */ public void setXsltTransformStylesheetPath(String value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } xsltTransformStylesheetPath = value; @@ -452,7 +452,7 @@ public class DocumentTypeConfig { */ public void setIdentifierDiscriminators(XPathDiscriminatorConfigCollection value) { if (value == null) { - throw new ArgumentNullException("value"); + throw new ArgumentNullException("value", "E-RSP31121"); } identifierDiscriminators = value; @@ -474,7 +474,7 @@ public class DocumentTypeConfig { */ public void setSchematronValidationConfigList(List value) { if (value == null) { - throw new ArgumentNullException("List is null"); + throw new ArgumentNullException("List is null", "E-RSP31126"); } schematronValidationConfigList = value; @@ -525,7 +525,7 @@ public class DocumentTypeConfig { */ public boolean isDocumentOfType(XmlDocument document) throws XmlException { if (document == null) { - throw new ArgumentNullException("document"); + throw new ArgumentNullException("document", "E-RSP31124"); } OMElement root = document.getOMDocument(); @@ -541,9 +541,7 @@ public class DocumentTypeConfig { return false; } - boolean discriminateCollectionAnded = XPathDiscriminator.discriminateCollectionAnded(identifierDiscriminators, document, - getNamespaces()); - return discriminateCollectionAnded; + return XPathDiscriminator.discriminateCollectionAnded(identifierDiscriminators, document, getNamespaces()); } /** @@ -592,4 +590,4 @@ public class DocumentTypeConfig { ", customHeaderConfiguration=" + customHeaderConfiguration + '}'; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/KeyTypeMappingExpression.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/KeyTypeMappingExpression.java index dbdf89facf9ac682804559b188769a252fa4003f..33b465c7b8a2b5d198168771b35de5ae9260501d 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/KeyTypeMappingExpression.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/KeyTypeMappingExpression.java @@ -115,7 +115,7 @@ public class KeyTypeMappingExpression { try { return mappings.get(value); } catch (Exception ex) { - throw new KeyTypeMappingFailedException(value, ex); + throw new KeyTypeMappingFailedException("E-RSP31131: " + value, ex); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundException.java index d298f608e2854141441c6788510cb9b92b6e708c..9432bbb6d64e6e14ff1948e9ff5e0d4965543e19 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundException.java @@ -31,43 +31,37 @@ public class NoDocumentTypeFoundException extends OiosiCommunicationException { */ private static final long serialVersionUID = 1L; - /** - * Default constructor. - */ - public NoDocumentTypeFoundException() { - } +// /** +// * Default constructor. +// */ +// public NoDocumentTypeFoundException() { +// } /** * Default constructor. - * - * @param e - * message + * + * @param e message */ - public NoDocumentTypeFoundException(final String e) { - super(e); + public NoDocumentTypeFoundException(final String e, final String errorCode) { + super(e, errorCode); } /** * Constructor. - * - * @param innerException - * The inner exception + * + * @param innerException The inner exception. */ public NoDocumentTypeFoundException(final Throwable innerException) { super(innerException); } - + /** * Constructor. - * - * @param e - * message - * - * @param innerException - * The inner exception + * + * @param e message. + * @param innerException The inner exception. */ public NoDocumentTypeFoundException(final String e, final Throwable innerException) { super(e, innerException); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromIdException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromIdException.java index d384b1ecaab08d7030e71ee1dc803f26dacb1eee..a6808e3872405539904cda41240360026bef344e 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromIdException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromIdException.java @@ -33,24 +33,19 @@ public class NoDocumentTypeFoundFromIdException extends NoDocumentTypeFoundExcep /** * Constructor that takes the id of the document. - * - * @param id */ - public NoDocumentTypeFoundFromIdException(final Guid id) { - super(id.getGuid()); + public NoDocumentTypeFoundFromIdException(final Guid id, String errorCode) { + super(id.getGuid(), errorCode); } /** * Constructor that takes the id of the document and an exception as the * reason. - * - * @param id - * The ID of the document - * @param innerException - * The inner exception + * + * @param id The ID of the document + * @param innerException The inner exception */ public NoDocumentTypeFoundFromIdException(final Guid id, final Exception innerException) { super(id.getGuid(), innerException); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromParametersException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromParametersException.java index 437011b5f7236789ee989da4489de7ad2ade53d0..63bc15740b2a4c6d634b21f4cda084567d1a6fd0 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromParametersException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/NoDocumentTypeFoundFromParametersException.java @@ -25,7 +25,7 @@ import dk.gov.oiosi.xml.xpath.discriminator.XPathDiscriminatorConfigCollection; * NoDocumentTypeFoundFromParametersException. */ public class NoDocumentTypeFoundFromParametersException extends NoDocumentTypeFoundException { - + /** * serialVersionUID. */ @@ -35,9 +35,9 @@ public class NoDocumentTypeFoundFromParametersException extends NoDocumentTypeFo * Constructor. * @param rootName root name of document * @param rootNamespace document namespace - * @param identifierDiscriminators identifierDiscriminators + * @param identifierDiscriminators identifierDiscriminators */ - public NoDocumentTypeFoundFromParametersException(String rootName, String rootNamespace, XPathDiscriminatorConfigCollection identifierDiscriminators) { - super(rootName + " : " + rootNamespace + " : " + identifierDiscriminators); + public NoDocumentTypeFoundFromParametersException(String rootName, String rootNamespace, XPathDiscriminatorConfigCollection identifierDiscriminators, final String errorCode) { + super(rootName + " : " + rootNamespace + " : " + identifierDiscriminators, errorCode); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/OioublDocumentProfileMappingNotFoundException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/OioublDocumentProfileMappingNotFoundException.java index 1f66ff4f9efd0847df194c62f8d58ddf7410c30d..ca1d2d8011daf1d46bfbfd0dc9774f905137e4e1 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/OioublDocumentProfileMappingNotFoundException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/OioublDocumentProfileMappingNotFoundException.java @@ -43,8 +43,8 @@ public class OioublDocumentProfileMappingNotFoundException extends OiosiCommunic * @param e * message */ - public OioublDocumentProfileMappingNotFoundException(final String e) { - super(e); + public OioublDocumentProfileMappingNotFoundException(final String e, String errorCode) { + super(e, errorCode); } /** diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/ProfileMappingCollectionConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/ProfileMappingCollectionConfig.java index 01e55d91bc450f2fd940b2dcb50121dd18d27097..272887c41eb76ad1c5ae9c4eb6075c66c16d41c6 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/ProfileMappingCollectionConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/configuration/ProfileMappingCollectionConfig.java @@ -30,7 +30,7 @@ import java.util.List; */ public class ProfileMappingCollectionConfig { - private List _profileMappings = new ArrayList(); + private List profileMappings = new ArrayList<>(); /** * Returns a list of mappings between unique profile names and their @@ -39,7 +39,7 @@ public class ProfileMappingCollectionConfig { * @return The mapping */ public Iterable getProfileMappingIterator() { - return _profileMappings; + return profileMappings; } /** @@ -48,7 +48,7 @@ public class ProfileMappingCollectionConfig { * @param collection The collection to use in this configuration */ public void setProfileMappings(ProfileMapping[] collection) { - _profileMappings = Arrays.asList(collection); + profileMappings = Arrays.asList(collection); } /** @@ -57,7 +57,7 @@ public class ProfileMappingCollectionConfig { * @param collection The collection to add */ public void addProfileMappings(ProfileMapping[] collection) { - _profileMappings.addAll(Arrays.asList(collection)); + profileMappings.addAll(Arrays.asList(collection)); } /** @@ -65,22 +65,22 @@ public class ProfileMappingCollectionConfig { * * @throws DocumentAllreadyAddedException On error... */ - public void AddProfileMapping(ProfileMapping profileMapping) throws DocumentAllreadyAddedException { + public void addProfileMapping(ProfileMapping profileMapping) throws DocumentAllreadyAddedException { if (profileMapping == null) { - throw new ArgumentNullException("profileMapping"); + throw new ArgumentNullException("profileMapping", "E-RSP31141"); } if (containsProfileMappingByName(profileMapping.getName())) { - throw new DocumentAllreadyAddedException(profileMapping.getName()); + throw new DocumentAllreadyAddedException(profileMapping.getName(), "E-RSP31142"); } - _profileMappings.add(profileMapping); + profileMappings.add(profileMapping); } /** * Clears the mapping list */ - public void Clear() { - if (_profileMappings != null) { - _profileMappings.clear(); + public void clear() { + if (profileMappings != null) { + profileMappings.clear(); } } @@ -91,7 +91,7 @@ public class ProfileMappingCollectionConfig { * @return True, if profile mapping exists. */ public boolean containsProfileMappingByName(String profileMappingName) { - for (ProfileMapping mapping : _profileMappings) { + for (ProfileMapping mapping : profileMappings) { String currentProfileMappingName = mapping.getName(); if (currentProfileMappingName.equals(profileMappingName)) { return true; @@ -107,11 +107,11 @@ public class ProfileMappingCollectionConfig { * @return The corresponding profile mapping */ public ProfileMapping getMapping(String profileMappingName) { - for (ProfileMapping mapping : _profileMappings) { + for (ProfileMapping mapping : profileMappings) { if (mapping.getName().equals(profileMappingName)) { return mapping; } } return null; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/service/AxisServiceReceiver.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/service/AxisServiceReceiver.java index 1129acc1eacc6d7252dd2d6edeb8ed739c81e194..2e5a3955f6d1ccea6605f514bf1e746ef0b3afcc 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/service/AxisServiceReceiver.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/communication/service/AxisServiceReceiver.java @@ -52,12 +52,11 @@ import java.util.List; */ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { - private static Log log = LogFactory.getLog(AxisServiceReceiver.class); - private static final boolean AVOID_BODY_CLONE = true; + private static final Log log = LogFactory.getLog(AxisServiceReceiver.class); public OMElement doOperation(MessageContext msgContext, @SuppressWarnings("unused") MessageContext newMsgContext) throws Exception { - OMElement omElement_result = null; + OMElement omElementResult = null; IServiceContract docService = (IServiceContract) getTheImplementationObject(msgContext); String messageId = msgContext.getMessageID(); @@ -65,24 +64,24 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { OMElement requestBody = msgContext.getEnvelope().getBody().getFirstElement(); if (requestBody != null) { /* - * dlk 2012-03-29 - * - * Task 918 - * - * Instead of coping potentially big document, we can reuse existing - * loaded node from SOAPEnvelope and just wrap it in a new document. - */ + * dlk 2012-03-29 + * + * Task 918 + * + * Instead of coping potentially big document, we can reuse existing + * loaded node from SOAPEnvelope and just wrap it in a new document. + */ if (AVOID_BODY_CLONE) { /* - * We cannot just use requestBody without attaching to new - * OMDocument, otherwise XPath would not be calculated in - * current implementation, as they start from the root of the - * document, which in case of getting it directly from - * SOAPEnvelope, would start from root tag /soap:Envelope. - * - * In future version of OIORASP it will be fixed by using relative XPath definitions in - * dk.gov.oiosi.xml.xpath.DocumentXPathResolver.getNodes(XmlDocument, String, PrefixedNamespace[]) - */ + * We cannot just use requestBody without attaching to new + * OMDocument, otherwise XPath would not be calculated in + * current implementation, as they start from the root of the + * document, which in case of getting it directly from + * SOAPEnvelope, would start from root tag /soap:Envelope. + * + * In future version of OIORASP it will be fixed by using relative XPath definitions in + * dk.gov.oiosi.xml.xpath.DocumentXPathResolver.getNodes(XmlDocument, String, PrefixedNamespace[]) + */ OMFactory factory = requestBody.getOMFactory(); OMDocument document = factory.createOMDocument(); document.addChild(requestBody); @@ -96,8 +95,8 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { log.debug("Convert body"); requestBody = requestBody.cloneOMElement(); } catch (Exception e) { - log.error("Error converting body: " + e.getMessage(), e); - throw new MainException("Internal Error: " + e.getMessage(), e); + log.error("E-RSP31501: Error converting body: " + e.getMessage(), e); + throw new MainException("E-RSP31502: Internal Error: " + e.getMessage(), e); } } } @@ -120,7 +119,7 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { log.debug("Call Service class"); response = docService.requestRespond(oiosiMessage); } catch (Exception e) { - log.error("Service threw Exception: " + e.getMessage(), e); + log.error("E-RSP31503: Service threw Exception: " + e.getMessage(), e); // call cancel on service to keep statistic in sync if (docService instanceof IServiceContractTransaction) { @@ -131,7 +130,7 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { if (response != null) { log.debug("- we have response"); - omElement_result = response.getMessageXml().getOMDocument(); + omElementResult = response.getMessageXml().getOMDocument(); } else { log.debug("- response is null"); } @@ -140,7 +139,7 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { if (docService instanceof IServiceContractTransaction) { ((IServiceContractTransaction) docService).confirmOperation(messageId); } - return omElement_result; + return omElementResult; } /** @@ -203,7 +202,6 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { SignatureValidationProof signatureProof = (SignatureValidationProof) ctx.getProperty(Constants.RASP_SIGNATURE_PROOF); msg.setSignatureProof(signatureProof); } - } else { // try to find SignerCertificate - let user create signature proof. // No Ldap here @@ -215,7 +213,6 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { } } } - } /* @@ -250,9 +247,9 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { newMsgContext.setProperty(WSHandlerConstants.RECV_RESULTS, msgContext.getProperty(WSHandlerConstants.RECV_RESULTS)); } } catch (MainException e) { - throw AxisFaultUtil.buildAxisFault(msgContext, e.getSoapFaultAction(), e.getSoapFaultCode(), e); + throw AxisFaultUtil.buildAxisFault(msgContext, e.getSoapFaultAction(), e); } catch (Exception e) { - throw AxisFaultUtil.buildAxisFault(msgContext, MainException.DEFAULT_SOAP_ACTION, "Receiver", e); + throw AxisFaultUtil.buildAxisFault(msgContext, MainException.DEFAULT_SOAP_ACTION, e); } } @@ -272,4 +269,4 @@ public class AxisServiceReceiver extends AbstractInOutMessageReceiver { log.debug("Body Still empty..."); } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/CacheFactory.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/CacheFactory.java index 972880ce72347e2f39c39d95ad7ab84dd777f20d..21b3acba4843108c4029fde0ee8900c156624b50 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/CacheFactory.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/CacheFactory.java @@ -42,46 +42,39 @@ import java.util.Map; public class CacheFactory { private static Log log = LogFactory.getLog(CacheFactory.class); + /** + * Cache to store the UnfinishedSignatureValidationProof + */ + //private ICache messageIdUnfinishedSignaturesCache = null; + private static CacheFactory cacheFactory = new CacheFactory(); /** * Cache to store the ocsp lookup - check is a certificate is valid */ private IThreadSafeCache ocspLookupCache = null; - /** * Cache to store the result from the CRL list - the certificates that has been revoked, ala blacklisted */ private IThreadSafeCache crlLookupCache = null; - private IThreadSafeCache> uddiServiceCache = null; - private IThreadSafeCache uddiTModelCache = null; - /** * Cache to store certificated, that has been retrieved from LDAP */ private IThreadSafeCache certificateCache = null; - /** - * Cache to store the compiled schematron - */ - private IThreadSafeCache schematronStoreCache = null; - /** * Cache to store the compiled schema file */ // private ICache schemaStoreCache = null; - /** - * Cache to store the UnfinishedSignatureValidationProof + * Cache to store the compiled schematron */ - //private ICache messageIdUnfinishedSignaturesCache = null; - - private static CacheFactory cacheFactory = new CacheFactory(); + private IThreadSafeCache schematronStoreCache = null; @SuppressWarnings("unchecked") /* - * Marked as protected to make it testable + * Marked as protected to make it testable. */ protected CacheFactory() { CacheConfig cacheConfig = ConfigurationHandler.getInstance().getCacheConfig(); @@ -92,20 +85,22 @@ public class CacheFactory { this.uddiTModelCache = this.createCache(cacheConfig.getUddiTModelCache()); this.certificateCache = this.createCache(cacheConfig.getCertificateCache()); this.schematronStoreCache = this.createCache(cacheConfig.getSchematronCache()); - } catch (Throwable e) { - throw new RaspLibraryException(e); + } catch (Exception e) { + throw new RaspLibraryException(e.getMessage(), e, "E-RSP11002"); } } + public static CacheFactory getInstance() { + return cacheFactory; + } + @SuppressWarnings({"rawtypes"}) /** * Instantiates cache implementation. If given cacheConfig is null or is not valid, generates default cache implementation. + * + * Marked as protected to avoid disclosure of internal implementation of + * this class for clients code, but with possibility to override implementation. */ - /* - * Marked as protected to avoid disclosure of internal implementation of - * this class for clients code, but with possibility to override - * implementation. - */ protected IThreadSafeCache createCache(CacheConfigElement cacheConfig) throws Exception { IThreadSafeCache cache = createCacheInternal(cacheConfig); if (cache == null) { @@ -120,7 +115,7 @@ public class CacheFactory { cacheConfigInternal = CacheFactoryConstants.getDefaultCacheConfig(cacheCode); } if (cacheConfigInternal == null) { - log.warn("CacheFactory: not found default configuration for cache code " + cacheCode + " in class CacheFactoryConstants, use global default configuration"); + log.warn("W-RSP11007: CacheFactory: not found default configuration for cache code " + cacheCode + " in class CacheFactoryConstants, use global default configuration"); cacheConfigInternal = CacheFactoryConstants.getDefaultCacheConfig(); } cache = createCacheInternal(cacheConfigInternal); @@ -132,9 +127,9 @@ public class CacheFactory { } @SuppressWarnings({"unchecked", "rawtypes"}) - private IThreadSafeCache createCacheInternal(CacheConfigElement cacheConfigElement) throws Exception { + private IThreadSafeCache createCacheInternal(CacheConfigElement cacheConfigElement) { if (cacheConfigElement == null) { - log.warn("CacheFactory: cannot find cache configuration, use default"); + log.warn("W-RSP11008: CacheFactory: cannot find cache configuration, use default"); return null; } Class cacheClass = null; @@ -142,7 +137,7 @@ public class CacheFactory { try { cacheClass = Class.forName(cacheConfigElement.getImplementationNamespaceClass()); } catch (Throwable e) { - log.error("Failed to find class of cache implementation, config = " + cacheConfigElement, e); + log.error("W-RSP11009: Failed to find class of cache implementation, config = " + cacheConfigElement, e); } } IThreadSafeCache cache = null; @@ -150,29 +145,25 @@ public class CacheFactory { try { Map configurationList = cacheConfigElement.getConfigurationList(); if (configurationList == null) { - configurationList = new HashMap(1); + configurationList = new HashMap<>(1); } /* - * CACHE_NAME is removed from configuration at RaspConfiguration.xml files, - * it can be set programmatically by the library itself. - * - * Setting it in RaspConfiguration.xml which is error-prone - * (client can just forget to set it!), and it is already - * defined by parent tag of cache configuration element. - */ + * CACHE_NAME is removed from configuration at RaspConfiguration.xml files, + * it can be set programmatically by the library itself. + * + * Setting it in RaspConfiguration.xml which is error-prone + * (client can just forget to set it!), and it is already + * defined by parent tag of cache configuration element. + */ configurationList.put(ICache.CONFIG_CACHE_NAME, cacheConfigElement.getCacheCode()); cache = (IThreadSafeCache) cacheClass.getConstructor(new Class[]{Map.class}).newInstance(cacheConfigElement.getConfigurationList()); } catch (Throwable e) { - log.error("Failed to instantiate cache implementation class, it should implement IThreadSafeCache interface and contain constructor with Map object, config = " + cacheConfigElement, e); + log.error("E-RSP11010: Failed to instantiate cache implementation class, it should implement IThreadSafeCache interface and contain constructor with Map object, config = " + cacheConfigElement, e); } } return cache; } - public static CacheFactory getInstance() { - return cacheFactory; - } - public ICache getOcspLookupCache() { return ocspLookupCache; } @@ -196,4 +187,4 @@ public class CacheFactory { public IThreadSafeCache getSchematronStoreCache() { return this.schematronStoreCache; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationHandler.java index c522de9e1686160dc93e07bc8328f1f7ae8614a1..fc29b36fd6fe406a122bce616e8a57250784fccc 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationHandler.java @@ -67,9 +67,11 @@ public class ConfigurationHandler { * The default file name of the configuration file. */ private static final String RASPCONFIGURATION_XML_DEFAULT = "RaspConfiguration.xml"; + private static final String JCE_ERROR_STRING = "Java JCE is not installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension"; + private static final Object mutex = new Object(); private static String versionNumber; private static String raspConfigurationFileName = RASPCONFIGURATION_XML_DEFAULT; - private static ConfigurationHandler static_configurationHandler = null; + private static ConfigurationHandler static_ConfigurationHandler = null; private XMLConfiguration raspConfigurationFile = null; private LdapSettings ldapSettings = null; private OcspConfig ocspConfig = null; @@ -96,30 +98,38 @@ public class ConfigurationHandler { * * @return ConfigurationHandler The static instance of the configuration handler */ - public synchronized static ConfigurationHandler getInstance() { + public static synchronized ConfigurationHandler getInstance() { return getInstance(false); } /** * Returns the static instance of the configuration handler. * + * @param forceReload Force reload of the XML configuration file? * @return ConfigurationHandler The static instance of the configuration handler */ - public synchronized static ConfigurationHandler getInstance(final boolean forceReload) { - if (static_configurationHandler == null || forceReload) { - static_configurationHandler = new ConfigurationHandler(); - static_configurationHandler.loadXMLConfiguration(); + public static synchronized ConfigurationHandler getInstance(final boolean forceReload) { + if (static_ConfigurationHandler == null || forceReload) { + static_ConfigurationHandler = new ConfigurationHandler(); + static_ConfigurationHandler.loadXMLConfiguration(); } - return static_configurationHandler; + return static_ConfigurationHandler; + } + + public static String getRaspConfigurationFileName() { + return raspConfigurationFileName; } /** * Sets the file name of the configuration file. * - * @param file The file name + * @param file The file name. */ public static void setConfigurationFile(String file) { raspConfigurationFileName = file; + + // Setting a new raspConfigurationFileName, then clear currently loaded (old/cached) values: + resetLocalCaches(); } /** @@ -127,7 +137,7 @@ public class ConfigurationHandler { */ @SuppressWarnings("unchecked") static List parseStartTaskList(XMLConfiguration xmlConfig) { - List taskList = new ArrayList(); + List taskList = new ArrayList<>(); String startupConfigKey = "//ConfigurationSection[@*=\"StartupConfig\"]/StartupTasks/StartupTask"; List startupTaskConfigList = xmlConfig.configurationsAt(startupConfigKey); if (startupTaskConfigList != null) { @@ -136,25 +146,21 @@ public class ConfigurationHandler { if (className != null) { className = className.trim(); } else { - log.warn("ConfigurationHandler: in RaspConfiguration a section StartupTask is found without subtag ImplementationNamespaceClass, section is ignored"); + log.warn("W-RSP11022: ConfigurationHandler: in RaspConfiguration a section StartupTask is found without subtag ImplementationNamespaceClass, section is ignored"); continue; } - List configList = new ArrayList(); + List configList = new ArrayList<>(); List configs = taskConfig.configurationsAt("ConfigurationList/Configuration"); if (configs != null) { for (HierarchicalConfiguration config : configs) { String name = config.getString("Name"); String value = config.getString("Value"); - if (name != null) { + if (name != null && value != null) { name = name.trim(); - } - if (value != null) { value = value.trim(); - } - if (name != null && value != null) { configList.add(new StartupTaskConfiguration(name, value)); } else { - log.warn("ConfigurationHandler: in RaspConfiguration.xml a section StartupTask for class " + className + " is found with tag ConfigurationList/Configuration but empty Name or Value subtags, configuration is ignored."); + log.warn("W-RSP11023: ConfigurationHandler: in RaspConfiguration.xml a section StartupTask for class " + className + " is found with tag ConfigurationList/Configuration but empty Name or Value subtags, configuration is ignored."); } } } @@ -163,14 +169,14 @@ public class ConfigurationHandler { try { taskImpl = Class.forName(className); } catch (Exception e) { - log.warn("ConfigurationHandler: can not find class " + className + ", defined as Startup task implementation in RaspConfiguration.xml", e); + log.warn("W-RSP11024: ConfigurationHandler: can not find class " + className + ", defined as Startup task implementation in RaspConfiguration.xml", e); continue; } Object taskInstance; try { taskInstance = taskImpl.newInstance(); } catch (Exception e) { - log.warn("ConfigurationHandler: cannot create new instance with empty constructor for " + className + ", defined as Startup task implementation in RaspConfiguration.xml", e); + log.warn("W-RSP11025: ConfigurationHandler: cannot create new instance with empty constructor for " + className + ", defined as Startup task implementation in RaspConfiguration.xml", e); continue; } if (taskInstance instanceof IStartupTask) { @@ -178,12 +184,12 @@ public class ConfigurationHandler { try { startupTask.init(configList); } catch (Exception e) { - log.warn("ConfigurationHandler: failed to initialize instance of class " + className + " with config values " + configList + ", startup task is skipped", e); + log.warn("W-RSP11026: ConfigurationHandler: failed to initialize instance of class " + className + " with config values " + configList + ", startup task is skipped", e); continue; } taskList.add(startupTask); } else { - log.warn("ConfigurationHandler: class " + className + ", defined as Startup task implementation in RaspConfiguration.xml, does not implement interface " + IStartupTask.class.getName() + ", skipped."); + log.warn("W-RSP11027: ConfigurationHandler: class " + className + ", defined as Startup task implementation in RaspConfiguration.xml, does not implement interface " + IStartupTask.class.getName() + ", skipped."); } } } @@ -197,13 +203,24 @@ public class ConfigurationHandler { * Marked as protected to be clearable from unit tests only. */ protected static void clear() { - ConfigurationHandler.static_configurationHandler = null; + ConfigurationHandler.static_ConfigurationHandler = null; } static String getVersionNumber() { return versionNumber; } + static void resetLocalCaches() { + ConfigurationHandler.getInstance().ldapSettings = null; + ConfigurationHandler.getInstance().ocspConfig = null; + ConfigurationHandler.getInstance().cacheConfig = null; + ConfigurationHandler.getInstance().uddiConfig = null; + ConfigurationHandler.getInstance().profileMappingCollectionConfig = null; + ConfigurationHandler.getInstance().raspDocumentTypeCollectionConfig = null; + + static_ConfigurationHandler = null; + } + /** * Environment check and initializes related libraries * @@ -212,12 +229,12 @@ public class ConfigurationHandler { private void initEnvironment() { try { if (Cipher.getMaxAllowedKeyLength("AES") < 1024) { - log.fatal("Java JCE is not installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension"); - throw new RaspLibraryException("Java JCE is not installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension"); + log.fatal("E-RSP11021: " + JCE_ERROR_STRING); + throw new RaspLibraryException(JCE_ERROR_STRING, null, "E-RSP11021"); } } catch (NoSuchAlgorithmException e) { - log.fatal("Java JCE might not be installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension", e); - throw new RaspLibraryException("Java JCE is not installed - see https://en.wikipedia.org/wiki/Java_Cryptography_Extension", e); + log.fatal("E-RSP11021: " + JCE_ERROR_STRING, e); + throw new RaspLibraryException(JCE_ERROR_STRING, e, "E-RSP11021"); } Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); @@ -233,20 +250,23 @@ public class ConfigurationHandler { /** * Loads the configuration from the file specified with setConfigurationFile(String file). */ - synchronized void loadXMLConfiguration() { + public synchronized void loadXMLConfiguration() { + // Empty local cache: + uddiConfig = null; + raspConfigurationFile = ConfigurationLoaderUtil.loadXMLConfiguration(raspConfigurationFileName, log); - log.debug("Loading RaspConfiguration from file=" + raspConfigurationFileName); + log.info("Loading RaspConfiguration from file=" + raspConfigurationFileName); versionNumber = loadVersionNumber(); Version.initNumbering(); log.info("This RASP is: " + Version.getVersion()); } /** - * Get the LDAP Settings. + * Load the LDAP Settings from configuration. * - * @return LDAP settings + * @return LdapSettings object. */ - public LdapSettings getLdapSettings() { + public LdapSettings loadLdapSettings() { // The XPath for our configuration section String xpathBase = "//ConfigurationSection[@*=\"LdapSettings\"]/"; @@ -254,15 +274,19 @@ public class ConfigurationHandler { log.debug("Loading LDAP settings from RaspConfiguration file..."); } - synchronized (RASPCONFIGURATION_XML_DEFAULT) { - if (ldapSettings == null) { + if (ldapSettings == null) { + synchronized (mutex) { ldapSettings = new LdapSettings(); - ldapSettings.setHost(raspConfigurationFile.getString(xpathBase + "Host")); - ldapSettings.setMaxResults(raspConfigurationFile.getInt(xpathBase + "MaxResults")); - ldapSettings.setPort(raspConfigurationFile.getInt(xpathBase + "Port")); - ldapSettings.setSearchServerTimeoutMsec(raspConfigurationFile.getInt(xpathBase + "SearchServerTimeoutMsec")); - ldapSettings.setSearchClientTimeoutMsec(raspConfigurationFile.getInt(xpathBase + "ConnectionTimeoutMsec")); + String host = raspConfigurationFile.getString(xpathBase + "CertificateInfrastructure[@id='NemID']/Host"); + String port = raspConfigurationFile.getString(xpathBase + "CertificateInfrastructure[@id='NemID']/Port"); + ldapSettings.setHostPortForNemId(host + ":" + port); + host = raspConfigurationFile.getString(xpathBase + "CertificateInfrastructure[@id='MitID']/Host"); + port = raspConfigurationFile.getString(xpathBase + "CertificateInfrastructure[@id='MitID']/Port"); + ldapSettings.setHostPortForMitId(host + ":" + port); + ldapSettings.setConnectionTimeoutMsec(raspConfigurationFile.getInt(xpathBase + "ConnectionTimeoutMsec")); + ldapSettings.setSocketTimeoutMsec(raspConfigurationFile.getInt(xpathBase + "SocketTimeoutMsec")); + log.info("New LDAP-settings loaded: " + ldapSettings); } } return ldapSettings; @@ -272,14 +296,14 @@ public class ConfigurationHandler { * Get the OCSP settings. * * @return OCSP settings - * @throws URISyntaxException On error... + * @throws URISyntaxException On error. */ public OcspConfig getOcspConfig() throws URISyntaxException { log.debug("RaspConfigurationHandler.getOcspConfig"); if (ocspConfig == null) { // The XPath for our configuration section String xpathBase = "//ConfigurationSection[@*=\"OcspConfig\"]/"; - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { ocspConfig = new OcspConfig(); ocspConfig.setDefaultTimeoutMsec(raspConfigurationFile.getInt(xpathBase + "DefaultTimeoutMsec")); @@ -300,7 +324,7 @@ public class ConfigurationHandler { public CacheConfig getCacheConfig() { log.debug("RaspConfigurationHandler.getCacheConfig"); if (cacheConfig == null) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { cacheConfig = new CacheConfig(); cacheConfig.setOcspLookupCache(parseCacheConfigElement(CacheConfigKey.OcspLookupCache)); cacheConfig.setCrlLookupCache(parseCacheConfigElement(CacheConfigKey.CrlLookupCache)); @@ -320,7 +344,7 @@ public class ConfigurationHandler { String xpathCacheBase = "//ConfigurationSection[@*=\"CacheConfig\"]//" + cacheElementName; String implementationNamespaceClass = raspConfigurationFile.getString(xpathCacheBase + "/ImplementationNamespaceClass"); String implementationAssembly = raspConfigurationFile.getString(xpathCacheBase + "/ImplementationAssembly"); - List list = raspConfigurationFile.configurationsAt(xpathCacheBase + "/CacheConfigurationCollection"); + List list = raspConfigurationFile.configurationsAt(xpathCacheBase + "/CacheConfigurationCollection"); Map configuration = null; if (!list.isEmpty()) { /* @@ -330,15 +354,15 @@ public class ConfigurationHandler { * given key, so we replace it with configurationsAt() to support * old versions of RaspConfiguration.xml */ - SubnodeConfiguration subnodeConfiguration = list.get(0); + HierarchicalConfiguration subnodeConfiguration = list.get(0); configuration = this.cacheConfiguration(subnodeConfiguration); } return new CacheConfigElement(cacheElementName, implementationNamespaceClass, implementationAssembly, configuration); } @SuppressWarnings("unchecked") - private Map cacheConfiguration(SubnodeConfiguration subnodeConfiguration) { - Map configurationMap = new HashMap(); + private Map cacheConfiguration(HierarchicalConfiguration subnodeConfiguration) { + Map configurationMap = new HashMap<>(); List configurationCollection = subnodeConfiguration.configurationsAt("Configuration"); for (HierarchicalConfiguration cacheConfiguration : configurationCollection) { @@ -364,10 +388,10 @@ public class ConfigurationHandler { public List getRootCertificateLocationCollection() { // The XPath for our configuration section. String xpathBase = "//ConfigurationSection[@*=\"RootCertificateCollectionConfig\"]/"; - List collection = new ArrayList(); + List collection = new ArrayList<>(); RootCertificateConfig rootCertificateConfig; - List subnodeConfigurationList = raspConfigurationFile.configurationsAt(xpathBase + "RootCertificateLocationCollection"); + List subnodeConfigurationList = raspConfigurationFile.configurationsAt(xpathBase + "RootCertificateLocationCollection"); if (subnodeConfigurationList.isEmpty()) { // Get the Root certificate settings for old versions of RaspConfiguration.xml String xpathBaseOld = "//ConfigurationSection[@*=\"RootCertificateConfig\"]/"; @@ -379,7 +403,7 @@ public class ConfigurationHandler { collection.add(rootCertificateConfig); } else { // New version of RaspConfiguration.xml - contains tag RootCertificateLocationCollection - SubnodeConfiguration subnodeConfiguration = subnodeConfigurationList.get(0); + HierarchicalConfiguration subnodeConfiguration = subnodeConfigurationList.get(0); List rootCertificateLocationList = subnodeConfiguration.configurationsAt("RootCertificateLocation"); log.debug("RootCertificateLocationCollection: Elements found, count=" + rootCertificateLocationList.size()); @@ -393,7 +417,7 @@ public class ConfigurationHandler { collection.add(rootCertificateConfig); } } - log.debug("Root certificates loaded from RootCertificateLocationCollection, count=" + collection.size()); + log.info("Root certificates loaded from RootCertificateLocationCollection, count=" + collection.size()); return collection; } @@ -408,11 +432,9 @@ public class ConfigurationHandler { OcesX509CertificateConfig ocesX509CertConfig = new OcesX509CertificateConfig(); log.debug("getOcesX509CertificateConfig called..."); - synchronized (RASPCONFIGURATION_XML_DEFAULT) { - ocesX509CertConfig.set_personalCertificateSubjectKey(new OcesCertificateSubjectKey(raspConfigurationFile.getString(xpathBase + "/PersonalCertificateSubjectKey/SubjectKeyString"))); - ocesX509CertConfig.set_organizationCertificateSubjectKey(new OcesCertificateSubjectKey(raspConfigurationFile.getString(xpathBase + "/OrganizationCertificateSubjectKey/SubjectKeyString"))); - ocesX509CertConfig.set_employeeCertificateSubjectKey(new OcesCertificateSubjectKey(raspConfigurationFile.getString(xpathBase + "/EmployeeCertificateSubjectKey/SubjectKeyString"))); - ocesX509CertConfig.set_functionCertificateSubjectKey(new OcesCertificateSubjectKey(raspConfigurationFile.getString(xpathBase + "/FunctionCertificateSubjectKey/SubjectKeyString"))); + synchronized (mutex) { + ocesX509CertConfig.setOrganizationCertificateSubjectKey(new OcesCertificateSubjectKey(raspConfigurationFile.getString(xpathBase + "/OrganizationCertificateSubjectKey/SubjectKeyString"))); + ocesX509CertConfig.setFunctionCertificateSubjectKey(new OcesCertificateSubjectKey(raspConfigurationFile.getString(xpathBase + "/FunctionCertificateSubjectKey/SubjectKeyString"))); } return ocesX509CertConfig; } @@ -420,8 +442,8 @@ public class ConfigurationHandler { /** * Get the settings used for NHR/UDDI lookup. * - * @return UDDI settings - * @throws URISyntaxException On error... + * @return UDDI settings. + * @throws URISyntaxException On error. */ public UddiConfig getUddiConfig() throws URISyntaxException { return getUddiConfig(false); @@ -430,7 +452,7 @@ public class ConfigurationHandler { /** * Get the settings used for NHR/UDDI lookup. Loaded uddiConfig can be bypassed. * - * @return UDDI settings + * @return UddiConfig object. * @throws URISyntaxException On error... */ public UddiConfig getUddiConfig(final boolean forceReload) throws URISyntaxException { @@ -439,10 +461,9 @@ public class ConfigurationHandler { // The XPath for our configuration section String xpathBase = "//ConfigurationSection[@*=\"UddiConfig\"]/"; - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { uddiConfig = new UddiConfig(); - uddiConfig.setFallbackTimeoutMinutes(raspConfigurationFile.getInt(xpathBase + "FallbackTimeoutMinutes")); SubnodeConfiguration lookupRegistryFallbackSubNodes = raspConfigurationFile.configurationAt(xpathBase + "LookupRegistryFallbackConfig"); LookupRegistryFallbackConfig lookupRegistryFallbackConfig = getLookupRegistryFallbackConfig(lookupRegistryFallbackSubNodes); uddiConfig.setLookupRegistryFallbackConfig(lookupRegistryFallbackConfig); @@ -451,23 +472,24 @@ public class ConfigurationHandler { return uddiConfig; } - private LookupRegistryFallbackConfig getLookupRegistryFallbackConfig(SubnodeConfiguration lookupRegistryFallbackSubnodes) throws URISyntaxException { + private LookupRegistryFallbackConfig getLookupRegistryFallbackConfig(SubnodeConfiguration lookupRegistryFallbackSubNodes) throws URISyntaxException { LookupRegistryFallbackConfig config = new LookupRegistryFallbackConfig(); - ArrayList registries = new ArrayList(); - List registrySubnodes = lookupRegistryFallbackSubnodes.configurationsAt("PrioritizedRegistryList/Registry"); + ArrayList registries = new ArrayList<>(); + List registrySubnodes = lookupRegistryFallbackSubNodes.configurationsAt("PrioritizedRegistryList/Registry"); for (Object registrySubnodeObject : registrySubnodes) { SubnodeConfiguration registrySubnode = (SubnodeConfiguration) registrySubnodeObject; - Registry registry = getRegistry(registrySubnode); + Registry registry = loadRegistry(registrySubnode); registries.add(registry); } config.setRegistries(registries); return config; } - private Registry getRegistry(SubnodeConfiguration registrySubNode) throws URISyntaxException { + private Registry loadRegistry(SubnodeConfiguration registrySubNode) throws URISyntaxException { String xpath = "/EndpointCollection/Endpoint"; String[] endpoints = registrySubNode.getStringArray(xpath); - return new Registry(endpoints); + int uddiLookupTimeoutSeconds = registrySubNode.getInt("/UddiLookupTimeoutSeconds", 120); + return new Registry(endpoints, uddiLookupTimeoutSeconds); } /** @@ -489,7 +511,7 @@ public class ConfigurationHandler { public DocumentTypeCollectionConfig getRaspDocumentTypeCollectionConfig(final boolean forceReload) throws ConfigurationException { log.debug("RaspConfigurationHandler.getRaspDocumentTypeCollectionConfig"); if (raspDocumentTypeCollectionConfig == null || forceReload) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { try { raspDocumentTypeCollectionConfig = new DocumentTypeCollectionConfig(); @@ -499,8 +521,8 @@ public class ConfigurationHandler { raspDocumentTypeCollectionConfig.addDocumentType(typeConfig); } } catch (Exception e) { - log.error("Could not init DocumentTypeConfig " + e.getMessage(), e); - ConfigurationException ex = new ConfigurationException("Could not init DocumentTypeConfig " + e); + log.error("E-RSP11029: Could not init DocumentTypeConfig " + e.getMessage(), e); + ConfigurationException ex = new ConfigurationException("E-RSP11029: Could not init DocumentTypeConfig " + e); ex.setStackTrace(e.getStackTrace()); throw ex; } @@ -513,11 +535,11 @@ public class ConfigurationHandler { * Gets the send policy. * * @return The send policy - * @throws ConfigurationException On error... + * @throws ConfigurationException On error. */ public SendPolicy getSendPolicy() throws ConfigurationException { if (sendPolicy == null) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { log.debug("RaspConfigurationHandler.getSendPolicy"); // The XPath for our configuration section @@ -559,7 +581,7 @@ public class ConfigurationHandler { public UddiLookupClientFactoryConfig getUddiLookupClientFactoryConfig() { log.debug("RaspConfigurationHandler.getUddiLookupClientFactoryConfig"); if (uddiClientFactory == null) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { initFactories(); } } @@ -574,7 +596,7 @@ public class ConfigurationHandler { public RegistryLookupClientFactoryConfig getRegistryLookupClientFactoryConfig() { log.debug("RaspConfigurationHandler.getUddiLookupClientFactoryConfig"); if (registryClientFactory == null) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { initFactories(); } } @@ -589,7 +611,7 @@ public class ConfigurationHandler { public LdapLookupFactoryConfig getLdapLookupFactoryConfig() { log.debug("getLdapLookupFactoryConfig called..."); if (ldapFactory == null) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { initFactories(); } } @@ -604,7 +626,7 @@ public class ConfigurationHandler { public RevocationLookupFactoryConfig getRevocationLookupFactoryConfig() { log.debug("getRevocationLookupFactoryConfig called..."); if (revocationFactory == null) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { initFactories(); } } @@ -619,7 +641,7 @@ public class ConfigurationHandler { */ public ProfileMappingCollectionConfig getProfileMappingCollectionConfig() throws ConfigurationException { if (profileMappingCollectionConfig == null) { - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { try { profileMappingCollectionConfig = new ProfileMappingCollectionConfig(); @@ -633,7 +655,7 @@ public class ConfigurationHandler { for (int i = 0; i < names.length; i++) { ProfileMapping profileMapping = new ProfileMapping(names[i], tModelIds[i]); - profileMappingCollectionConfig.AddProfileMapping(profileMapping); + profileMappingCollectionConfig.addProfileMapping(profileMapping); } } catch (Exception e) { ConfigurationException ex = new ConfigurationException("Could not init ProfileMappingCollectionConfig: " + e); @@ -753,7 +775,7 @@ public class ConfigurationHandler { String csXpath = documentSelect + "/CustomHeaderConfiguration/XPaths"; CustomHeaderConfiguration chc = new CustomHeaderConfiguration(); - List headerList = new ArrayList(); + List headerList = new ArrayList<>(); for (Iterator it = raspConfigurationFile.getKeys(csXpath); it.hasNext(); ) { String key = it.next().toString(); @@ -769,7 +791,7 @@ public class ConfigurationHandler { } } - if (headerList.size() > 0) { + if (!headerList.isEmpty()) { chc.setXPaths(headerList.toArray(new CustomHeaderXPathConfiguration[0])); documentTypeConfig.setCustomHeaderConfiguration(chc); } @@ -855,7 +877,7 @@ public class ConfigurationHandler { try { task.doTask(); } catch (Exception e) { - log.error("Failure during startup execution of task " + task + ": " + e.getMessage(), e); + log.error("E-RSP11031: Failure during startup execution of task " + task + ": " + e.getMessage(), e); if (firstException == null) { firstException = e; } @@ -866,10 +888,10 @@ public class ConfigurationHandler { log.info("ConfigurationHandler successfully executed " + taskList.size() + " startup tasks in " + (System.currentTimeMillis() - start) + " ms"); } } else { - throw new MainException("ConfigurationHandler failed to execute " + failedExecutionCount + " startup tasks, see first exception in stack trace", firstException); + throw new MainException("E-RSP11033: ConfigurationHandler failed to execute " + failedExecutionCount + " startup tasks, see first exception in stack trace", firstException); } } else { - log.warn("ConfigurationHandler: executeStartupTasks method was called but no startup tasks are configured. Please check RaspConfiguration.xml file to be updated with StartupConfig ConfigurationSection"); + log.warn("W-RSP11032: ConfigurationHandler: executeStartupTasks method was called but no startup tasks are configured. Please check RaspConfiguration.xml file to be updated with StartupConfig ConfigurationSection"); } } @@ -888,15 +910,13 @@ public class ConfigurationHandler { */ long start = System.currentTimeMillis(); List taskList; - synchronized (RASPCONFIGURATION_XML_DEFAULT) { + synchronized (mutex) { taskList = parseStartTaskList(this.raspConfigurationFile); this.startupTaskList = taskList; } - if (log.isInfoEnabled()) { - // Skip showing success message if no task is correctly configured - if (taskList.size() > 0) { - log.info("ConfigurationHandler: startup tasks are initialized in " + (System.currentTimeMillis() - start) + " ms, found " + taskList.size() + " tasks."); - } + // Skip showing success message if no task is correctly configured + if (log.isInfoEnabled() && !taskList.isEmpty()) { + log.info("ConfigurationHandler: startup tasks are initialized in " + (System.currentTimeMillis() - start) + " ms, found " + taskList.size() + " tasks."); } } catch (Exception e) { /* @@ -941,9 +961,9 @@ public class ConfigurationHandler { return loadVersionNumberFromLocalFile(); } } catch (IOException e) { - log.fatal("Problem loading version file: " + e.getMessage(), e); + log.fatal("F-RSP11034: Problem loading version file: " + e.getMessage(), e); } - log.fatal("Problem loading version file... but no exception thrown"); + log.fatal("F-RSP11035: Problem loading version file... but no exception thrown"); return null; } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtil.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtil.java index e9f6e4bf539544c23a92e9411307bba95666e25c..7b46a9b33852da1f8fdda7afc54e857d04ee59a4 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtil.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtil.java @@ -10,22 +10,25 @@ import java.io.File; import java.net.URL; /** - * Loads OIORASP configuration file, provides as clear as possible error messages in case of problems + * Loads OIORASP configuration file, provides as clear as possible error messages in case of problems. * * @since OIORASP 1.3.0 */ class ConfigurationLoaderUtil { /* - * At first we search by directly given path, than also in conf subfolder - * (like it was in OIORASP 1.2.3.HotFix1, for backward compatibility), than - * - in parent folder. - * - * TODO DLK: Why do we search in parent folder? What if file with the same - * name is located in more than 2 places? - */ + * At first we search by directly given path, than also in conf subfolder + * (like it was in OIORASP 1.2.3.HotFix1, for backward compatibility), then + * - in parent folder. + */ protected static final String[] CONFIG_PATH_PREFIX_LIST = new String[]{"", "conf/", "../"}; + /** + * Hide public constructor. + */ + private ConfigurationLoaderUtil() { + } + public static XMLConfiguration loadXMLConfiguration(String configPath, Log log) { if (log == null) { throw new IllegalArgumentException("ConfigurationLoaderUtil.loadXMLConfiguration: log object is null but must be present"); @@ -37,9 +40,7 @@ class ConfigurationLoaderUtil { log.debug("Looking for configuration file: " + configPath); } - /* - * Remember first error - */ + // Remember first error: Throwable firstError = null; for (String configPrefix : CONFIG_PATH_PREFIX_LIST) { try { @@ -47,9 +48,7 @@ class ConfigurationLoaderUtil { if (log.isInfoEnabled()) { log.debug("Ready to load configuration file: " + configPrefix + configPath); } - /* - * If 2 files exist, then the first should be used - */ + // Exception not thrown here, so file loaded correct, so break: break; } catch (Throwable e) { if (firstError == null) { @@ -59,59 +58,50 @@ class ConfigurationLoaderUtil { } /* - * Try to give a hint at which location OIORASP configuration was - * found or at least where we looked for it - */ + * Try to give a hint at which location OIORASP configuration was found or at least where we looked for it + */ if (config == null) { URL configPathUrl = null; try { /* - * It is highly important to use the same way of location as XMLConfiguration uses. - * - * It is not enough just to check that File(configPath) - * exists, at server environment OIORASP configuration xml - * is placed into classpath. - */ + * It is highly important to use the same way of location as XMLConfiguration uses. + * + * It is not enough just to check that File(configPath) exists, + * at server environment OIORASP configuration xml is placed into classpath. + */ configPathUrl = ConfigurationUtils.locate(configPath); } catch (Exception e2) { - /* - * Hide locate exception, it has no detailed information, we - * will build our own message below - */ + // Hide locate exception, it has no detailed information, we will build our own message below } if (configPathUrl == null) { // OIORASP configuration xml was not found at all, try to describe, where we looked for it. - throw new RuntimeException(buildLoadingErrorDescription(CONFIG_PATH_PREFIX_LIST, configPath)); + throw new IllegalArgumentException(buildLoadingErrorDescription(CONFIG_PATH_PREFIX_LIST, configPath)); } - throw new RuntimeException("Failed to parse OIORASP configuration file loaded by url '" + configPathUrl + "' with path " + configPath, firstError); + throw new IllegalStateException("Failed to parse OIORASP configuration file loaded by url '" + configPathUrl + "' with path " + configPath, firstError); } try { config = new XMLConfiguration(configPath); } catch (Throwable e) { - log.error("Unable to find configuration at [" + configPath + "]: " + e.getMessage(), e); + log.error("E-RSP11042: Unable to find configuration at [" + configPath + "]: " + e.getMessage(), e); try { config = new XMLConfiguration("../" + configPath); } catch (Throwable e1) { - log.error("Unable to find configuration at [" + "../" + configPath + "]: " + e1.getMessage(), e1); + log.error("E-RSP11043: Unable to find configuration at [" + "../" + configPath + "]: " + e1.getMessage(), e1); } } - /* - * TODO: What is the reason to have this reloading strategy? Do we really support RaspConfiguration.xml dynamic modification? - */ -// config.setReloadingStrategy(new FileChangedReloadingStrategy()); config.setExpressionEngine(new XPathExpressionEngine()); } catch (Exception e) { /* - * Log error also into System.err in case if logger is not configured at all at this environment - * - * This is a critical situation which is expected to be fixed asap, so it should be very visible - */ + * Log error also into System.err in case if logger is not configured at all at this environment + * + * This is a critical situation which is expected to be fixed asap, so it should be very visible + */ e.printStackTrace(); - log.fatal("OIORASP cannot load configuration xml [" + configPath + "]: " + e.getMessage(), e); - throw new RaspLibraryException("OIORASP cannot load configuration xml [" + configPath + "]", e); + log.fatal("E-RSP11041: OIORASP cannot load configuration xml [" + configPath + "]: " + e.getMessage(), e); + throw new RaspLibraryException("OIORASP cannot load configuration xml [" + configPath + "]", e, "E-RSP11041"); } log.info("Configuration file [" + configPath + "] loaded!"); @@ -140,4 +130,4 @@ class ConfigurationLoaderUtil { return file.getAbsolutePath(); } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/Version.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/Version.java index 66b48905f8a8d8ff452c4bdf9439f1d8eb8f49bd..52a7742252a7537262ef882b1b9eb594d3ac0847 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/Version.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/configuration/Version.java @@ -42,7 +42,7 @@ public class Version { * @return String denoting our current version */ public static String getVersionNumber() { - return String.valueOf(getMajorVersionNum()) + "." + getMinorVersionNum() + "." + getMaintenanceVersionNum(); + return getMajorVersionNum() + "." + getMinorVersionNum() + "." + getMaintenanceVersionNum(); } /** @@ -50,7 +50,7 @@ public class Version { * * @param argv command line arguments, unused. */ - public static void main(String argv[]) { + public static void main(String[] argv) { System.out.println(getVersion()); } @@ -117,4 +117,4 @@ public class Version { revision = a[3]; } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/ArgumentNullException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/ArgumentNullException.java index d51812c2fc54ddaa7a2fcbe282a695fd9ed36991..ae60118968d14ef888375ac7336d704a120d9163 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/ArgumentNullException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/ArgumentNullException.java @@ -34,7 +34,7 @@ public class ArgumentNullException extends IllegalArgumentException { * * @param argument Name of the argument that was null */ - public ArgumentNullException(final String argument) { - super("Argument [" + argument + "] is null"); + public ArgumentNullException(final String argument, String errorCode) { + super(errorCode + ": Argument [" + argument + "] is null"); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/AxisFaultUtil.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/AxisFaultUtil.java index e920f999c50f36316e17d8451035acc430043455..d776666bbfd557973a215e03d4673aa4ebf7c447 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/AxisFaultUtil.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/AxisFaultUtil.java @@ -38,16 +38,22 @@ import java.util.List; */ public class AxisFaultUtil { + /** + * Hide public constructor. + */ + private AxisFaultUtil() { + } + /** * Build Axis Fault. * * @param msgContext message context * @param e exception * @return AxisFault - * @throws AxisFault On error... + * @throws AxisFault On error. */ public static AxisFault buildAxisFault(MessageContext msgContext, MainException e) throws AxisFault { - return buildAxisFault(msgContext, e.getSoapFaultAction(), e.getSoapFaultCode(), e); + return buildAxisFault(msgContext, e.getSoapFaultAction(), e); } public static AxisFault buildAxisFault(MessageContext msgContext, OiosiInnerFaultCode oiosiInnerFaultCode, OiosiFaultCode oiosiFaultCode, String message) throws AxisFault { @@ -141,15 +147,14 @@ public class AxisFaultUtil { * * @param msgContext message context * @param soapFaultAction fault action - * @param soapFaultCode fault code * @param e exception * @return AxisFault - * @throws AxisFault On error... + * @throws AxisFault On error. */ - public static AxisFault buildAxisFault(MessageContext msgContext, String soapFaultAction, String soapFaultCode, Exception e) throws AxisFault { + public static AxisFault buildAxisFault(MessageContext msgContext, String soapFaultAction, Exception e) throws AxisFault { // Hack - big big hack - Java OIORASP server sends HTTP code 400 ("Bad request") if it considers Sender fault (does not work at .NET), // so always default to receiver. This should be fix before next release - soapFaultCode = "Receiver"; + String soapFaultCode = "Receiver"; org.apache.commons.logging.Log log = LogFactory.getLog(AxisFaultUtil.class); log.debug("buildAxisFault: " + soapFaultAction + " : " + soapFaultCode); @@ -162,7 +167,6 @@ public class AxisFaultUtil { AxisFault axisFault = new AxisFault(soapFaultSubCode, e.getMessage(), e); axisFault.setFaultAction(faultActionUri); throw axisFault; - } else if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(nsURI)) { //fac =OMAbstractFactory.getSOAP12Factory(); } else { @@ -173,7 +177,7 @@ public class AxisFaultUtil { QName faultCode = new QName(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI, soapFaultCode, SOAP12Constants.SOAP_DEFAULT_NAMESPACE_PREFIX); - List list = new ArrayList(); + List list = new ArrayList<>(); list.add(new QName(dk.gov.oiosi.Constants.RASP_CUSTOM_HEADER_NS, soapFaultAction, dk.gov.oiosi.Constants.RASP_CUSTOM_HEADER_PREFIX)); AxisFault tmp = new AxisFault(message, e); @@ -194,4 +198,4 @@ public class AxisFaultUtil { axisFault.setFaultType(org.apache.axis2.Constants.APPLICATION_FAULT); return axisFault; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/MainException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/MainException.java index 660340767b098d766dabc1f4053b8c0ae604a074..a210d97ddc53b7262711e3d4e0911852662724df 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/MainException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/exception/MainException.java @@ -24,18 +24,28 @@ package dk.gov.oiosi.exception; */ public class MainException extends Exception { + /** + * Default soap action for service exceptions. + */ + public static final String DEFAULT_SOAP_ACTION = "InternalSystemFailureFault"; /** * serialVersionUID. */ private static final long serialVersionUID = 1L; + /** + * Faults action. + */ + public String fault = null; + /** + * Who to blame. + */ + private boolean receiverError = true; /** * Constructor. - * - * @param s - * message - * @param e - * causing exception + * + * @param s message + * @param e causing exception */ public MainException(String s, Throwable e) { super(s, e); @@ -43,9 +53,29 @@ public class MainException extends Exception { /** * Constructor. - * - * @param s - * message + * + * @param s message + * @param e causing exception + * @param errorCode NemHandel standardised error code + */ + public MainException(String s, Throwable e, String errorCode) { + super(!errorCode.isEmpty() ? String.format("%s: %s", errorCode, s) : s, e); + } + + /** + * Constructor. + * + * @param s message + * @param errorCode NemHandel standardised error code + */ + public MainException(String s, String errorCode) { + super(!errorCode.isEmpty() ? String.format("%s: %s", errorCode, s) : s); + } + + /** + * Constructor. + * + * @param s message */ public MainException(String s) { super(s); @@ -60,27 +90,25 @@ public class MainException extends Exception { /** * Constructor. - * - * @param innerException - * causing exception + * + * @param innerException causing exception */ - public MainException(Throwable innerException) { - super(innerException); + public MainException(Throwable innerException, String errorCode) { + super(errorCode, innerException); } /** - * Default soap action for service exceptions. - */ - public static final String DEFAULT_SOAP_ACTION = "InternalSystemFailureFault"; - - /** - * Faults action. + * Constructor. + * + * @param innerException causing exception */ - public String fault = null; + public MainException(Throwable innerException) { + super(innerException); + } /** * Fault action. - * + * * @return fault action */ public String getSoapFaultAction() { @@ -93,9 +121,8 @@ public class MainException extends Exception { /** * Fault action. - * - * @param s - * fault action + * + * @param s fault action */ public void setSoapFaultAction(String s) { fault = s; @@ -103,9 +130,8 @@ public class MainException extends Exception { /** * Match fault action to thrown exception. - * - * @param s - * fault action + * + * @param s fault action * @return match */ public boolean matchSoapFaultAction(String s) { @@ -114,12 +140,7 @@ public class MainException extends Exception { /** * Who to blame. - */ - private boolean receiverError = true; - - /** - * Who to blame. - * + * * @return who to blame */ public String getSoapFaultCode() { @@ -132,9 +153,8 @@ public class MainException extends Exception { /** * Who to blame. - * - * @param b - * blame receiver + * + * @param b blame receiver */ public void setReceiverError(boolean b) { receiverError = b; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/policy/OiosiPolicyBean.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/policy/OiosiPolicyBean.java index ffaf4510d3b4a2532856807adfe5b7b929a205c8..87e9afdcf6373d71d4621a10f9b494fb35530b46 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/policy/OiosiPolicyBean.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/policy/OiosiPolicyBean.java @@ -49,12 +49,36 @@ public class OiosiPolicyBean implements Assertion { /** * Configuration bean name. */ - private QName name = new QName(RASP_POLICY_NAMESPACE, RASP_POLICY_BEAN, RASP_POLICY_NAMESPACE_PREFIX); + private final QName name = new QName(RASP_POLICY_NAMESPACE, RASP_POLICY_BEAN, RASP_POLICY_NAMESPACE_PREFIX); /** * Parent. */ private OiosiPolicyBean parent = null; + /** + * Do schema validation in stack. + */ + private boolean doValidation = false; + /** + * Do schematron validation in stack. + */ + private boolean doSchematron = false; + /** + * Do pruning in stack. + */ + private boolean doTransformation = false; + /** + * Crate signature proof in stack. + */ + private boolean doSignatureProof = false; + /** + * Do custom header handling/extracting in stack. + */ + private boolean doCustomHeaders = true; + /** + * Name of configuration file (used on server side) in stack. + */ + private String raspConfigurationFile = null; /** * Parent. @@ -83,6 +107,8 @@ public class OiosiPolicyBean implements Assertion { return false; } + // values... + /* (non-Javadoc) * @see org.apache.neethi.Assertion#normalize() */ @@ -142,7 +168,6 @@ public class OiosiPolicyBean implements Assertion { } catch (Exception e) { throw new XMLStreamException(e); } - } /* (non-Javadoc) @@ -234,7 +259,6 @@ public class OiosiPolicyBean implements Assertion { if (tmp != null) { raspConfigurationFile = tmp.getText(); } - } /** @@ -247,38 +271,6 @@ public class OiosiPolicyBean implements Assertion { return "true".equalsIgnoreCase(val.getText()); } - // values... - - /** - * Do schema validation in stack. - */ - private boolean doValidation = false; - - /** - * Do schematron validation in stack. - */ - private boolean doSchematron = false; - - /** - * Do pruning in stack. - */ - private boolean doTransformation = false; - - /** - * Crate signature proof in stack. - */ - private boolean doSignatureProof = false; - - /** - * Do custom header handling/extracting in stack. - */ - private boolean doCustomHeaders = true; - - /** - * Name of configuration file (used on server side) in stack. - */ - private String raspConfigurationFile = null; - /** * Do schema validation in stack. Controlled by <oiosi:XMLValidation> tag in policy.xml * @@ -332,4 +324,4 @@ public class OiosiPolicyBean implements Assertion { public String getRaspConfiguration() { return raspConfigurationFile; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateHandlingException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateHandlingException.java index 4d9f4d5ab3e9966e93d45dd44302a91e2138a569..4f41fd8ee5209d076a9ebce948e366ebaf0a2ab8 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateHandlingException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateHandlingException.java @@ -48,8 +48,8 @@ public class CertificateHandlingException extends MainException { * * @param innerException The exception to display as an inner exception */ - public CertificateHandlingException(final Exception innerException) { - super(innerException); + public CertificateHandlingException(final Exception innerException, final String errorCode) { + super(innerException, errorCode); } /** diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateIssuerSubject.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateIssuerSubject.java index 13fa8d6c140ebdebbed179d2777ce1e77814abc2..eb815e36d6a12cfcc6fadf18724d85ad346b2765 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateIssuerSubject.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateIssuerSubject.java @@ -39,7 +39,7 @@ public class CertificateIssuerSubject extends CertificateSubject { */ public CertificateIssuerSubject(String subject) { if (subject == null) { - throw new ArgumentNullException("CertificateSubject"); + throw new ArgumentNullException("certificateSubject", "E-RSP19024"); } subjectString = subject; @@ -52,13 +52,10 @@ public class CertificateIssuerSubject extends CertificateSubject { */ public CertificateIssuerSubject(X509Certificate certificate) { if (certificate == null) { - throw new ArgumentNullException("CertificateSubject"); + throw new ArgumentNullException("certificate", "E-RSP19025"); } subjectString = certificate.getIssuerDN().getName(); - - //X500Principal x500 = certificate.getSubjectX500Principal(); - //String name = x500.getName(X500Principal.RFC1779); } @Override @@ -83,4 +80,4 @@ public class CertificateIssuerSubject extends CertificateSubject { public String toString() { return subjectString; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateSubject.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateSubject.java index 49774b141ea0bf3b19e63fd6a3044c6a5bde59ae..e6bd261051a660b79e1517bdbe0515ab7f4839d6 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateSubject.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/CertificateSubject.java @@ -38,20 +38,16 @@ import java.util.regex.Pattern; */ public class CertificateSubject { + /** + * Serial number as text - for parsing. + */ + public static final String SERIALNUMBERPREFIX = "serialNumber"; private static final String oRegExpPattern = "(o|O)(\\s)*=([^+,])*"; private static final Pattern oPattern = Pattern.compile(oRegExpPattern); - private static final String cRegExpPattern = "(c|C)(\\s)*=([^+,])*"; private static final Pattern cPattern = Pattern.compile(cRegExpPattern); - private static final String cnRegExpPattern = "(c|C)(n|N)(\\s)*=([^+,])*"; private static final Pattern cnPattern = Pattern.compile(cnRegExpPattern); - - /** - * Serial number as text - for parsing. - */ - public static final String SERIALNUMBERPREFIX = "serialNumber"; - /** * subject. */ @@ -73,7 +69,7 @@ public class CertificateSubject { */ public CertificateSubject(String subject) { if (subject == null) { - throw new ArgumentNullException("CertificateSubject"); + throw new ArgumentNullException("certificateSubject", "E-RSP19024"); } X500Principal principal = new X500Principal(subject); setSubjectString(principal.getName(X500Principal.RFC1779)); @@ -83,11 +79,11 @@ public class CertificateSubject { /** * Constructor that extracts the subject from a X509 certificate. * - * @param certificate The X509 certificate + * @param certificate The X509 certificate. */ public CertificateSubject(X509Certificate certificate) { if (certificate == null) { - throw new ArgumentNullException("CertificateSubject"); + throw new ArgumentNullException("certificate", "E-RSP19025"); } X500Principal x500 = certificate.getSubjectX500Principal(); @@ -103,7 +99,7 @@ public class CertificateSubject { */ public CertificateSubject(X500Principal subjectDN) { if (subjectDN == null) { - throw new ArgumentNullException("CertificateSubject"); + throw new ArgumentNullException("subjectDN", "E-RSP19026"); } setSubjectString(subjectDN.getName(X500Principal.RFC1779)); getBase(); @@ -115,6 +111,31 @@ public class CertificateSubject { CertificateSubject() { } + /** + * Parse subject for serial number. + * + * @param subject The subject to parse + * @return The parsed serial number + */ + public static String parseSerialNumber(String subject) { + X509Principal principal = new X509Principal(subject); + ASN1ObjectIdentifier serialNumberIdentifier = X509Principal.SERIALNUMBER; + Vector v = principal.getValues(serialNumberIdentifier); + if (!v.isEmpty()) { + return v.get(0).toString(); + } + throw new IllegalArgumentException("E-RSP19029: Could not parse serial-number [" + subject + "]"); + } + + /** + * Returns the subject as a String. + * + * @return String representation of the subject + */ + public String getSubjectString() { + return subjectString; + } + /** * Sets the subject from the given string. * @@ -122,10 +143,10 @@ public class CertificateSubject { */ private void setSubjectString(String subject) { if (subject == null) { - throw new ArgumentNullException("CertificateSubject"); + throw new ArgumentNullException("certificateSubject", "E-RSP19024"); } if (subject.trim().length() < 1) { - throw new EmptyStringException("CertificateSubject"); + throw new EmptyStringException("E-RSP19027: certificateSubject is an empty string"); } subjectString = subject.trim(); @@ -133,15 +154,6 @@ public class CertificateSubject { subjectSerialNumber = parseSerialNumber(subjectString); } - /** - * Returns the subject as a String. - * - * @return String representation of the subject - */ - public String getSubjectString() { - return subjectString; - } - public String getO() { return o; } @@ -172,27 +184,10 @@ public class CertificateSubject { return SERIALNUMBERPREFIX + "=" + subjectSerialNumber; } - - /** - * Parse subject for serial number. - * - * @param subject The subject to parse - * @return The parsed serial number - */ - public static String parseSerialNumber(String subject) { - X509Principal principal = new X509Principal(subject); - ASN1ObjectIdentifier serialNumberIdentifier = X509Principal.SERIALNUMBER; - Vector v = principal.getValues(serialNumberIdentifier); - if (v.size() > 0) { - return v.get(0).toString(); - } - throw new IllegalArgumentException("could not parse serial-number [" + subject + "]"); - } - /* - * Fetches the base string used in the ldap search. The string is gained from the subject string. - * If there is no pattern in the subject string that tells what o= and c= an exception will be thrown. - */ + * Fetches the base string used in the ldap search. The string is gained from the subject string. + * If there is no pattern in the subject string that tells what o= and c= an exception will be thrown. + */ private void getBase() { Matcher oMatcher = oPattern.matcher(subjectString); @@ -237,4 +232,4 @@ public class CertificateSubject { public String toString() { return subjectString; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/RootCertificateConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/RootCertificateConfig.java index a18154fc1f34ff3c9b47c7986700d740dc855704..3724a239ffab30995c0fc788397634aabf0f674f 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/RootCertificateConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/RootCertificateConfig.java @@ -13,7 +13,7 @@ * The Original Code is Java RASP toolkit. * * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and + * created by Lenio are Copyright (C) 2007 Danish National IT and * Telecom Agency (http://www.itst.dk). All Rights Reserved. */ @@ -50,9 +50,6 @@ public class RootCertificateConfig { } @Override - /* - * Added for logging purposes - */ public String toString() { return "RootCertificateConfig [KeyStoreLocation=" + KeyStoreLocation + ", KeyLabel=" + KeyLabel + diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/SignatureValidationProof.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/SignatureValidationProof.java index abaee42580f3493a670d1acbf1fb9ca5045524ef..57ba237ce947ee52ecabbe385c3660a196e921b0 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/SignatureValidationProof.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/SignatureValidationProof.java @@ -93,7 +93,7 @@ public class SignatureValidationProof implements ISignatureValidationProof { */ public void completeValidation(String subject) throws SignatureValidationProofAllreadyCompletedException { if (completed) - throw new SignatureValidationProofAllreadyCompletedException(subject); + throw new SignatureValidationProofAllreadyCompletedException("E-RSP19031: " + subject); timeStamp = new Date(); this.certificateSubject = subject; this.validCertificate = true; @@ -137,7 +137,7 @@ public class SignatureValidationProof implements ISignatureValidationProof { */ public void setTimeStamp(Date value) throws SignatureValidationProofAllreadyCompletedException { if (completed) - throw new SignatureValidationProofAllreadyCompletedException(certificateSubject); + throw new SignatureValidationProofAllreadyCompletedException("E-RSP19031: " + certificateSubject); timeStamp = value; } @@ -158,7 +158,7 @@ public class SignatureValidationProof implements ISignatureValidationProof { */ public void setCertificateSubject(String value) throws SignatureValidationProofAllreadyCompletedException { if (completed) - throw new SignatureValidationProofAllreadyCompletedException(certificateSubject); + throw new SignatureValidationProofAllreadyCompletedException("E-RSP19031: " + certificateSubject); certificateSubject = value; } @@ -180,7 +180,7 @@ public class SignatureValidationProof implements ISignatureValidationProof { */ public void setValidCertificate(boolean value) throws SignatureValidationProofAllreadyCompletedException { if (completed) - throw new SignatureValidationProofAllreadyCompletedException(certificateSubject); + throw new SignatureValidationProofAllreadyCompletedException("E-RSP19031: " + certificateSubject); validCertificate = value; } @@ -201,7 +201,7 @@ public class SignatureValidationProof implements ISignatureValidationProof { */ public void setValidSignature(boolean value) throws SignatureValidationProofAllreadyCompletedException { if (completed) - throw new SignatureValidationProofAllreadyCompletedException(certificateSubject); + throw new SignatureValidationProofAllreadyCompletedException("E-RSP19031: " + certificateSubject); validSignature = value; } @@ -223,7 +223,7 @@ public class SignatureValidationProof implements ISignatureValidationProof { */ public void setUnchangedMessage(boolean value) throws SignatureValidationProofAllreadyCompletedException { if (completed) - throw new SignatureValidationProofAllreadyCompletedException(certificateSubject); + throw new SignatureValidationProofAllreadyCompletedException("E-RSP19031: " + certificateSubject); unchangedMessage = value; } @@ -245,7 +245,7 @@ public class SignatureValidationProof implements ISignatureValidationProof { */ public void setEncryptedMessage(boolean value) throws SignatureValidationProofAllreadyCompletedException { if (completed) - throw new SignatureValidationProofAllreadyCompletedException(certificateSubject); + throw new SignatureValidationProofAllreadyCompletedException("E-RSP19031: " + certificateSubject); encryptedMessage = value; } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/ConnectingToLdapServerFailedException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/ConnectingToLdapServerFailedException.java index d08036f3cab10077f53f537e627247546a95982f..ec0bc5de67377b881b4b5841c337feadf8f22586 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/ConnectingToLdapServerFailedException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/ConnectingToLdapServerFailedException.java @@ -20,8 +20,7 @@ package dk.gov.oiosi.security.ldap; /** - * Exception that is thrown when the connection attemption to the LDAP server - * fails. + * Exception that is thrown when the connection attempt to the LDAP server fails. */ public class ConnectingToLdapServerFailedException extends LdapException { @@ -35,14 +34,11 @@ public class ConnectingToLdapServerFailedException extends LdapException { * exception. It transforms the setting object into a keyword dictionary * before calling its base constructor with the dictionary and inner * exception as parameters. - * - * @param settings - * The settings used when attempting connection - * @param innerException - * The cause exception + * + * @param settings The settings used when attempting connection + * @param innerException The cause exception */ - public ConnectingToLdapServerFailedException(final LdapSettings settings, final Throwable innerException) { - super(String.valueOf(settings), innerException); + public ConnectingToLdapServerFailedException(final LdapSettings settings, final Throwable innerException, String errorCode) { + super(errorCode + ": " + String.valueOf(settings), innerException); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateLookup.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateLookup.java index e6b47d9805274b842ffc4f67986ea9f62510af39..068ea87260636ad748d42983ce399ea2dd016543 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateLookup.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateLookup.java @@ -34,6 +34,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.naming.CommunicationException; +import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.Attribute; @@ -46,6 +47,7 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.Collection; +import java.util.Hashtable; /** * The LDAP certificate lookup uses the ldap protocol to query for a given certificate. @@ -62,8 +64,8 @@ public class LdapCertificateLookup implements ICertificateLookup { /* * Certificate cache */ - private static ICache certCache = CacheFactory.getInstance().getCertificateCache(); - private LdapSettings settings; + private static final ICache certificateCache = CacheFactory.getInstance().getCertificateCache(); + private LdapSettings ldapSettings; /** * The LdapCertificateLookup constructor takes an ldap settings object as a parameter. @@ -72,14 +74,21 @@ public class LdapCertificateLookup implements ICertificateLookup { * @param s Setting object that contains the ldap settings to be used. */ public LdapCertificateLookup(final LdapSettings s) { - settings = s; + ldapSettings = s; } /** * Default constructor. Attempts to read configuration settings from configuration file */ public LdapCertificateLookup() { - this(ConfigurationHandler.getInstance().getLdapSettings()); + this(ConfigurationHandler.getInstance().loadLdapSettings()); + } + + static CertificateFactory getCertificateFactory() throws CertificateException { + if (certificateFactory == null) { + certificateFactory = CertificateFactory.getInstance("X.509"); + } + return certificateFactory; } /** @@ -93,18 +102,14 @@ public class LdapCertificateLookup implements ICertificateLookup { */ public X509Certificate getCertificate(final CertificateSubject subject) throws CertificateLookupException, CertificateNotActiveException, CertificateExpiredException { if (subject == null) { - throw new ArgumentNullException("subject"); + throw new ArgumentNullException("subject", "E-RSP19101"); } X509Certificate certificateToBeReturned; - OutVariable value = new OutVariable(); - if (!certCache.tryGetValue(subject, value)) { - // certificate not found in cache, so retrieve it online and put in cache. - return getCertificateOnlineAndUpdateCache(subject); - } else { - // cache contain the certificate - // now we must validate it is still valid + OutVariable value = new OutVariable<>(); + if (certificateCache.tryGetValue(subject, value)) { + // Cache contain the certificate, now we must validate if it's still valid: certificateToBeReturned = value.getVariable(); try { @@ -113,11 +118,10 @@ public class LdapCertificateLookup implements ICertificateLookup { * We do not validate it for revocation, let's do only fast checks */ validateCertificateOnlyByDates(certificateToBeReturned); - } catch (Exception e) { - // if any error is thrown, the validation failed - certificate has expired. - // remove it from cache, as it is not valid - certCache.remove(subject); + // If any error is thrown, the validation failed - certificate has expired. + // Remove it from cache, as it is not valid: + certificateCache.remove(subject); // get a new certificate online /* @@ -128,23 +132,25 @@ public class LdapCertificateLookup implements ICertificateLookup { * * Let's log it at least */ - log.warn("LdapCertificateLookup: certificate with subject " + subject + " found in cache is not valid by dates: " + e.getMessage() + ", request certificate again"); + log.warn("W-RSP19131: LdapCertificateLookup: certificate with subject " + subject + " found in cache is not valid by dates: " + e.getMessage() + ", request certificate again"); - certificateToBeReturned = this.getCertificateOnlineAndUpdateCache(subject); + certificateToBeReturned = getCertificateOnlineAndUpdateCache(subject); } + } else { + // certificate not found in cache, so retrieve it online and put in cache. + return getCertificateOnlineAndUpdateCache(subject); } return certificateToBeReturned; } - private void validateCertificateOnlyByDates(final X509Certificate certificateToBeReturned) throws CertificateNotActiveException, CertificateExpiredException { CertificateValidator.checkCertificateActivated(certificateToBeReturned); CertificateValidator.checkCertificateExpired(certificateToBeReturned); } /** - * Retrive the certificate online, and if valid, put it in the cache. + * Retrieve the certificate from online LDAP, and if valid, put it in the cache. * * @param subject CertificateSubject * @return X509Certificate @@ -157,15 +163,14 @@ public class LdapCertificateLookup implements ICertificateLookup { X509Certificate certificateToBeReturned = getCertificateFromLDAP(subject); validateCertificateOnlyByDates(certificateToBeReturned); - certCache.set(subject, certificateToBeReturned); + certificateCache.set(subject, certificateToBeReturned); return certificateToBeReturned; } - public X509Certificate getCertificateFromLDAP(final CertificateSubject subject) throws CertificateLookupException { if (subject == null) { - throw new ArgumentNullException("subjectSerialNumber"); + throw new ArgumentNullException("subjectSerialNumber", "E-RSP19108"); } long start = 0; if (log.isDebugEnabled()) { @@ -175,40 +180,41 @@ public class LdapCertificateLookup implements ICertificateLookup { X509Certificate certificateToBeReturned = null; try { - StringBuilder ldapQueryString = new StringBuilder(); - - // protocol and server - ldapQueryString.append("ldap://").append(settings.getHost()).append(":").append(settings.getPort()); + String ldapQueryString = getLdapQueryStringBasedOnCertificateSubject(subject); - // search url - ldapQueryString.append("/c=dk??sub?(").append(subject.getPrefixedSerialNumber()).append(")"); - - if (log.isTraceEnabled()) { - log.trace("LdapCertificateLookup: LDAP query=" + ldapQueryString); + if (log.isDebugEnabled()) { + log.debug("LdapCertificateLookup: LDAP query=" + ldapQueryString); } + Hashtable ldapEnv = new Hashtable<>(); + ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); + ldapEnv.put(Context.PROVIDER_URL, ldapQueryString); + // Specify timeout: + ldapEnv.put("com.sun.jndi.ldap.connect.timeout", "" + ldapSettings.getConnectionTimeoutMsec()); + ldapEnv.put("com.sun.jndi.ldap.read.timeout", "" + ldapSettings.getSocketTimeoutMsec()); + NamingEnumeration answer; boolean hasMore; try { // Create the initial context - DirContext ctx = new InitialLdapContext(); + DirContext ctx = new InitialLdapContext(ldapEnv, null); // Perform the search by using the URL - answer = ctx.search(ldapQueryString.toString(), null); + answer = ctx.search(ldapQueryString, null); // Close the context when we're done ctx.close(); hasMore = answer.hasMore(); } catch (CommunicationException e) { - log.error("LdapCertificateLookup: Could not perform lookup/search: " + e.getMessage(), e); - throw new ConnectingToLdapServerFailedException(settings, e); + log.error("E-RSP19102: LdapCertificateLookup: Could not perform lookup/search: " + e.getMessage(), e); + throw new ConnectingToLdapServerFailedException(ldapSettings, e, "E-RSP19102"); } catch (NamingException e) { - log.error("LdapCertificateLookup: Could not create Ldap lookup/Search Context: " + e.getMessage(), e); - throw new LdapCertificateLookupInitializationFailedException("Could not create Ldap Search Context for: " + ldapQueryString, e); + log.error("E-RSP19109: LdapCertificateLookup: Could not create Ldap lookup/Search Context: " + e.getMessage(), e); + throw new LdapCertificateLookupInitializationFailedException("E-RSP19109: Could not create Ldap Search Context for: " + ldapQueryString, e); } if (!hasMore) { - throw new LdapCertificateNotFoundException(subject); + throw new LdapCertificateNotFoundException(subject, "E-RSP19104"); } byte[] certificateBytes; @@ -218,36 +224,36 @@ public class LdapCertificateLookup implements ICertificateLookup { Attribute attribute = attrs.get("userCertificate;binary"); if (attribute == null) { - throw new ConvertingSearchResultToCertificateFailedException("Could not get certificate attribute from Ldap Search: userCertificate;binary"); + throw new ConvertingSearchResultToCertificateFailedException("E-RSP19106: Could not get certificate attribute from Ldap Search: userCertificate;binary"); } certificateBytes = (byte[]) attribute.get(); } catch (NamingException e) { - log.error("LdapCertificateLookup: Could not get certificate attribute from Ldap Search: " + e.getMessage(), e); - throw new ConvertingSearchResultToCertificateFailedException("Could not get certificate attribute from Ldap Search", e); + log.error("E-RSP19110: LdapCertificateLookup: Could not get certificate attribute from Ldap Search: " + e.getMessage(), e); + throw new ConvertingSearchResultToCertificateFailedException("E-RSP19110: Could not get certificate attribute from Ldap Search", e); } try { Collection c = getCertificateFactory().generateCertificates(new ByteArrayInputStream(certificateBytes)); certificateToBeReturned = (X509Certificate) c.iterator().next(); } catch (CertificateException e) { - log.error("LdapCertificateLookup: Could not create certificate form ldap result: " + e.getMessage(), e); - throw new ConvertingSearchResultToCertificateFailedException("Could not create certificate form ldap result", e); + log.error("E-RSP19107: LdapCertificateLookup: Could not create certificate form ldap result: " + e.getMessage(), e); + throw new ConvertingSearchResultToCertificateFailedException("E-RSP19107: Could not create certificate form ldap result", e); } if (certificateToBeReturned == null) { log.info("LdapCertificateLookup: Certificate not found with LDAP query:" + subject.getSerialNumberValue()); - throw new LdapCertificateNotFoundException(subject); + throw new LdapCertificateNotFoundException(subject, "E-RSP19104"); } try { hasMore = answer.hasMore(); } catch (NamingException e) { - log.error("LDAP lookup failed: " + e.getMessage(), e); - throw new LdapCertificateLookupInitializationFailedException("LDAP lookup failed: " + e.getMessage(), e); + log.error("E-RSP19109: LDAP lookup failed: " + e.getMessage(), e); + throw new LdapCertificateLookupInitializationFailedException("E-RSP19109: LDAP lookup failed: " + e.getMessage(), e); } if (hasMore) { - throw new LdapMultipleCertificatesFoundException(subject); + throw new LdapMultipleCertificatesFoundException(subject, "E-RSP19105"); } } finally { if (log.isDebugEnabled()) { @@ -257,10 +263,25 @@ public class LdapCertificateLookup implements ICertificateLookup { return certificateToBeReturned; } - CertificateFactory getCertificateFactory() throws CertificateException { - if (certificateFactory == null) { - certificateFactory = CertificateFactory.getInstance("X.509"); + /** + * Generate the complete LDAP connection string based on certificate subject. + * + * @param subject Certificate subject as input for determining which server/syntax to use. + * @return The full/complete LDAP connection string. + */ + String getLdapQueryStringBasedOnCertificateSubject(final CertificateSubject subject) { + StringBuilder ldapQueryString = new StringBuilder(); + + // Protocol and server: + ldapQueryString.append("ldap://"); + if (subject.getSubjectString().contains("-FID:")) { + ldapQueryString.append(ldapSettings.getHostPortForNemId()); + } else { + ldapQueryString.append(ldapSettings.getHostPortForMitId()); } - return certificateFactory; + + // search url: + ldapQueryString.append("/c=dk??sub?(").append(subject.getPrefixedSerialNumber()).append(")"); + return ldapQueryString.toString(); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateNotFoundException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateNotFoundException.java index 09945dd37ba06b87c855c40ade8f12a409dfd3a6..7de529652b108f56e7ed7b6a91eaccc57c462a3a 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateNotFoundException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapCertificateNotFoundException.java @@ -38,8 +38,8 @@ public class LdapCertificateNotFoundException extends CertificateNotFoundExcepti * @param subject * The certificate subject */ - public LdapCertificateNotFoundException(final CertificateSubject subject) { - super(subject.getSubjectString()); + public LdapCertificateNotFoundException(final CertificateSubject subject, final String errorCode) { + super(errorCode + ": " + subject.getSubjectString()); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapLookupFactory.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapLookupFactory.java index 3f2f311d08e8eaad7108de9562da67362e1dba03..57ff851cc184257f01f074b00185b0756002819b 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapLookupFactory.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapLookupFactory.java @@ -26,24 +26,26 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** - * Instantiates classes with the ICertificateLookup interface, based on - * configuration. + * Instantiates classes with the ICertificateLookup interface, based on configuration. */ public class LdapLookupFactory { - private static Log log = LogFactory.getLog(LdapLookupFactory.class); - + private static final Log log = LogFactory.getLog(LdapLookupFactory.class); /** * Actual lookup instance. */ private static ICertificateLookup lookupClient; /** - * Instantiates classes with the ICertificateLookup interface, based on - * configuration. + * Hide the public constructor. + */ + private LdapLookupFactory() { + } + + /** + * Instantiates classes with the ICertificateLookup interface, based on configuration. * - * @return Returns a class with the ICertificateLookup interface, based on - * configuration. + * @return Returns a class with the ICertificateLookup interface, based on configuration. */ public static ICertificateLookup createLdapLookupClient() { if (lookupClient == null) { @@ -54,14 +56,14 @@ public class LdapLookupFactory { log.debug("Init LdapLookupFactory with class: " + config.getImplementationNamespaceClass()); lookupClient = (ICertificateLookup) Class.forName(config.getImplementationNamespaceClass()).newInstance(); } catch (InstantiationException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP19125"); } catch (IllegalAccessException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP19126"); } catch (ClassNotFoundException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP19127"); } } } return lookupClient; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapMultipleCertificatesFoundException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapMultipleCertificatesFoundException.java index 5090274f0d66243144e6119dec1e2b1ccd0c5e4b..cceaa56756390fda6b87f605920d70da01eeca17 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapMultipleCertificatesFoundException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapMultipleCertificatesFoundException.java @@ -38,8 +38,8 @@ public class LdapMultipleCertificatesFoundException extends MultipleCertificates * @param subject * The certificate subject */ - public LdapMultipleCertificatesFoundException(final CertificateSubject subject) { - super(String.valueOf(subject)); + public LdapMultipleCertificatesFoundException(final CertificateSubject subject, final String errorCode) { + super(errorCode + ": " + String.valueOf(subject)); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapSettings.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapSettings.java index 7461509f970674fb40d3a7b8cd0b8fcbdfc37717..b6300fe3cd3b6675d43174a64e24dde83c16211d 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapSettings.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/ldap/LdapSettings.java @@ -20,74 +20,64 @@ package dk.gov.oiosi.security.ldap; /** - * LdapSettings. Configuration of LdapServer. + * LdapSettings. Configuration of LdapServer data from RaspConfiguration.xml. */ public class LdapSettings { /** - * Ldap server host. + * LDAP host + port (host:port) for NemID. */ - private String host; + private String hostPortForNemId; /** - * Port. + * LDAP host + port (host:port) for MitID. */ - private int port; + private String hostPortForMitId; /** * connectionTimeoutMsec. */ private int connectionTimeoutMsec; - /** - * searchServerTimeoutMsec. - */ - private int searchServerTimeoutMsec; - /** * searchClientTimeoutMsec. */ - private int searchClientTimeoutMsec; + private int socketTimeoutMsec; /** - * maxResults. - */ - private int maxResults; - - /** - * Gets and sets Host. + * Get the connection value for NemID. * - * @return Host + * @return Connection value for NemID. */ - public String getHost() { - return host; + public String getHostPortForNemId() { + return hostPortForNemId; } /** - * Gets and sets Host. + * Set value for MitID. * - * @param value Host + * @param hostPortString Value for host + port (host:port). */ - public void setHost(String value) { - host = value; + public void setHostPortForNemId(String hostPortString) { + hostPortForNemId = hostPortString; } /** - * Gets and sets the port. + * Get the connection value for NemID. * - * @return Port + * @return Connection value for NemID. */ - public int getPort() { - return port; + public String getHostPortForMitId() { + return hostPortForMitId; } /** - * Gets and sets the port. + * Set value for MitID. * - * @param value Port + * @param hostPortString Value for host + port (host:port). */ - public void setPort(int value) { - port = value; + public void setHostPortForMitId(String hostPortString) { + hostPortForMitId = hostPortString; } /** @@ -109,61 +99,30 @@ public class LdapSettings { } /** - * Gets and sets the search server timeout. - * - * @return SearchServerTimeoutMsec - */ - public int getSearchServerTimeoutMsec() { - return searchServerTimeoutMsec; - } - - /** - * Gets and sets the search server timeout. - * - * @param value SearchServerTimeoutMsec - */ - public void setSearchServerTimeoutMsec(int value) { - searchServerTimeoutMsec = value; - } - - /** - * Gets and sets the search client timeout. + * Gets the search client timeout (socket timeout). * * @return SearchClientTimeoutMsec */ - public int getSearchClientTimeoutMsec() { - return searchClientTimeoutMsec; + public int getSocketTimeoutMsec() { + return socketTimeoutMsec; } /** - * Gets and sets the search client timeout. + * Sets the search client timeout (socket timeout). * * @param value SearchClientTimeoutMsec */ - public void setSearchClientTimeoutMsec(int value) { - searchClientTimeoutMsec = value; - } - - /** - * Get and sets the maximum number of results. - * - * @return MaxResults - */ - public int getMaxResults() { - return maxResults; - } - - /** - * Get and sets the maximum number of results. - * - * @param value MaxResults - */ - public void setMaxResults(int value) { - maxResults = value; + public void setSocketTimeoutMsec(int value) { + socketTimeoutMsec = value; } @Override public String toString() { - return "Address: " + host + ":" + port + ", Connection timeout: " + connectionTimeoutMsec + " msecs, Search server timeout: " + searchServerTimeoutMsec + " msecs, Search client timeout: " + searchClientTimeoutMsec + " msecs, Max results: " + maxResults; + return "LdapSettings{" + + "hostForNemId=" + hostPortForNemId + + ", hostForMitId=" + hostPortForMitId + + ", connectionTimeoutMsec=" + connectionTimeoutMsec + + ", socketTimeoutMsec=" + socketTimeoutMsec + + '}'; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/lookup/CertificateLoader.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/lookup/CertificateLoader.java index 252e618f7c674c414d3aa96f852c828b5bec6259..af55715150c67f7fff1902b8f5f53ae858ff4418 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/lookup/CertificateLoader.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/lookup/CertificateLoader.java @@ -41,6 +41,12 @@ public class CertificateLoader { private static final Log log = LogFactory.getLog(CertificateLoader.class); + /** + * Hide public constructor. + */ + private CertificateLoader() { + } + /* * Tries to load the root certificate by searching the user home directory, the current classpath and the system classpath. * @@ -62,12 +68,12 @@ public class CertificateLoader { } catch (Exception e) { // Hide exception } - log.warn("CertificateLoader: cannot locate key store by location " + rootCertConfig.getKeyStoreLocation() + ", among others tried file path " + fileCanonicalPath); + log.warn("W-RSP19203: CertificateLoader: cannot locate key store by location " + rootCertConfig.getKeyStoreLocation() + ", among others tried file path " + fileCanonicalPath); } } if (log.isWarnEnabled() && rootCertLocation != null && cert == null) { - log.warn("CertificateLoader: No certificate with label '" + rootCertConfig.getKeyLabel() + "' is found at key store at " + rootCertLocation); + log.warn("W-RSP19204: CertificateLoader: No certificate with label '" + rootCertConfig.getKeyLabel() + "' is found at key store at " + rootCertLocation); } return cert; @@ -78,7 +84,7 @@ public class CertificateLoader { X509Certificate x509Certificate; String aliasLabelPrefix = rootCertConfig.getKeyLabel(); String alias; - List x509Certificates = new ArrayList(); + List x509RootCertificateList = new ArrayList<>(); // define receiver certificate. KeyStore keyStore = KeyStore.getInstance("JKS"); URL rootCertLocation = ConfigurationUtils.locate(rootCertConfig.getKeyStoreLocation()); @@ -87,7 +93,7 @@ public class CertificateLoader { try { log.info("Loading root certs from JKS=" + new File(rootCertLocation.toURI()).getAbsolutePath()); } catch (URISyntaxException e) { - log.warn("Exception for JKS=" + rootCertConfig.getKeyStoreLocation() + ": " + e.getMessage(), e); + log.warn("W-RSP19205: Exception for JKS=" + rootCertConfig.getKeyStoreLocation() + ": " + e.getMessage(), e); } } keyStore.load(rootCertLocation.openStream(), rootCertConfig.getKeyStorePassword().toCharArray()); @@ -97,20 +103,20 @@ public class CertificateLoader { if (alias.startsWith(aliasLabelPrefix)) { x509Certificate = (X509Certificate) keyStore.getCertificate(alias); if (x509Certificate != null) { - x509Certificates.add(x509Certificate); + x509RootCertificateList.add(x509Certificate); } // } else { // certificate alias does not start with the desired prefix } } } else { - log.error("Keystore not found at location=" + rootCertConfig.getKeyStoreLocation()); + log.error("E-RSP19206: Keystore not found at location=" + rootCertConfig.getKeyStoreLocation()); } - if (x509Certificates.isEmpty()) { - log.error("No certificates found based on: " + rootCertConfig); + if (x509RootCertificateList.isEmpty()) { + log.error("E-RSP19207: No certificates found based on: " + rootCertConfig); } else { - log.info(x509Certificates.size() + " certificates found based on: " + rootCertConfig); + log.info(x509RootCertificateList.size() + " certificates found based on: " + rootCertConfig); } - return x509Certificates; + return x509RootCertificateList; } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/CertificateUtil.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/CertificateUtil.java index eb78bdac7d186c893106f9db709b5444167a8eda..6a2d1e73f5fd3530fe5b8bf3fdb6e51e781cd4e9 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/CertificateUtil.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/CertificateUtil.java @@ -21,7 +21,7 @@ import java.net.URL; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; /** @@ -29,13 +29,47 @@ import java.util.List; */ public class CertificateUtil { - private static Log log = LogFactory.getLog(CertificateUtil.class); + private static final Log log = LogFactory.getLog(CertificateUtil.class); public CertificateUtil() { } + /** + * Extract the value of the given extension, if it exists. + * + * @param ext The extension object. + * @param oid The object identifier to obtain. + * @return ASN1Primitive. + * @throws Exception if the extension cannot be read. + */ + protected static ASN1Primitive getExtensionValue(java.security.cert.X509Extension ext, String oid) throws Exception { + byte[] bytes = ext.getExtensionValue(oid); + if (bytes == null) { + return null; + } + + return getObject(oid, bytes); + } + + private static ASN1Primitive getObject(String oid, byte[] ext) throws Exception { + ASN1InputStream aIn = null; + try { + aIn = new ASN1InputStream(ext); + ASN1OctetString octetString = (ASN1OctetString) aIn.readObject(); + + aIn = new ASN1InputStream(octetString.getOctets()); + return aIn.readObject(); + } catch (Exception e) { + throw new Exception("exception processing extension=" + oid + ": " + e.getMessage(), e); + } finally { + if (aIn != null) { + aIn.close(); + } + } + } + public List getOcspUrls(X509Certificate cert) throws Exception { - List urls = new LinkedList(); + List urls = new ArrayList<>(); AuthorityInformationAccess authInfoAccess = null; try { @@ -67,7 +101,7 @@ public class CertificateUtil { } public List getIssuerUrls(X509Certificate cert) throws Exception { - List urls = new LinkedList(); + List urls = new ArrayList<>(); AuthorityInformationAccess authInfoAccess = null; try { @@ -99,7 +133,7 @@ public class CertificateUtil { } public List getCrlURLs(X509Certificate cert) { - List urls = new LinkedList(); + List urls = new ArrayList<>(); // Retrieves the raw ASN1 data of the CRL Dist Points X509 extension byte[] cdp = cert.getExtensionValue(X509Extension.cRLDistributionPoints.getId()); @@ -125,12 +159,12 @@ public class CertificateUtil { } catch (IOException e) { // Could not retrieve the CRLDistPoint object. Just return empty url list. /* - * Hmm... So there is no possibility to see what happened when - * certificate is checked against CRL - such error is just hidden. - * - * TODO DLK: Think at least about logging such exception, throwing exception is preferred. - */ - log.error("Unable to find CRL URL for cert=[" + cert.getSubjectDN().getName() + "]: " + e.getMessage(), e); + * Hmm... So there is no possibility to see what happened when + * certificate is checked against CRL - such error is just hidden. + * + * TODO DLK: Think at least about logging such exception, throwing exception is preferred. + */ + log.error("E-RSP19351: Unable to find CRL URL for cert=[" + cert.getSubjectDN().getName() + "]: " + e.getMessage(), e); } } @@ -145,63 +179,29 @@ public class CertificateUtil { */ public URL getIssuerUrl(X509Certificate cert) { try { - List list = this.getIssuerUrls(cert); + List list = getIssuerUrls(cert); if (list.size() == 1) { // the url must be located on the 1. index return list.get(0); } } catch (Exception e) { - log.warn("Error fetching certificate: " + e.getMessage(), e); + log.warn("W-RSP19352: Error fetching certificate: " + e.getMessage(), e); } return null; } - /** - * Extract the value of the given extension, if it exists. - * - * @param ext The extension object. - * @param oid The object identifier to obtain. - * @return ASN1Primitive. - * @throws Exception if the extension cannot be read. - */ - protected static ASN1Primitive getExtensionValue(java.security.cert.X509Extension ext, String oid) throws Exception { - byte[] bytes = ext.getExtensionValue(oid); - if (bytes == null) { - return null; - } - - return getObject(oid, bytes); - } - - private static ASN1Primitive getObject(String oid, byte[] ext) throws Exception { - ASN1InputStream aIn = null; - try { - aIn = new ASN1InputStream(ext); - ASN1OctetString octetString = (ASN1OctetString) aIn.readObject(); - - aIn = new ASN1InputStream(octetString.getOctets()); - return aIn.readObject(); - } catch (Exception e) { - throw new Exception("exception processing extension=" + oid + ": " + e.getMessage(), e); - } finally { - if (aIn != null) { - aIn.close(); - } - } - } - public X509Certificate downloadIssuerCert(X509Certificate certificate) { ICache cache = CacheFactory.getInstance().getCertificateCache(); CertificateIssuerSubject certificateIssuerSubject = new CertificateIssuerSubject(certificate); X509Certificate downloadedX509Certificate = null; - OutVariable issuerCertificateOutVariable = new OutVariable(); + OutVariable issuerCertificateOutVariable = new OutVariable<>(); if (cache.tryGetValue(certificateIssuerSubject, issuerCertificateOutVariable)) { - // certificate already retrieved - using the cached version + // certificate already retrieved - using the cached version: downloadedX509Certificate = issuerCertificateOutVariable.getVariable(); } else { - // download the certificate, and add it to the cache + // download the certificate, and add it to the cache. InputStream inputStream = null; // CertificateUtil certificateUtil = new CertificateUtil(); URL issuerCertificateURL = getIssuerUrl(certificate); @@ -214,20 +214,19 @@ public class CertificateUtil { downloadedX509Certificate = (X509Certificate) certificateFactory.generateCertificate(inputStream); cache.add(certificateIssuerSubject, downloadedX509Certificate); } catch (IOException e) { - log.warn("Error reading from url " + issuerCertificateURL + " input stream: " + e.getMessage(), e); + log.warn("W-RSP19353: Error reading from url " + issuerCertificateURL + " input stream: " + e.getMessage(), e); } catch (CertificateException e) { - log.warn("Error creating certificate from url " + issuerCertificateURL + " input stream: " + e.getMessage(), e); + log.warn("W-RSP19354: Error creating certificate from url " + issuerCertificateURL + " input stream: " + e.getMessage(), e); } catch (Exception e) { - log.warn("Unexpected error during downloading certificate from url " + issuerCertificateURL + " input stream: " + e.getMessage(), e); + log.warn("W-RSP19355: Unexpected error during downloading certificate from url " + issuerCertificateURL + " input stream: " + e.getMessage(), e); } finally { // remember to close the input stream. if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { - log.warn("Error closing InputStream: " + e.getMessage(), e); + log.warn("W-RSP19356: Error closing InputStream: " + e.getMessage(), e); } - } } } @@ -235,4 +234,4 @@ public class CertificateUtil { return downloadedX509Certificate; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/FailedGetOcesCertificateTypeException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/FailedGetOcesCertificateTypeException.java index e895b44cd53982b988beeef1a0275be16b6df2e1..de575239ccdbf184b563ebd6af8f868b76b10fd1 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/FailedGetOcesCertificateTypeException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/FailedGetOcesCertificateTypeException.java @@ -28,8 +28,8 @@ public class FailedGetOcesCertificateTypeException extends * Constructor that takes the certificate and an exception as the reason as parameter. * @param innerException */ - public FailedGetOcesCertificateTypeException(Exception innerException) + public FailedGetOcesCertificateTypeException(Exception innerException, String errorCode) { - super(innerException); + super(innerException, errorCode); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/InvalidOcesCertificateException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/InvalidOcesCertificateException.java index 2f62594be6b488b4ba3c7aaf0938fadf9f83f239..9be89b68bbc3d71da03f1ca847cac81ca737529a 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/InvalidOcesCertificateException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/InvalidOcesCertificateException.java @@ -32,13 +32,11 @@ public class InvalidOcesCertificateException extends OcesCertificateException { private static final long serialVersionUID = 1L; /** - * Constructor that takes the certificate that is not a valid oces - * certificate as parameter. - * - * @param certificate - * certificate + * Constructor that takes the certificate that is not a valid oces certificate as parameter. + * + * @param certificate certificate. */ - public InvalidOcesCertificateException(final X509Certificate certificate) { - super(certificate); + public InvalidOcesCertificateException(final X509Certificate certificate, final String errorCode) { + super(certificate, errorCode); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateException.java index fc89ff6b45a6d014302791950f2236e838e8028f..7301281f1f781215f961309fe9d1cfa0f3b13499 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateException.java @@ -45,8 +45,8 @@ public class OcesCertificateException extends CertificateHandlingException { * @param innerException * causing exception */ - public OcesCertificateException(final Exception innerException) { - super(innerException); + public OcesCertificateException(final Exception innerException, final String errorCode) { + super(innerException, errorCode); } /** @@ -65,8 +65,8 @@ public class OcesCertificateException extends CertificateHandlingException { * @param certificate * certificate */ - public OcesCertificateException(final X509Certificate certificate) { - super(certificate.getIssuerDN() + " : " + certificate.getSubjectDN()); + public OcesCertificateException(final X509Certificate certificate, final String errorCode) { + super(errorCode + ": " + certificate.getIssuerDN() + " : " + certificate.getSubjectDN()); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateSubjectKey.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateSubjectKey.java index 0980bcf9615c56b538bf9e5304e5258a68ad5b28..8a32ea6fed3cac747263cb7cad47718f33d2791c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateSubjectKey.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateSubjectKey.java @@ -19,19 +19,19 @@ package dk.gov.oiosi.security.oces; +import dk.gov.oiosi.exception.NullOrEmptyArgumentException; + import java.util.regex.Matcher; import java.util.regex.Pattern; -import dk.gov.oiosi.exception.NullOrEmptyArgumentException; - /** - * Implements the OCES certificate subject key. Ensures that the text that is + * Implements the OCES certificate subject key. Ensures that the text that is * used to detect certificate strings. */ public class OcesCertificateSubjectKey { private static Pattern subjectKeyStringPattern = Pattern.compile("(\\s)+"); - + private String _subjectKeyString; /** @@ -55,10 +55,10 @@ public class OcesCertificateSubjectKey { * Gets the subject key string. * @return The subject key string */ - public String getSubjectKeyString() { + public String getSubjectKeyString() { return _subjectKeyString; } - + /** * Sets the subject key string for this certificate * @param value The subject key string @@ -68,15 +68,15 @@ public class OcesCertificateSubjectKey { CheckSubjectKeyString(value); _subjectKeyString = value; } - + private void CheckSubjectKeyString(String subjectKeyString) throws InvalidOcesCertificateSubjectKeyException { - if (subjectKeyString == null || subjectKeyString.equals("")) throw new NullOrEmptyArgumentException("keyString"); - + if (subjectKeyString == null || subjectKeyString.isEmpty()) throw new NullOrEmptyArgumentException("E-RSP19311: keyString"); + Matcher m = subjectKeyStringPattern.matcher(subjectKeyString); if (m.matches()) { - throw new InvalidOcesCertificateSubjectKeyException("Invalid subject key string."); + throw new InvalidOcesCertificateSubjectKeyException("E-RSP19312: Invalid subject key string."); } } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateType.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateType.java index 6d0106ae5f79eda3ad7442ec81cc9ec7589ac94b..d1968760ff05f877bd26b4173593030cb05c14ec 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateType.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesCertificateType.java @@ -24,6 +24,18 @@ package dk.gov.oiosi.security.oces; */ public class OcesCertificateType { + /** + * OCES organization (company)certificate. + */ + public static final int OcesOrganisation = 2; + /** + * OCES device certificate. + */ + public static final int OcesDevice = 3; + /** + * Non-OCES certificate. + */ + public static final int NonOces = 4; /** * Certificate type. */ @@ -31,9 +43,8 @@ public class OcesCertificateType { /** * Constructor. - * - * @param value - * type + * + * @param value type */ public OcesCertificateType(int value) { this.value = value; @@ -41,36 +52,10 @@ public class OcesCertificateType { /** * Certificate type. - * + * * @return type */ public int getType() { return value; } - - /** - * Personal OCES certificate. - */ - public static final int OcesPersonal = 0; - - /** - * OCES employee certificate. - */ - public static final int OcesEmployee = 1; - - /** - * OCES organization (company)certificate. - */ - public static final int OcesOrganisation = 2; - - /** - * OCES device certificate. - */ - public static final int OcesDevice = 3; - - /** - * Non-OCES certificate. - */ - public static final int NonOces = 4; - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509Certificate.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509Certificate.java index d2e84ef7ef583b7ea65aff6fa55c8dcf63de9572..e4735dbb3eb534cbaed602162682d9dcec89260d 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509Certificate.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509Certificate.java @@ -41,7 +41,7 @@ import java.util.regex.Pattern; */ public class OcesX509Certificate { - private static Log log = LogFactory.getLog(OcesX509Certificate.class); + private static final Log log = LogFactory.getLog(OcesX509Certificate.class); /** * Certificate. @@ -58,11 +58,6 @@ public class OcesX509Certificate { */ private RevocationCheckStatus revocationCheckStatus = new RevocationCheckStatus(RevocationCheckStatus.NotChecked); - /** - * Certificate type. - */ - private OcesCertificateType ocesCertificateType = new OcesCertificateType(OcesCertificateType.NonOces); - /** * Certificate subject. */ @@ -72,21 +67,69 @@ public class OcesX509Certificate { * Constructor that takes the X509Certificate wrapped. If the certificate is not an OCES-certificate an exception will be thrown. * * @param certificate An OCES x509 certificate - * @throws FailedGetOcesCertificateTypeException On error... - * @throws InvalidOcesCertificateException On error... + * @throws FailedGetOcesCertificateTypeException On error. + * @throws InvalidOcesCertificateException On error. */ public OcesX509Certificate(X509Certificate certificate) throws InvalidOcesCertificateException, FailedGetOcesCertificateTypeException { if (certificate == null) { - throw new ArgumentNullException("certificate"); + throw new ArgumentNullException("certificate", "E-RSP19321"); } x509Certificate = certificate; subject = new CertificateSubject(x509Certificate); - if (getOcesCertificateType().getType() == OcesCertificateType.NonOces) { - log.error("Object not created, because type=OcesCertificateType.NonOces for [" + certificate.getSubjectDN() + "]"); - throw new InvalidOcesCertificateException(certificate); + if (getOcesCertificateType(certificate).getType() == OcesCertificateType.NonOces) { + log.error("E-RSP19322: Object not created, because type=OcesCertificateType.NonOces for [" + certificate.getSubjectDN() + "]"); + throw new InvalidOcesCertificateException(certificate, "E-RSP19322"); + } + } + + /** + * Get the OCES certificate type from a given certificate. + * + * @param certificate The certificate to examine. + * @return The certificate type. + * @throws FailedGetOcesCertificateTypeException On error. + */ + public static OcesCertificateType getOcesCertificateType(X509Certificate certificate) throws FailedGetOcesCertificateTypeException { + if (certificate == null) { + throw new ArgumentNullException("certificate", "E-RSP19321"); + } + + try { + return getFromSubject(certificate); + } catch (Exception e) { + log.error("E-RSP19323: Could not get Oces certificate type from subject: " + e.getMessage(), e); + throw new FailedGetOcesCertificateTypeException(e, "E-RSP19323"); + } + } + + /** + * Resolve certificate type from subject. + * + * @param certificate The certificate to get the type of. + * @return The certificate type + * @throws MainException On error. + * @deprecated RASP 2.1: Seems unused... will be removed from next version if not flaged to support@nemhandel.dk + */ + private static OcesCertificateType getFromSubject(X509Certificate certificate) throws MainException { + OcesX509CertificateConfig _config = ConfigurationHandler.getInstance().getOcesX509CertificateConfig(); + + CertificateSubject subject = new CertificateSubject(certificate.getSubjectX500Principal().toString()); + String ssn = subject.getSubjectString(); + + if (ssn == null) { + return new OcesCertificateType(OcesCertificateType.NonOces); + } + + if (ssn.contains(_config.getFunctionCertificateSubjectKey().getSubjectKeyString())) { + return new OcesCertificateType(OcesCertificateType.OcesDevice); + } + if (ssn.contains(_config.getOrganizationCertificateSubjectKey().getSubjectKeyString())) { + return new OcesCertificateType(OcesCertificateType.OcesOrganisation); } + + return new OcesCertificateType(OcesCertificateType.NonOces); } /** @@ -94,7 +137,7 @@ public class OcesX509Certificate { * * @param revocationLookupClient The revocation client to use for the request * @return Returns the check status - * @throws RevocationException On error... + * @throws RevocationException On error. */ public RevocationCheckStatus checkRevocationStatus(IRevocationLookup revocationLookupClient) throws RevocationException { RevocationResponse response; @@ -150,37 +193,6 @@ public class OcesX509Certificate { return revocationCheckStatus; } - /** - * Gets the certificate Oces certificate type - * - * @return The certificate type - * @deprecated RASP 2.1: Seems unused... will be removed from next version if not flagged to support@nemhandel.dk - */ - public OcesCertificateType getOcesCertificateType() throws FailedGetOcesCertificateTypeException { - return getOcesCertificateType(x509Certificate); - } - - /** - * Get the OCES certificate type from a given certificate. - * - * @param certificate The certificate to examine - * @return The certificate type - * @throws FailedGetOcesCertificateTypeException On error... - * @deprecated RASP 2.1: Seems unused... will be removed from next version if not flagged to support@nemhandel.dk - */ - public static OcesCertificateType getOcesCertificateType(X509Certificate certificate) throws FailedGetOcesCertificateTypeException { - if (certificate == null) { - throw new ArgumentNullException("certificate"); - } - - try { - return getFromSubject(certificate); - } catch (Exception e) { - log.error("Could not get Oces certificate type from subject " + e, e); - throw new FailedGetOcesCertificateTypeException(e); - } - } - /** * Try to get the cvr number as a string value from the certificate, if such exists * @@ -205,42 +217,8 @@ public class OcesX509Certificate { return !cvrNumber.isEmpty(); } - /** - * Resolve certificate type from subject. - * - * @param certificate The certificate to get the type of - * @return The certificate type - * @throws MainException On error... - * @deprecated RASP 2.1: Seems unused... will be removed from next version if not flaged to support@nemhandel.dk - */ - private static OcesCertificateType getFromSubject(X509Certificate certificate) throws MainException { - OcesX509CertificateConfig _config = ConfigurationHandler.getInstance().getOcesX509CertificateConfig(); - - CertificateSubject subject = new CertificateSubject(certificate.getSubjectX500Principal().toString()); - String ssn = subject.getSubjectString(); - - if (ssn == null) { - return new OcesCertificateType(OcesCertificateType.NonOces); - } - - if (ssn.indexOf(_config.get_personalCertificateSubjectKey().getSubjectKeyString()) != -1) { - return new OcesCertificateType(OcesCertificateType.OcesPersonal); - } - if (ssn.indexOf(_config.get_functionCertificateSubjectKey().getSubjectKeyString()) != -1) { - return new OcesCertificateType(OcesCertificateType.OcesDevice); - } - if (ssn.indexOf(_config.get_organizationCertificateSubjectKey().getSubjectKeyString()) != -1) { - return new OcesCertificateType(OcesCertificateType.OcesOrganisation); - } - if (ssn.indexOf(_config.get_employeeCertificateSubjectKey().getSubjectKeyString()) != -1) { - return new OcesCertificateType(OcesCertificateType.OcesEmployee); - } - - return new OcesCertificateType(OcesCertificateType.NonOces); - } - @Override public String toString() { return subject.getSubjectString(); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509CertificateConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509CertificateConfig.java index 8e1b5b68b95ac5f22c9eb7791df9c26ff1705e46..e92cc3ed02360795aded592d2cebd0ab995217c1 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509CertificateConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/oces/OcesX509CertificateConfig.java @@ -24,73 +24,47 @@ import dk.gov.oiosi.exception.ArgumentNullException; /** * Represents the configuration element to setup the subject key to the different certificates. */ -public class OcesX509CertificateConfig -{ - private OcesCertificateSubjectKey _personalCertificateSubjectKey; - private OcesCertificateSubjectKey _employeeCertificateSubjectKey; - private OcesCertificateSubjectKey _organizationCertificateSubjectKey; - private OcesCertificateSubjectKey _functionCertificateSubjectKey; +public class OcesX509CertificateConfig { + + private OcesCertificateSubjectKey organizationCertificateSubjectKey; + private OcesCertificateSubjectKey functionCertificateSubjectKey; /** * Default constructor used by XMLSerialization. It should not be used. */ public OcesX509CertificateConfig() { - _personalCertificateSubjectKey = new OcesCertificateSubjectKey(); - _employeeCertificateSubjectKey = new OcesCertificateSubjectKey(); - _organizationCertificateSubjectKey = new OcesCertificateSubjectKey(); - _functionCertificateSubjectKey = new OcesCertificateSubjectKey(); + organizationCertificateSubjectKey = new OcesCertificateSubjectKey(); + functionCertificateSubjectKey = new OcesCertificateSubjectKey(); } - /** + /** * Constructor that takes the subject key for each of the OCES certificate types. */ - public OcesX509CertificateConfig(OcesCertificateSubjectKey personalCertificateSubjectKey, - OcesCertificateSubjectKey employeeCertificateSubjectKey, - OcesCertificateSubjectKey organizationCertificateSubjectKey, + public OcesX509CertificateConfig(OcesCertificateSubjectKey organizationCertificateSubjectKey, OcesCertificateSubjectKey functionCertificateSubjectKey) { - if (personalCertificateSubjectKey == null) throw new ArgumentNullException("personalCertificateSubjectKey"); - if (employeeCertificateSubjectKey == null) throw new ArgumentNullException("employeeCertificateSubjectKey"); - if (organizationCertificateSubjectKey == null) throw new ArgumentNullException("organizationCertificateSubjectKey"); - if (functionCertificateSubjectKey == null) throw new ArgumentNullException("functionCertificateSubjectKey"); - _personalCertificateSubjectKey = personalCertificateSubjectKey; - _employeeCertificateSubjectKey = employeeCertificateSubjectKey; - _organizationCertificateSubjectKey = organizationCertificateSubjectKey; - _functionCertificateSubjectKey = functionCertificateSubjectKey; + if (organizationCertificateSubjectKey == null) { + throw new ArgumentNullException("organizationCertificateSubjectKey", "E-RSP19333"); + } + if (functionCertificateSubjectKey == null) { + throw new ArgumentNullException("functionCertificateSubjectKey", "E-RSP19334"); + } + this.organizationCertificateSubjectKey = organizationCertificateSubjectKey; + this.functionCertificateSubjectKey = functionCertificateSubjectKey; } - public OcesCertificateSubjectKey get_personalCertificateSubjectKey() { - return _personalCertificateSubjectKey; - } - - public void set_personalCertificateSubjectKey( - OcesCertificateSubjectKey certificateSubjectKey) { - _personalCertificateSubjectKey = certificateSubjectKey; - } - - public OcesCertificateSubjectKey get_employeeCertificateSubjectKey() { - return _employeeCertificateSubjectKey; - } - - public void set_employeeCertificateSubjectKey( - OcesCertificateSubjectKey certificateSubjectKey) { - _employeeCertificateSubjectKey = certificateSubjectKey; - } - - public OcesCertificateSubjectKey get_organizationCertificateSubjectKey() { - return _organizationCertificateSubjectKey; - } + public OcesCertificateSubjectKey getOrganizationCertificateSubjectKey() { + return organizationCertificateSubjectKey; + } - public void set_organizationCertificateSubjectKey( - OcesCertificateSubjectKey certificateSubjectKey) { - _organizationCertificateSubjectKey = certificateSubjectKey; - } + public void setOrganizationCertificateSubjectKey(OcesCertificateSubjectKey certificateSubjectKey) { + organizationCertificateSubjectKey = certificateSubjectKey; + } - public OcesCertificateSubjectKey get_functionCertificateSubjectKey() { - return _functionCertificateSubjectKey; - } + public OcesCertificateSubjectKey getFunctionCertificateSubjectKey() { + return functionCertificateSubjectKey; + } - public void set_functionCertificateSubjectKey( - OcesCertificateSubjectKey certificateSubjectKey) { - _functionCertificateSubjectKey = certificateSubjectKey; - } + public void setFunctionCertificateSubjectKey(OcesCertificateSubjectKey certificateSubjectKey) { + functionCertificateSubjectKey = certificateSubjectKey; + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/CheckCertificateRevokedUnexpectedException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/CheckCertificateRevokedUnexpectedException.java index f5be7c1d9ce52f3b6e63608f6bf4fb2dbacf692f..5fe238a19b096e232a937863d23c88dd498f8e20 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/CheckCertificateRevokedUnexpectedException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/CheckCertificateRevokedUnexpectedException.java @@ -65,4 +65,4 @@ public class CheckCertificateRevokedUnexpectedException extends RevocationExcept public URL getCrlUrl() { return crlUrl; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/IRevocationLookup.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/IRevocationLookup.java index ac9d759f169e92ca1ee1524fdf75e86b811d2f84..a07de749bf00e9fc5e63cb60bee682ddf6197875 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/IRevocationLookup.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/IRevocationLookup.java @@ -22,21 +22,16 @@ package dk.gov.oiosi.security.revocation; import java.security.cert.X509Certificate; /** - * A class implementing this interface is capable of checking whether a - * X509 certificate has been revoked. + * A class implementing this interface is capable of checking whether a X509 certificate has been revoked. */ public interface IRevocationLookup { - public static enum RevocationSourceType { - CRL, OCSP - } - /** * Checks whether the certificate has been revoked. * * @param certificate The certificate to check * @return Returns the check status - * @throws RevocationException On error... + * @throws RevocationException On error. */ RevocationResponse checkCertificate(X509Certificate certificate) throws RevocationException; @@ -48,14 +43,19 @@ public interface IRevocationLookup { * @since OIORASP 1.3.0 */ /* - * dlk 2012-04-19 - * - * Potentially it can lead to problems with backward compatibility, if some - * customers implemented their own revocation lookup clients. - * - * But strategically, it is more correct to use such method in case if in - * future there will be more than these 3 kinds of implementations - - * RevocationSourceType will be just extended with DB or OCSP2 or whatever. - */ + * dlk 2012-04-19 + * + * Potentially it can lead to problems with backward compatibility, if some + * customers implemented their own revocation lookup clients. + * + * But strategically, it is more correct to use such method in case if in + * future there will be more than these 3 kinds of implementations - + * RevocationSourceType will be just extended with DB or OCSP2 or whatever. + */ RevocationSourceType getRevocationSourceType(); -} \ No newline at end of file + + enum RevocationSourceType { + CRL, + OCSP + } +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationException.java index 8bb499e09b00ad084993ae10282366116d7e1180..dec00301bd783edc05d6487d1d26d7ebb39c982f 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationException.java @@ -26,9 +26,9 @@ import dk.gov.oiosi.security.CertificateHandlingException; */ public class RevocationException extends CertificateHandlingException { - private static final long serialVersionUID = -1103450041200842017L; + private static final long serialVersionUID = -1103450041200842017L; - /** + /** * Base constructor. */ public RevocationException() { @@ -38,34 +38,29 @@ public class RevocationException extends CertificateHandlingException { /** * Base constructor. * - * @param e - * message + * @param e message */ public RevocationException(final String e) { super(e); } +// /** +// * Constructor with inner exception. +// * +// * @param innerException Inner exception of the thrown exception. +// */ +// public RevocationException(final Exception innerException) { +// super(innerException); +// } + /** * Constructor with inner exception. * - * @param innerException - * innerexception of the thrown exception + * @param message error message. + * @param innerException Inner exception of the thrown exception. + * @since OIORASP 1.3.0 */ - public RevocationException(final Exception innerException) { - super(innerException); - } - - /** - * Constructor with inner exception. - * - * @param message - * error message - * @param innerException - * innerexception of the thrown exception - * @since OIORASP 1.3.0 - */ public RevocationException(String message, final Exception innerException) { super(message, innerException); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationLookupFactory.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationLookupFactory.java index ffa21b2fe4b11b36916043a663fe72bb98819b51..c07dbcbff5e93656ad72ee2b6d06305f9598c823 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationLookupFactory.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/RevocationLookupFactory.java @@ -29,16 +29,22 @@ import org.apache.commons.logging.LogFactory; */ public class RevocationLookupFactory { - private static Log log = LogFactory.getLog(RevocationLookupFactory.class); + private static final Log log = LogFactory.getLog(RevocationLookupFactory.class); private static IRevocationLookup lookupClient; + /** + * Hide default constructor. + */ + private RevocationLookupFactory() { + } + /** * Builds an instance of an IRevocationLookup client based on configuration. * * @return revocation lookup */ - public static IRevocationLookup createRevocationLookupClient() { + public static IRevocationLookup createRevocationLookupClient() { if (lookupClient == null) { synchronized (RevocationLookupFactory.class) { RevocationLookupFactoryConfig config = ConfigurationHandler.getInstance().getRevocationLookupFactoryConfig(); @@ -47,11 +53,11 @@ public class RevocationLookupFactory { log.debug("Init RevocationLookupFactory with class: " + config.getImplementationNamespaceClass()); lookupClient = (IRevocationLookup) Class.forName(config.getImplementationNamespaceClass()).newInstance(); } catch (InstantiationException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e.getMessage(), e, "E-RSP19454"); } catch (IllegalAccessException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e.getMessage(), e, "E-RSP19455"); } catch (ClassNotFoundException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e.getMessage(), e, "E-RSP19456"); } } } @@ -66,4 +72,4 @@ public class RevocationLookupFactory { protected static void clear() { lookupClient = null; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCache.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCache.java index 2a7ca586390ae826d66cdd15e91da677c9291119..4eed3811313efd4a1332c17e74dc65a550439c18 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCache.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCache.java @@ -74,10 +74,10 @@ public class CrlCache { if (value > 0) { onFailureRetryIntervalMinutes = value; } else { - log.error("Invalid value for config field " + CONFIG_PARAM_ON_FAILURE_RETRY_INTERVAL_MINUTES + ", found='" + configValue + "', which was parsed as " + value + ". Value should be more than 0. Use default " + DEFAULT_ON_FAILURE_RETRY_INTERVAL_MINUTES); + log.error("E-RSP19461: Invalid value for config field " + CONFIG_PARAM_ON_FAILURE_RETRY_INTERVAL_MINUTES + ", found='" + configValue + "', which was parsed as " + value + ". Value should be more than 0. Use default " + DEFAULT_ON_FAILURE_RETRY_INTERVAL_MINUTES); } } catch (Exception e) { - log.error("Failed to parse config field " + CONFIG_PARAM_ON_FAILURE_RETRY_INTERVAL_MINUTES + ", found='" + configValue + "', use default " + DEFAULT_ON_FAILURE_RETRY_INTERVAL_MINUTES); + log.error("E-RSP19462: Failed to parse config field " + CONFIG_PARAM_ON_FAILURE_RETRY_INTERVAL_MINUTES + ", found='" + configValue + "', use default " + DEFAULT_ON_FAILURE_RETRY_INTERVAL_MINUTES); } } } @@ -129,7 +129,7 @@ public class CrlCache { // Cache was successfully updated, schedule next update scheduleCacheUpdate(url, crlInstance.getNextUpdate()); } catch (CheckCertificateRevokedUnexpectedException e) { - log.error("Failed to initialize CRL cache for URL " + key + ", schedule new attempts with interval " + this.onFailureRetryIntervalMinutes + " minutes", e); + log.error("E-RSP19463: Failed to initialize CRL cache for URL " + key + ", schedule new attempts with interval " + this.onFailureRetryIntervalMinutes + " minutes", e); scheduleCacheUpdate(url, null); return crlInstance; } @@ -161,7 +161,7 @@ public class CrlCache { * Log warning message in this case. */ if (nextRun != null && nextRun.before(c.getTime())) { - log.warn("CrlCache: downloaded CRL list requires update before current time (" + nextRun + "). Check your time settings to be sure that you use correct time. Next update date is changed to be not earlier than in 5 minutes from now"); + log.warn("W-RSP19464: CrlCache: downloaded CRL list requires update before current time (" + nextRun + "). Check your time settings to be sure that you use correct time. Next update date is changed to be not earlier than in 5 minutes from now"); c.add(Calendar.MINUTE, MINIMAL_CACHE_UPDATE_INTERVAL_MINUTES); nextRun = c.getTime(); } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCacheUpdateJob.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCacheUpdateJob.java index 877ef36524e4328749f2a5fe73135ded0ee4e132..233f4e88abd8d5fc3638f5bad38053e56f92fae0 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCacheUpdateJob.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlCacheUpdateJob.java @@ -25,7 +25,7 @@ public class CrlCacheUpdateJob extends AbstractScheduleJob { public CrlCacheUpdateJob(URL crlUrl, String actionDetail) { if (crlUrl == null) { - throw new IllegalArgumentException("CrlCacheUpdateJob " + actionDetail + ": null url is passed"); + throw new IllegalArgumentException("E-RSP19416: CrlCacheUpdateJob " + actionDetail + ": null url is passed"); } this.actionDetail = actionDetail; this.crlUrl = crlUrl; @@ -58,7 +58,7 @@ public class CrlCacheUpdateJob extends AbstractScheduleJob { try { crl.updateData(); } catch (Exception e) { - log.error("CrlCacheUpdateJob: failed to " + actionDetail + " CRL cache for url '" + crlUrl + "' after " + (System.currentTimeMillis() - start) + " ms, continue attempts later", e); + log.error("E-RSP19415: CrlCacheUpdateJob: failed to " + actionDetail + " CRL cache for url '" + crlUrl + "' after " + (System.currentTimeMillis() - start) + " ms, continue attempts later", e); return true; } /* diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlInstance.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlInstance.java index f558543a0934cb843a24908d9de39297ccb13699..1c9fe9b507005143a3e5a80066aa0f0ed4b5674d 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlInstance.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlInstance.java @@ -27,7 +27,10 @@ import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.security.cert.*; +import java.security.cert.Certificate; +import java.security.cert.CertificateFactory; +import java.security.cert.X509CRL; +import java.security.cert.X509CRLEntry; import java.util.*; /** @@ -88,26 +91,23 @@ public class CrlInstance { input.close(); } catch (Exception e) { // Hide exception here, not relevant - log.warn("Error closing InputStream: " + e.getMessage(), e); + log.warn("W-RSP19481: Error closing InputStream: " + e.getMessage(), e); } } // Everything went well. } else { // url connection not valid, throwing an exception - log.error("CRL-data could not be downloaded from url=" + crlUrl + ": " + urlConnection.getResponseMessage()); - throw new CheckCertificateRevokedUnexpectedException("CRL-data could not be downloaded from url=" + crlUrl + ": " + urlConnection.getResponseMessage()); + log.error("E-RSP19402: CRL-data could not be downloaded from url=" + crlUrl + ": " + urlConnection.getResponseMessage()); + throw new CheckCertificateRevokedUnexpectedException("E-RSP19402: CRL-data could not be downloaded from url=" + crlUrl + ": " + urlConnection.getResponseMessage()); } } catch (IOException e) { // Could not download new crl - log.error("CRL-data could not be downloaded from url=" + crlUrl + ": " + e.getMessage(), e); - throw new CheckCertificateRevokedUnexpectedException("IO error via access to url=" + crlUrl, e, crlUrl); - } catch (CRLException e) { - // Something was wrong with crl - log.error("CRL-data could not be downloaded from url=" + crlUrl + ": " + e.getMessage(), e); - throw new CheckCertificateRevokedUnexpectedException("CRL problem during access to url=" + crlUrl, e, crlUrl); + log.error("E-RSP19403: CRL-data could not be downloaded from url=" + crlUrl + ": " + e.getMessage(), e); + throw new CheckCertificateRevokedUnexpectedException("E-RSP19403: IO error via access to url=" + crlUrl, e, crlUrl); } catch (Exception e) { - log.error("CRL-data could not be downloaded from url=" + crlUrl + ": " + e.getMessage(), e); - throw new CheckCertificateRevokedUnexpectedException("Unexpected exception during access to url=" + crlUrl, e, crlUrl); + // Something was wrong with crl + log.error("E-RSP19403: CRL-data could not be downloaded from url=" + crlUrl + ": " + e.getMessage(), e); + throw new CheckCertificateRevokedUnexpectedException(e.getMessage(), e, crlUrl); } } @@ -118,7 +118,6 @@ public class CrlInstance { * * @param cert The certificate to check whether revoked or not * @return Returns true if revoked, false otherwise. - * @throws CheckCertificateRevokedUnexpectedException On error... */ /* * dlk, 2012-03-19 @@ -149,7 +148,7 @@ public class CrlInstance { /** * Downloads new CrlData from the URL stored on the class. * - * @throws CheckCertificateRevokedUnexpectedException On error... + * @throws CheckCertificateRevokedUnexpectedException On error. */ protected void updateData() throws CheckCertificateRevokedUnexpectedException { log.trace("Update CRL data based on URL=" + url); @@ -236,7 +235,7 @@ public class CrlInstance { if (revokedCertificates != null) { Date maxRevocationDate = null; - Map groupByYear = new LinkedHashMap(); + Map groupByYear = new HashMap<>(); Calendar c = Calendar.getInstance(); for (X509CRLEntry x509crlEntry : revokedCertificates) { Date revocationDate = x509crlEntry.getRevocationDate(); @@ -260,4 +259,4 @@ public class CrlInstance { } } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlLookup.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlLookup.java index b8d408e5194ea6df610dc418096e10b3c71f11af..68b4660cd680e7291eff47ed99a2c1983a1754b8 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlLookup.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/CrlLookup.java @@ -47,43 +47,43 @@ public class CrlLookup implements IRevocationLookup { private static final Log log = LogFactory.getLog(CrlLookup.class); - private final static Date ZERO_DATE = new Date(0); - - private static CertificateUtil _certificateUtil; - + private static final Date ZERO_DATE = new Date(0); /** * Cache used for storing CrlInstances. + *

+ * SimpleCrlLookup and CrlLookup are not supposed to be used in the same environment. */ - /* - * SimpleCrlLookup and CrlLookup are not supposed to be used in the same environment. - */ protected static CrlCache cache; + private static CertificateUtil _certificateUtil; static { try { cache = new CrlCache(); } catch (Exception e) { - log.error("Call to new CrlCache() failed: " + e.getMessage(), e); - throw new RuntimeException(e.getMessage(), e); + log.error("E-RSP19471: Call to new CrlCache() failed: " + e.getMessage(), e); + throw new RuntimeException("E-RSP19471: " + e.getMessage(), e); } } + protected static CrlCache getCache() { + return cache; + } + /** * Checks a certificate status in a CRL. * * @param certificate The certificate to check * @return The RevocationResponse object that contains the result - * @throws RevocationException */ public RevocationResponse checkCertificate(X509Certificate certificate) throws RevocationException { /* - * Assumptions: - Certificate has an CRL Distribution Points extension - * value. - An HTTP distribution point is present. - */ + * Assumptions: - Certificate has an CRL Distribution Points extension + * value. - An HTTP distribution point is present. + */ // Fail fast! if (certificate == null) { - throw new RevocationException("Fault happened at CrlLookup.checkCertificate: null certificate was passed"); + throw new RevocationException("E-RSP19409: Fault happened at CrlLookup.checkCertificate: null certificate was passed"); } RevocationResponse response = new RevocationResponse(); @@ -94,7 +94,7 @@ public class CrlLookup implements IRevocationLookup { * certificate should not be part of this chain. The question weather * the root certificates is trusted, is validated in OioraspPolicyBasedResultsValidator */ - List certificateList = new ArrayList(); + List certificateList = new ArrayList<>(); certificateList.add(certificate); X509Certificate currentCertificate = certificate; @@ -115,16 +115,18 @@ public class CrlLookup implements IRevocationLookup { if (log.isDebugEnabled()) { log.debug("CrlLookup.checkCertificate: found issuers certificate [" + issuerCertificate.getSubjectX500Principal() + "] for certificate [" + currentCertificate.getSubjectX500Principal() + "], continue cycle"); } - certificateList.add(issuerCertificate); + if (!certificateList.contains(issuerCertificate)) { + certificateList.add(issuerCertificate); + } /* - Break if found issuerCertificate (parent) is root certificate. + Break, if the issuerCertificate is root certificate (is issuer for it self). Case: Chain: A -> B -> C (where A is root) - Having currentCertificate=B, issuerCertificate is A - If A's name is equal to A's issuers name, then break. + Having a currentCertificate B, and it's issuerCertificate is A. + If A's name is equal to A's issuers name, then break (then currentCertificate is A itself). */ - if (issuerCertificate.getSubjectX500Principal().getName().equals(issuerCertificate.getIssuerDN().getName())) { + if (issuerCertificate.getSubjectDN().getName().equals(issuerCertificate.getIssuerDN().getName())) { break; } @@ -150,9 +152,9 @@ public class CrlLookup implements IRevocationLookup { CrlInstance crlInstance = cache.getCRLInstance(url); try { /* - * So the certificate is not revoked. Remember, that the issuer certificate - * could be revoked. So the next update must be the earliest of the all. - */ + * So the certificate is not revoked. Remember, that the issuer certificate + * could be revoked. So the next update must be the earliest of the all. + */ if (crlInstance.isRevoked(certificate)) { response.setIsValid(false); } else { @@ -163,9 +165,9 @@ public class CrlLookup implements IRevocationLookup { response.setNextUpdate(crlInstance.getNextUpdate()); } else if (response.getNextUpdate().after(crlInstance.getNextUpdate())) { /* - * Next element in chain has a newer NextUpdate() time than the already registered - * 'NextUpdate', so we use the crl.getNextUpdate as next update - */ + * Next element in chain has a newer NextUpdate() time than the already registered + * 'NextUpdate', so we use the crl.getNextUpdate as next update + */ response.setNextUpdate(crlInstance.getNextUpdate()); } } @@ -213,19 +215,15 @@ public class CrlLookup implements IRevocationLookup { * @return A list of CRL URLs in the certificate */ /* - * dlk, 2012-03-19 - * - * Increase visibility of getURLs method to make it testable - */ + * dlk, 2012-03-19 + * + * Increase visibility of getURLs method to make it testable + */ protected List getURLs(X509Certificate cert) { CertificateUtil util = getCertificateUtil(); return util.getCrlURLs(cert); } - protected static CrlCache getCache() { - return cache; - } - /** * @return Always returns CRL * @since OIORASP 1.3.0 @@ -234,4 +232,4 @@ public class CrlLookup implements IRevocationLookup { public RevocationSourceType getRevocationSourceType() { return RevocationSourceType.CRL; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/SimpleCrlLookup.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/SimpleCrlLookup.java index 9b0c10e1932eeec46908a5e90eb12cdc40dcb3c0..e20e38ad0e13db955c4da41de30996e8939aa16d 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/SimpleCrlLookup.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/crl/SimpleCrlLookup.java @@ -21,7 +21,7 @@ import java.util.List; * To use this class instead of CrlLookup, which supports OCSP2, * RaspConfiguration.xml should be updated: *

- * + * *

  * <ConfigurationSection xsi:type="RevocationLookupFactoryConfig">
  * 

@@ -29,84 +29,77 @@ import java.util.List; *

* </ConfigurationSection> *

- * - * @author Dmitriy Lapko, TrueLink A/S + * * @since OIORASP 1.3.0 */ public class SimpleCrlLookup extends CrlLookup { - /** - * Checks a certificate status in a CRL. - * - * @param certificate The certificate to check - * @return The RevocationResponse object that contains the result - * @throws RevocationException - */ - public RevocationResponse checkCertificate(X509Certificate certificate) throws RevocationException { - /* - * Assumptions: - Certificate has an CRL Distribution Points extension - * value. - An HTTP distribution point is present. - */ + /** + * Checks a certificate status in a CRL. + * + * @param certificate The certificate to check + * @return The RevocationResponse object that contains the result + * @throws RevocationException + */ + public RevocationResponse checkCertificate(X509Certificate certificate) throws RevocationException { + /* + * Assumptions: - Certificate has an CRL Distribution Points extension + * value. - An HTTP distribution point is present. + */ - /* - * Fail fast! - */ - if (certificate == null) { - throw new RevocationException("Fault happened at CrlLookup.checkCertificate: null certificate was passed"); - } + /* + * Fail fast! + */ + if (certificate == null) { + throw new RevocationException("E-RSP19409: Fault happened at CrlLookup.checkCertificate: null certificate was passed"); + } - RevocationResponse response = new RevocationResponse(); - RevocationException innerException = null; + RevocationResponse response = new RevocationResponse(); + RevocationException innerException = null; - /* - * Retrieve URL distribution points - */ - List urlList = getURLs(certificate); + /* + * Retrieve URL distribution points + */ + List urlList = getURLs(certificate); - for (URL url : urlList) { - CrlInstance crl = cache.getCRLInstance(url); - try { - if (!crl.isRevoked(certificate)) { - response.setIsValid(true); - response.setNextUpdate(crl.getNextUpdate()); - return response; - } else { - response.setIsValid(false); - return response; - } - } catch (CheckCertificateRevokedUnexpectedException e) { - /* - * There was an error in checking the certificate. Try the next - * url. Remember first error. - */ - if (innerException == null) { - StringBuilder sb = new StringBuilder(); - sb.append("Fault happened at CrlLookup.checkCertificate: all extracted CRL URLs failed, at first for URL "); - sb.append(url); - sb.append(" for certificate "); - sb.append(certificate.getSubjectX500Principal()); - sb.append(", all resolved URLs: ").append(urlList); - innerException = new RevocationException(sb.toString(), e); - } - } - } - - /* - * If all URLs failed to do CRL check, then abort the processing of the - * message. - */ - if (innerException != null) { - throw innerException; - } else { - /* - * This can happen ONLY if getURLs returned empty list of - * certificates - */ - StringBuilder sb = new StringBuilder(); - sb.append("Fault happened at CrlLookup.checkCertificate: none URL to CRL server is retrieved from certificate "); - sb.append(certificate.getSubjectX500Principal()); - throw new RevocationException(sb.toString()); - } - } + for (URL url : urlList) { + CrlInstance crl = cache.getCRLInstance(url); + try { + if (!crl.isRevoked(certificate)) { + response.setIsValid(true); + response.setNextUpdate(crl.getNextUpdate()); + return response; + } else { + response.setIsValid(false); + return response; + } + } catch (CheckCertificateRevokedUnexpectedException e) { + /* + * There was an error in checking the certificate. Try the next url. Remember first error. + */ + if (innerException == null) { + String sb = "Fault happened at CrlLookup.checkCertificate: all extracted CRL URLs failed, at first for URL " + + url + " for certificate " + certificate.getSubjectX500Principal() + ", all resolved URLs: " + urlList; + innerException = new RevocationException(sb, e); + } + } + } + /* + * If all URLs failed to do CRL check, then abort the processing of the + * message. + */ + if (innerException != null) { + throw innerException; + } else { + /* + * This can happen ONLY if getURLs returned empty list of + * certificates + */ + StringBuilder sb = new StringBuilder(); + sb.append("Fault happened at CrlLookup.checkCertificate: none URL to CRL server is retrieved from certificate "); + sb.append(certificate.getSubjectX500Principal()); + throw new RevocationException("E-RSP19410: " + sb); + } + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfig.java index 6271492425eb1f25f18267de6e86df20395d9de7..eb7d0f2230370fe2f7b0e16cd4e66cbea0b5f1b2 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfig.java @@ -27,7 +27,6 @@ import dk.gov.oiosi.security.lookup.CertificateLoader; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.io.FileNotFoundException; import java.io.IOException; import java.net.URISyntaxException; import java.security.KeyStoreException; @@ -54,12 +53,6 @@ public class OcspConfig { */ private long defaultTimeoutMsec = 10000; - /** - * Default constructor that initializes the OscpConfig with default values. - */ - public OcspConfig() { - } - /** * Gets the URL of the OCSP server. * @@ -107,14 +100,14 @@ public class OcspConfig { */ public void setDefaultTimeoutMsec(long value) { if (defaultTimeoutMsec < 0) { - throw new IllegalArgumentException("Timeout value < 0 must be greater than -1."); + throw new IllegalArgumentException("E-RSP19414: Timeout value < 0 - must be 0 or positive."); } defaultTimeoutMsec = value; } public List getDefaultOcesRootCertificateCollectionFromStore() throws CertificateHandlingException { log.info("Loading root certificates from RaspConfiguration"); - List x509List = new ArrayList(); + List x509List = new ArrayList<>(); try { ConfigurationHandler configHandler = ConfigurationHandler.getInstance(); List rootCertificateKeyStoreFileList = configHandler.getRootCertificateLocationCollection(); @@ -124,16 +117,8 @@ public class OcspConfig { if (log.isInfoEnabled()) { log.info("Root certificates loaded, found count=" + x509List.size()); } - } catch (KeyStoreException e) { - throw new CertificateHandlingException(e); - } catch (NoSuchAlgorithmException e) { - throw new CertificateHandlingException(e); - } catch (CertificateException e) { - throw new CertificateHandlingException(e); - } catch (FileNotFoundException e) { - throw new CertificateHandlingException(e); - } catch (IOException e) { - throw new CertificateHandlingException(e); + } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException e) { + throw new CertificateHandlingException("E-RSP19413", e); } return x509List; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookup.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookup.java index 3fb83b9648edacbba15e80532dac4d5bd1d557ce..412072136292adc325f710c44f5d8f901ad9e1b1 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookup.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookup.java @@ -37,8 +37,20 @@ import org.bouncycastle.asn1.ASN1InputStream; import org.bouncycastle.asn1.ASN1OctetString; import org.bouncycastle.asn1.ocsp.OCSPObjectIdentifiers; import org.bouncycastle.asn1.ocsp.OCSPResponseStatus; -import org.bouncycastle.asn1.x509.*; -import org.bouncycastle.ocsp.*; +import org.bouncycastle.asn1.x509.AccessDescription; +import org.bouncycastle.asn1.x509.AuthorityInformationAccess; +import org.bouncycastle.asn1.x509.KeyPurposeId; +import org.bouncycastle.asn1.x509.X509Extensions; +import org.bouncycastle.cert.CertIOException; +import org.bouncycastle.cert.X509CertificateHolder; +import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; +import org.bouncycastle.cert.jcajce.JcaX509CertificateHolder; +import org.bouncycastle.cert.ocsp.*; +import org.bouncycastle.operator.DigestCalculator; +import org.bouncycastle.operator.DigestCalculatorProvider; +import org.bouncycastle.operator.OperatorCreationException; +import org.bouncycastle.operator.jcajce.JcaContentVerifierProviderBuilder; +import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder; import javax.security.auth.x500.X500Principal; import java.io.IOException; @@ -48,11 +60,8 @@ import java.math.BigInteger; import java.net.HttpURLConnection; import java.net.URISyntaxException; import java.net.URL; -import java.security.NoSuchProviderException; -import java.security.cert.CertificateExpiredException; -import java.security.cert.CertificateNotYetValidException; -import java.security.cert.CertificateParsingException; -import java.security.cert.X509Certificate; +import java.security.Security; +import java.security.cert.*; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -62,42 +71,37 @@ import java.util.List; * Class for checking certificate revocation status against an OCSP server. *

* http://www.nets.eu/dk-da/Service/kundeservice/nemid-tu/NemID-tjenesteudbyderpakken-okt-2014/Documents/Specifikationsdokument%20for%20OCSP.pdf - *

- * TODO DLK: A lot of code in this class uses deprecated API. We need to review it, usually it is a bad sign. */ @SuppressWarnings("deprecation") public class OcspLookup implements IRevocationLookup { - private Log log = LogFactory.getLog(OcspLookup.class); - - private OcspConfig configuration; + private final Log log = LogFactory.getLog(OcspLookup.class); /** - * Root certificate + * Root certificates. */ - private HashMap rootCertificateMap; + private final HashMap rootCertificateMap; /** * The ocsp cache */ - // Set cache time to one hour private final ICache ocspCache = CacheFactory.getInstance().getOcspLookupCache(); - + private OcspConfig configuration; private CertificateUtil certificateUtil; /** * Default constructor. Attempts to load configuration from configuration file. * - * @throws ConfigurationException On error... + * @throws ConfigurationException On error. */ public OcspLookup() throws ConfigurationException { try { configuration = ConfigurationHandler.getInstance().getOcspConfig(); } catch (URISyntaxException e) { - throw new ConfigurationException(e.getMessage()); + throw new ConfigurationException("E-RSP19443: " + e.getMessage()); } - rootCertificateMap = new HashMap(); + rootCertificateMap = new HashMap<>(); try { List list = configuration.getDefaultOcesRootCertificateCollectionFromStore(); @@ -105,7 +109,7 @@ public class OcspLookup implements IRevocationLookup { rootCertificateMap.put(rootCertificate.getIssuerDN().getName(), rootCertificate); } } catch (CertificateHandlingException e) { - log.error(e.getMessage(), e); + log.error("E-RSP19491: " + e.getMessage(), e); } certificateUtil = new CertificateUtil(); @@ -119,7 +123,7 @@ public class OcspLookup implements IRevocationLookup { public OcspLookup(OcspConfig configuration) { this.configuration = configuration; - rootCertificateMap = new HashMap(); + rootCertificateMap = new HashMap<>(); try { List list = this.configuration.getDefaultOcesRootCertificateCollectionFromStore(); @@ -127,42 +131,41 @@ public class OcspLookup implements IRevocationLookup { rootCertificateMap.put(rootCertificate.getIssuerDN().getName(), rootCertificate); } } catch (CertificateHandlingException e) { - log.error(e.getMessage(), e); + log.error("E-RSP19491: " + e.getMessage(), e); } certificateUtil = new CertificateUtil(); } /** - * Creates a new OcspLookup class + * Creates a new OcspLookup class. * * @param conf The configuration to use in this lookup * @param defaultRootCertificate The root certificate */ public OcspLookup(OcspConfig conf, X509Certificate defaultRootCertificate) { this.configuration = conf; - this.rootCertificateMap = new HashMap(); - //this.rootcertList = new ArrayList(); + this.rootCertificateMap = new HashMap<>(); this.rootCertificateMap.put(defaultRootCertificate.getIssuerDN().getName(), defaultRootCertificate); - this.certificateUtil = new CertificateUtil(); + certificateUtil = new CertificateUtil(); } /** - * Creates a new OcspLookup class + * Creates a new OcspLookup class. * * @param conf The configuration to use in this lookup * @param defaultRootCertificateList The root certificate */ - public OcspLookup(OcspConfig conf, ArrayList defaultRootCertificateList) { + public OcspLookup(OcspConfig conf, List defaultRootCertificateList) { this.configuration = conf; - rootCertificateMap = new HashMap(); + rootCertificateMap = new HashMap<>(); for (X509Certificate rootCertificate : defaultRootCertificateList) { rootCertificateMap.put(rootCertificate.getIssuerDN().getName(), rootCertificate); } - this.certificateUtil = new CertificateUtil(); + certificateUtil = new CertificateUtil(); } @@ -176,13 +179,13 @@ public class OcspLookup implements IRevocationLookup { } /** - * Checks a certificate status on a ocsp server. + * Checks the certificate status on a OCSP server. * - * @param certificate The certificate to check - * @return The RevocationResponse object that contains the result + * @param certificate The certificate to check. + * @return The RevocationResponse object that contains the result. */ public RevocationResponse checkCertificate(X509Certificate certificate) throws RevocationException { - OutVariable value = new OutVariable(); + OutVariable value = new OutVariable<>(); RevocationResponse revocationResponse; if (ocspCache.tryGetValue(certificate.getSubjectX500Principal(), value)) { // response already in cache. @@ -190,7 +193,7 @@ public class OcspLookup implements IRevocationLookup { Date now = new Date(); revocationResponse = value.getVariable(); if (revocationResponse.getNextUpdate().before(now)) { - // the cached value is to old, get new value + // the cached value is to old, get new value: revocationResponse = revocationResponse(certificate); // the cached value is to old @@ -209,11 +212,6 @@ public class OcspLookup implements IRevocationLookup { } else { // response is not in cache revocationResponse = revocationResponse(certificate); - /*if(revocationResponse != null) - { - // put revocationResponse in cache - ocspCache.set(certificate.getSubjectX500Principal(), revocationResponse); - } */ } return revocationResponse; @@ -227,7 +225,7 @@ public class OcspLookup implements IRevocationLookup { public RevocationResponse revocationResponse(X509Certificate certificate) throws RevocationException { // this method can be call recursive, so check the cache first RevocationResponse revocationResponse; - OutVariable value = new OutVariable(); + OutVariable value = new OutVariable<>(); if (ocspCache.tryGetValue(certificate.getSubjectX500Principal(), value)) { // response already in cache. @@ -247,37 +245,36 @@ public class OcspLookup implements IRevocationLookup { } /** - * Checks a certificate status on a ocsp server + * Checks the certificate status on a OCSP server. * * @param x509Certificate - The certificate to check. - * @return The RevocationResponse object that contains the result - * @throws RevocationException On error... + * @return The RevocationResponse object that contains the result. + * @throws RevocationException On error. */ public RevocationResponse revocationResponseOnline(X509Certificate x509Certificate) throws RevocationException { - // The response was not in the cache - we must validate the certificate our self + // The response was not in the cache - we must validate the certificate online. if (x509Certificate == null) { - throw new RevocationException("Certificate is null"); + throw new RevocationException("E-RSP19421: Certificate object is null"); } X509Certificate issuerX509Certificate = findIssuerCertificate(x509Certificate); - if (issuerX509Certificate == null) { - throw new RevocationException("Certificate '" + x509Certificate.getSubjectX500Principal() + "' is not trusted, as issuer could not be identified"); + throw new RevocationException("E-RSP19422: Certificate '" + x509Certificate.getSubjectX500Principal() + "' is not trusted, as issuer could not be identified"); } RevocationResponse revocationResponse; - // Is the certificate that we are about to verify, the root certificate itself? - if (x509Certificate.getIssuerDN().getName().equals(issuerX509Certificate.getSubjectX500Principal().getName())) { - throw new RevocationException("Certificate not trusted, as the certificate is self-signed"); + // Is the certificate that we are verifying, the root certificate itself? + if (x509Certificate.getSerialNumber().equals(issuerX509Certificate.getSerialNumber())) { + throw new RevocationException("E-RSP19442: Certificate not trusted, as the certificate is self-signed"); } else { revocationResponse = revocationResponseOnline(x509Certificate, issuerX509Certificate); if (revocationResponse != null && revocationResponse.isValid()) { - // Now we know the certificate is valid. - // If the issuer is a trusted root certificate, all is good - if (this.rootCertificateMap.containsKey(issuerX509Certificate.getIssuerDN().getName())) { - // the root certificate is trusted, so the RevocationResponse can be put on the cache + // Now we know the certificate is OCSP valid. + // If the issuer is a trusted root certificate, all is good: + if (rootCertificateMap.containsKey(issuerX509Certificate.getIssuerDN().getName())) { + // the root certificate is trusted, so the RevocationResponse can be put on the cache: ocspCache.add(x509Certificate.getSubjectX500Principal(), revocationResponse); } else { // we do not yet know if the certificate is valid. @@ -291,33 +288,32 @@ public class OcspLookup implements IRevocationLookup { // Note : The crl list will be/should be very short. Only containing the issuer certificate that has been revoked. // A good guess is that there at all time will be most 10 issuer certificate, so the list of revoked issuer certificate is short. - List issuerUrlList = getAuthorityInformationAccessOcspUrl(issuerX509Certificate); + List issuerUrlList = getAuthorityInformationAccessOcspUrls(issuerX509Certificate); RevocationResponse issuerRevocationResponse; - if (issuerUrlList.size() > 0) { - // hey, wow some url exist - lets use that - // don't thing this will ever happens anyway - issuerRevocationResponse = this.revocationResponse(issuerX509Certificate); - } else { + if (issuerUrlList.isEmpty()) { // we need to validate with crl instead // It does not contain the Authority Info Access, containing the rl to where the certificate must be validated // We must therefore guess, that the certificate is valid. CrlLookup crlLookupClient = new CrlLookup(); issuerRevocationResponse = crlLookupClient.checkCertificate(issuerX509Certificate); + } else { + // hey, wow some url exist - lets use that + // don't thing this will ever happens anyway + issuerRevocationResponse = revocationResponse(issuerX509Certificate); } // now to handle the issuerRevocationResponse if (issuerRevocationResponse == null) { revocationResponse.setIsValid(false); - //revocationResponse.Exception = new CheckCertificateOcspUnexpectedException("The issuing certificate could not be validated."); } else { // the issuer certificate is validated, the validity of the issuer certificate // is copied to the revocationResponse revocationResponse.setIsValid(issuerRevocationResponse.isValid()); } - // update the cache - this.ocspCache.add(x509Certificate.getSubjectX500Principal(), revocationResponse); + // Update the local cache: + ocspCache.add(x509Certificate.getSubjectX500Principal(), revocationResponse); } } else { // the certificate is Not valid @@ -330,85 +326,71 @@ public class OcspLookup implements IRevocationLookup { } /** - * @param x509Certificate The certificate to verify. + * @param certificateToValidate The certificate to validate. * @param issuerX509Certificate Issuer certificate of x509Certificate. */ - private RevocationResponse revocationResponseOnline(X509Certificate x509Certificate, X509Certificate issuerX509Certificate) throws RevocationException { - if (x509Certificate == null) { - throw new RevocationException("Certificate to verify is null"); + private RevocationResponse revocationResponseOnline(X509Certificate certificateToValidate, X509Certificate issuerX509Certificate) throws RevocationException { + if (certificateToValidate == null) { + throw new RevocationException("E-RSP19421: certificateToValidate certificate is null"); } - - RevocationResponse revocationResponse; - try { - // create BouncyCastle certificates - //X509CertificateParser certParser = new X509CertificateParser(); - //Org.BouncyCastle.X509.X509Certificate serverX509Certificate = certParser.ReadCertificate(serverX509Certificate2.RawData); - - // 1. Get server url - List urlList = getAuthorityInformationAccessOcspUrl(x509Certificate); - if (urlList.isEmpty()) { - throw new RevocationException("No OCSP url found in certificate: " + x509Certificate.getSubjectDN().getName()); - } - - // we always validate against the first defined url - String url = urlList.get(0); - - revocationResponse = revocationResponseOnline(x509Certificate, issuerX509Certificate, url); - } catch (OCSPException e) { - log.warn(e.getMessage(), e); - throw new RevocationException(e); + if (issuerX509Certificate == null) { + throw new RevocationException("E-RSP19422: Issuer certificate for server certificate not identified"); } - - return revocationResponse; - } - - public RevocationResponse revocationResponseOnline(X509Certificate serverX509Certificate, X509Certificate issuerX509Certificate, String url) throws RevocationException, OCSPException { if (log.isDebugEnabled()) { - log.debug("Online OCSP call for [" + serverX509Certificate.getSubjectDN() + "] to url=" + url); - } - if (serverX509Certificate == null) { - throw new RevocationException("Server certificate is null"); + log.debug("Prepare online OCSP call for [" + certificateToValidate.getSubjectDN() + "]"); } - if (issuerX509Certificate == null) { - throw new RevocationException("Issuer certificate for server certificate not identified"); + List ocspUrlList = getAuthorityInformationAccessOcspUrls(certificateToValidate); + if (ocspUrlList.isEmpty()) { + throw new RevocationException("E-RSP19423: No OCSP url found in certificate: " + certificateToValidate.getSubjectDN().getName()); } RevocationResponse revocationResponse; + OCSPResp ocspResp = null; try { // 1. Generate request - OCSPReq req = generateOcspRequest(issuerX509Certificate, serverX509Certificate.getSerialNumber()); + OCSPReq req = generateOcspRequest(issuerX509Certificate, certificateToValidate.getSerialNumber()); - // 2. make binary request online - byte[] binaryResp = postData(req, url); + for (String url : ocspUrlList) { + // 2. make binary request online + ocspResp = getOnlineBinaryHttpResponse(req, url); + if (ocspResp != null) { + break; + } + } + if (ocspResp == null) { + return null; + } // 3. Make result object. - revocationResponse = processOcspResponse(serverX509Certificate, binaryResp); - } catch (NoSuchProviderException e) { - log.error(e.getMessage(), e); - throw new RevocationException(e); - } catch (IOException e) { - log.error(e.getMessage(), e); - throw new RevocationException(e); + revocationResponse = processOcspResponse(certificateToValidate, ocspResp); + return revocationResponse; + } catch (OperatorCreationException | CertificateException | OCSPException e) { + log.error("E-RSP19492: " + e.getMessage(), e); + throw new RevocationException("E-RSP19431: " + e.getMessage(), e); } - - return revocationResponse; } - private OCSPReq generateOcspRequest(X509Certificate rootX509Certificate, BigInteger serialNumber) throws OCSPException { - CertificateID certificateID = new CertificateID(CertificateID.HASH_SHA1, rootX509Certificate, serialNumber); - return this.generateOcspRequest(certificateID); + + OCSPReq generateOcspRequest(X509Certificate rootX509Certificate, BigInteger serialNumber) throws OCSPException, CertificateEncodingException, OperatorCreationException { + //Add provider BC + Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); + + JcaDigestCalculatorProviderBuilder digestCalculatorProviderBuilder = new JcaDigestCalculatorProviderBuilder(); + DigestCalculatorProvider digestCalculatorProvider = digestCalculatorProviderBuilder.build(); + DigestCalculator digestCalculator = digestCalculatorProvider.get(CertificateID.HASH_SHA1); + CertificateID certificateID = new CertificateID(digestCalculator, new JcaX509CertificateHolder(rootX509Certificate), serialNumber); + return generateOcspRequest(certificateID); } private OCSPReq generateOcspRequest(CertificateID id) throws OCSPException { - OCSPReqGenerator ocspRequestGenerator = new OCSPReqGenerator(); + OCSPReqBuilder ocspRequestGenerator = new OCSPReqBuilder(); ocspRequestGenerator.addRequest(id); - return ocspRequestGenerator.generate(); + return ocspRequestGenerator.build(); } - private RevocationResponse processOcspResponse(X509Certificate serverX509Certificate, byte[] binaryResp) throws IOException, OCSPException, RevocationException, NoSuchProviderException { - OCSPResp ocspResponse = new OCSPResp(binaryResp); + private RevocationResponse processOcspResponse(X509Certificate serverX509Certificate, OCSPResp ocspResponse) throws OCSPException, RevocationException, CertificateException, OperatorCreationException { RevocationResponse revocationResponse = new RevocationResponse(); switch (ocspResponse.getStatus()) { @@ -416,70 +398,55 @@ public class OcspLookup implements IRevocationLookup { Object responseObject = ocspResponse.getResponseObject(); if (!(responseObject instanceof BasicOCSPResp)) { - throw new IllegalStateException("OCSP response is of unexpected type"); + throw new IllegalStateException("E-RSP19444: OCSP response is of unexpected type: " + responseObject.getClass().getName()); } BasicOCSPResp basicResp = (BasicOCSPResp) responseObject; - /* check condition: - The certificate identified in a received response corresponds to - that which was identified in the corresponding request; - */ SingleResp[] responses = basicResp.getResponses(); if (responses.length != 1) { - throw new IllegalStateException("unexpected number of responses received"); + throw new IllegalStateException("E-RSP19445: Unexpected number of responses received"); } SingleResp singleResp = responses[0]; if (!serverX509Certificate.getSerialNumber().equals(singleResp.getCertID().getSerialNumber())) { - throw new RevocationException("Serial number mismatch problem"); + throw new RevocationException("E-RSP19446: Serial number mismatch problem"); } - X509Certificate ocspCertificate = this.findOcspClientCertificate(basicResp.getCerts("BC")); - - /* check condition - The signature on the response is valid; - The chain is validated other check - */ - //if(!this.verifyOcspCertificateChain(certificate, ocspCertificate)) { - // throw new IllegalStateException("Certificate used to sign OCSP Response could not be verified"); - //} + X509Certificate ocspCertificate = findOcspClientCertificate(basicResp.getCerts()); /* check the signature on the ocsp response */ - if (!basicResp.verify(ocspCertificate.getPublicKey(), "BC")) { - throw new RevocationException("signature validation failed for ocsp response"); + if (!basicResp.isSignatureValid(new JcaContentVerifierProviderBuilder().setProvider("BC").build(ocspCertificate.getPublicKey()))) { + throw new RevocationException("E-RSP19447: Signature validation failed for ocsp response"); } if (!canSignOcspResponses(ocspCertificate)) { - throw new RevocationException("ocsp signing certificate has not been cleared for ocsp response signing"); + throw new RevocationException("E-RSP19448: OCSP signing certificate has not been cleared for ocsp response signing"); } - /* check expiry of the signing certificate */ + // Check expiry of the parent/signing certificate: if (!certificateValid(ocspCertificate)) { - throw new IllegalStateException("ocsp signing certificate is not valid"); + throw new IllegalStateException("E-RSP19449: OCSP issuing/signing certificate is not valid"); } - Object certStatus = singleResp.getCertStatus(); + CertificateStatus certStatus = singleResp.getCertStatus(); + + // Now to validate the actual revocation status: + if (certStatus == null || certStatus.equals(CertificateStatus.GOOD)) { + // certStatus == null: According to org.openoces.ooapi.utils.ocsp.ResponseParser.cs (DanID test code) + // in the TU11, method SerialNumberInResponseIsNotRevoked(..), when the certificateStatus is empty, + // all is okay - not revoked no revocation data exist - the certificate must be valid. + + // CertificateStatus.GOOD: This is the expected certificateStatus for valid certificates however if the status is good the certStatus is null - // Now to validate the actual revocation status - if (certStatus == null) { - // according to org.openoces.ooapi.utils.ocsp.ResponseParser.cs (DanID test code) - // in the TU11, method SerialNumberInResponseIsNotRevoked(..), - // when the certificateStatus is empty, all is okay - not revoked - // no revocation data exist - the certificate must be valid - revocationResponse.setIsValid(true); - revocationResponse.setNextUpdate(singleResp.getNextUpdate()); - } else if (certStatus.equals(CertificateStatus.GOOD)) { - // this is the expected certificateStatus for valid certificates - // however if the status is good the certStatus is null revocationResponse.setIsValid(true); revocationResponse.setNextUpdate(singleResp.getNextUpdate()); - } else if (certStatus instanceof org.bouncycastle.ocsp.RevokedStatus) { + } else if (certStatus instanceof org.bouncycastle.cert.ocsp.RevokedStatus) { revocationResponse.setIsValid(false); revocationResponse.setNextUpdate(singleResp.getNextUpdate()); - } else if (certStatus instanceof org.bouncycastle.ocsp.UnknownStatus) { - throw new RevocationException("ocsp response indicates unknown certificate status"); + } else if (certStatus instanceof org.bouncycastle.cert.ocsp.UnknownStatus) { + throw new RevocationException("E-RSP19438: OCSP response indicates unknown certificate status"); } else { - throw new RevocationException("unknown status"); + throw new RevocationException("E-RSP19438: Unknown OCSP status"); } break; @@ -491,35 +458,43 @@ public class OcspLookup implements IRevocationLookup { case OCSPResponseStatus.TRY_LATER: case OCSPResponseStatus.UNAUTHORIZED: default: { - log.warn("OCSPResponse has Status error=" + ocspResponse.getStatus()); - // all other then success is. -// new RevocationException("OCSPResponseStatus not valid!"); + log.warn("W-RSP19493: OCSPResponse has Status error=" + ocspResponse.getStatus()); } } return revocationResponse; } - private byte[] postData(OCSPReq req, String url) throws RevocationException { + OCSPResp getOnlineBinaryHttpResponse(OCSPReq req, String url) throws RevocationException { + //This list will sometimes have non ocsp urls as well. try { HttpURLConnection conn = postRequest(req.getEncoded(), url); if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) { - log.error("HTTP response code from OCSP request to [" + url + "] was: " + conn.getResponseCode()); - throw new RevocationException("HTTP response code from OCSP request to [" + url + "] was: " + conn.getResponseCode()); + log.error("E-RSP19494: HTTP response code from OCSP request to [" + url + "] was: " + conn.getResponseCode()); + throw new RevocationException("E-RSP19450: HTTP response code from OCSP request to [" + url + "] was: " + conn.getResponseCode()); } - int len = conn.getContentLength(); - - return readResponse(conn, len); +// int len = conn.getContentLength(); + + InputStream is = (InputStream) conn.getContent(); +// byte[] bytes = readResponse(conn, len); +// String string = content.toString(); +// OCSPResponse ocspResponse =OCSPResponse.getInstance(readResponse(conn, len)); +// return new OCSPResp(ocspResponse); + return new OCSPResp(is); + } catch (CertIOException e) { + // Special case where the response from the URL is not parsable by OCSPResp + log.debug("Error parsing HttpResponse from url=" + url + ": " + e.getMessage(), e); + return null; } catch (IOException e) { - log.error("Error doing OCSP lookup by url=" + url + ": " + e.getMessage(), e); - throw new RevocationException(e); + log.error("E-RSP19495: Error doing OCSP lookup by url=" + url + ": " + e.getMessage(), e); + throw new RevocationException("E-RSP19420", e); } } private HttpURLConnection postRequest(byte[] bs, String responderURL) throws IOException { - HttpURLConnection conn = this.setupHttpConnectionForPost(bs.length, responderURL); + HttpURLConnection conn = setupHttpConnectionForPost(bs.length, responderURL); OutputStream os = conn.getOutputStream(); os.write(bs); conn.connect(); @@ -528,8 +503,7 @@ public class OcspLookup implements IRevocationLookup { } private HttpURLConnection setupHttpConnectionForPost(int contentLength, String responderURL) throws IOException { - HttpURLConnection conn; - conn = (HttpURLConnection) new URL(responderURL).openConnection(); + HttpURLConnection conn = (HttpURLConnection) new URL(responderURL).openConnection(); conn.setAllowUserInteraction(false); conn.setDoInput(true); conn.setDoOutput(true); @@ -537,40 +511,27 @@ public class OcspLookup implements IRevocationLookup { conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Length", "" + contentLength); conn.setRequestProperty("Content-Type", "application/ocsp-request"); + conn.setRequestProperty("Accept", "application/ocsp-response"); return conn; } - private byte[] readResponse(HttpURLConnection conn, int len) throws IOException { - InputStream is = conn.getInputStream(); - byte[] respData = new byte[len]; - int bRead = 0; - - do { - bRead += is.read(respData, bRead, Math.min(1024, len - bRead)); - } while (bRead != len); - - is.close(); - conn.disconnect(); - return respData; - } - public X509Certificate findIssuerCertificate(X509Certificate certificate) { // tree possibilities - // 1 - A root certificate - exist in root list - // 2 - A root certificate not trusted - not in list - // 3 - Issuer certificate, can can be downloaded + // 1: A root certificate - exist in root list. + // 2: A root certificate not trusted/not in list. + // 3: Issuer certificate, can be downloaded. X509Certificate issuerCertificate; String key = certificate.getIssuerDN().getName(); - if (this.rootCertificateMap.containsKey(key)) { + if (rootCertificateMap.containsKey(key)) { // root certificate is in the trusted key store (possibility 1) - issuerCertificate = this.rootCertificateMap.get(key); + issuerCertificate = rootCertificateMap.get(key); } else { - // So down to possibility 2 or 3 - // 2 - A root certificate not trusted - not in list - // 3 - Issuer certificate, can can be downloaded + // Down to possibility 2 or 3: + // 2: A root certificate not trusted/not in list. + // 3: Issuer certificate, can can be downloaded // So we will try to download the certificate - issuerCertificate = this.certificateUtil.downloadIssuerCert(certificate); + issuerCertificate = certificateUtil.downloadIssuerCert(certificate); // if ( issuerCertificate== null){ // The issuer certificate is a root certificate , but not trusted (oces1) @@ -585,32 +546,32 @@ public class OcspLookup implements IRevocationLookup { } - public String GetServerUriFromCertificate(X509Certificate certificate) throws RevocationException { + public String getServerUriFromCertificate(X509Certificate certificate) throws RevocationException { // not optimal implementation - could be improved - look at danIds OOAPI TU11 ASN1InputStream aIn = null; try { byte[] ext = certificate.getExtensionValue(X509Extensions.AuthorityInfoAccess.getId()); aIn = new ASN1InputStream(ext); aIn = new ASN1InputStream(((ASN1OctetString) aIn.readObject()).getOctets()); - ASN1Encodable object = (ASN1Encodable) aIn.readObject(); + ASN1Encodable object = aIn.readObject(); AuthorityInformationAccess auth = AuthorityInformationAccess.getInstance(object); AccessDescription[] acc = auth.getAccessDescriptions(); return acc[0].getAccessLocation().toString().substring(3); } catch (IOException e) { - throw new RevocationException(e); + throw new RevocationException("E-RSP19420", e); } finally { if (aIn != null) { try { aIn.close(); } catch (IOException e) { - log.warn("Error closing stream: " + e.getMessage(), e); + log.warn("W-RSP19496: Error closing stream: " + e.getMessage(), e); } } } } - public List getAuthorityInformationAccessOcspUrl(X509Certificate x509Certificate) { - List ocspUrls = new ArrayList(); + public List getAuthorityInformationAccessOcspUrls(X509Certificate x509Certificate) { + List ocspUrlList = new ArrayList<>(); ASN1InputStream extensionAns1InputStream = null; ASN1InputStream octetAns1InputStream = null; @@ -623,35 +584,36 @@ public class OcspLookup implements IRevocationLookup { ASN1Encodable ans1Encodable = octetAns1InputStream.readObject(); AuthorityInformationAccess auth = AuthorityInformationAccess.getInstance(ans1Encodable); AccessDescription[] accessDescriptionArray = auth.getAccessDescriptions(); - GeneralName generalName; String url; - for (AccessDescription anAccessDescriptionArray : accessDescriptionArray) { - generalName = anAccessDescriptionArray.getAccessLocation(); - url = generalName.toString(); - if (url.length() > 3) { - ocspUrls.add(url.substring(3)); + for (AccessDescription accessDescription : accessDescriptionArray) { + // OID-code for OCSP: http://oid-info.com/get/1.3.6.1.5.5.7.48.1 + if (accessDescription.getAccessMethod().getId().equals("1.3.6.1.5.5.7.48.1")) { + url = accessDescription.getAccessLocation().toString(); + if (url.length() > 3) { + ocspUrlList.add(url.substring(3)); + } } } } catch (IOException e) { - log.warn(e.getMessage(), e); + log.warn("W-RSP19497: " + e.getMessage(), e); } finally { if (extensionAns1InputStream != null) { try { extensionAns1InputStream.close(); } catch (IOException e) { - log.warn("Error closing stream: " + e.getMessage(), e); + log.warn("W-RSP19498: Error closing stream: " + e.getMessage(), e); } } if (octetAns1InputStream != null) { try { octetAns1InputStream.close(); } catch (IOException e) { - log.warn("Error closing stream: " + e.getMessage(), e); + log.warn("W-RSP19499: Error closing stream: " + e.getMessage(), e); } } } - return ocspUrls; + return ocspUrlList; } @@ -659,9 +621,7 @@ public class OcspLookup implements IRevocationLookup { try { ocspCertificate.checkValidity(); return true; - } catch (CertificateExpiredException e) { - return false; - } catch (CertificateNotYetValidException e) { + } catch (CertificateExpiredException | CertificateNotYetValidException e) { return false; } } @@ -670,23 +630,20 @@ public class OcspLookup implements IRevocationLookup { try { return ocspCertificate.getExtendedKeyUsage().contains(KeyPurposeId.id_kp_OCSPSigning.getId()); } catch (CertificateParsingException e) { - throw new RuntimeException("ocsp signing certificate has not been cleared for ocsp response signing"); + throw new IllegalStateException("ocsp signing certificate has not been cleared for ocsp response signing: " + e.getMessage(), e); } } - private X509Certificate findOcspClientCertificate(X509Certificate[] certs) { - int KeyUsageDigitalSignature = 0; - X509Certificate ocspCert = null; - for (X509Certificate certificate : certs) { + private X509Certificate findOcspClientCertificate(X509CertificateHolder[] certs) throws CertificateException { + int keyUsageDigitalSignature = 0; + for (X509CertificateHolder certificateHolder : certs) { + X509Certificate certificate = new JcaX509CertificateConverter().setProvider("BC").getCertificate(certificateHolder); boolean[] keyUsage = certificate.getKeyUsage(); - if (keyUsage != null && keyUsage[KeyUsageDigitalSignature] && null != certificate.getExtensionValue(OCSPObjectIdentifiers.id_pkix_ocsp_nocheck.getId())) { - ocspCert = certificate; + if (keyUsage != null && keyUsage[keyUsageDigitalSignature] && null != certificate.getExtensionValue(OCSPObjectIdentifiers.id_pkix_ocsp_nocheck.getId())) { + return certificate; } } - if (ocspCert == null) { - throw new RuntimeException("Could not find valid OCSP certificate"); - } - return ocspCert; + throw new IllegalStateException("Could not find valid OCSP certificate"); } /** @@ -697,4 +654,4 @@ public class OcspLookup implements IRevocationLookup { public RevocationSourceType getRevocationSourceType() { return RevocationSourceType.OCSP; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/X509CertificateFactory.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/X509CertificateFactory.java index cde21340922ddb05f69b0e1a2172be887f50c115..219823db3c0efb337f6ae8c00c5e21497c40b254 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/X509CertificateFactory.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/revocation/ocsp/X509CertificateFactory.java @@ -43,7 +43,7 @@ public class X509CertificateFactory { try { certificateFactory = CertificateFactory.getInstance("X509"); } catch (CertificateException e) { - throw new IllegalStateException(e); + throw new IllegalStateException("E-RSP19417", e); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateExpiredException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateExpiredException.java index 3189615484e4847e5f5496a652f1df4e93edf330..d441e60352364c31c66006ee011772100f372ac6 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateExpiredException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateExpiredException.java @@ -36,7 +36,7 @@ public class CertificateExpiredException extends CertificateValidationException * * @param expireDate the date the certificate expired */ - public CertificateExpiredException(final Date expireDate, String subject) { - super("Certificate [" + subject + "] expired on: " + String.valueOf(expireDate)); + public CertificateExpiredException(final Date expireDate, String subject, String errorCode) { + super(errorCode + ": Certificate [" + subject + "] expired on: " + String.valueOf(expireDate)); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateNotActiveException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateNotActiveException.java index 7a20f2d734ad8f35277c2006043bc2e0950c511a..b46ef1f43d062ef5b3fa05452d4017157106cb4d 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateNotActiveException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateNotActiveException.java @@ -36,7 +36,7 @@ public class CertificateNotActiveException extends CertificateValidationExceptio * * @param activeDate the date the certificate was activated */ - public CertificateNotActiveException(final Date activeDate, String subject) { - super("Certificate [" + subject + "] is active from: " + String.valueOf(activeDate)); + public CertificateNotActiveException(final Date activeDate, String subject, String errorCode) { + super(errorCode + ": Certificate [" + subject + "] is active from: " + String.valueOf(activeDate)); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateValidator.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateValidator.java index 6f23c7a58cbcb73f641a282725e0ee27d307ef22..bf2c72746aabe9ef4b3625012bad1fd8fc64b0f5 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateValidator.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/security/validation/CertificateValidator.java @@ -64,7 +64,7 @@ public class CertificateValidator { if (log.isDebugEnabled()) { log.debug("Certificate [" + certificate.getSubjectDN().getName() + "] is not active now [" + new Date() + "]"); } - throw new CertificateNotActiveException(certificate.getNotBefore(), certificate.getSubjectDN().getName()); + throw new CertificateNotActiveException(certificate.getNotBefore(), certificate.getSubjectDN().getName(), "E-RSP19505"); } } @@ -76,7 +76,7 @@ public class CertificateValidator { */ public static void checkCertificateExpired(X509Certificate certificate) throws CertificateExpiredException { if (certificate.getNotAfter().before(new Date())) { - throw new CertificateExpiredException(certificate.getNotAfter(), certificate.getSubjectDN().getName()); + throw new CertificateExpiredException(certificate.getNotAfter(), certificate.getSubjectDN().getName(), "E-RSP19506"); } } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupParameters.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupParameters.java index 25380d459a976452611f7b3587baf40e4c79a6cb..844b1aee15d09d2f2cddb0847c40cb764a00320a 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupParameters.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupParameters.java @@ -73,7 +73,7 @@ public class LookupParameters { */ public LookupParameters(final Identifier identifier) { if (identifier == null) { - throw new ArgumentNullException("identifier"); + throw new ArgumentNullException("identifier", "E-RSP16001"); } this.identifier = identifier; @@ -107,7 +107,7 @@ public class LookupParameters { this(identifier); if (serviceId == null) { - throw new ArgumentNullException("serviceId"); + throw new ArgumentNullException("serviceId", "E-RSP16002"); } this.serviceId = serviceId; } @@ -125,7 +125,7 @@ public class LookupParameters { this(identifier, acceptedTransportProtocols); if (serviceId == null) { - throw new ArgumentNullException("serviceId"); + throw new ArgumentNullException("serviceId", "E-RSP16002"); } this.serviceId = serviceId; } @@ -143,19 +143,19 @@ public class LookupParameters { this(identifier, acceptedTransportProtocols); if (serviceId == null) { - throw new ArgumentNullException("serviceId"); + throw new ArgumentNullException("serviceId", "E-RSP16002"); } if (profileIds == null) { - throw new ArgumentNullException("profileIds"); + throw new ArgumentNullException("profileIds", "E-RSP16003"); } if (profileRoleIdentifier == null) { - throw new ArgumentNullException("profileRoleIdentifier"); + throw new ArgumentNullException("profileRoleIdentifier", "E-RSP16005"); } - if (profileIds.size() == 0) { - throw new IllegalArgumentException("profileIds must contain at least one item"); + if (profileIds.isEmpty()){ + throw new IllegalArgumentException("E-RSP16006: profileIds must contain at least one item"); } if (profileConformanceClaim == null) { - throw new ArgumentNullException("profileConformanceClaim"); + throw new ArgumentNullException("profileConformanceClaim", "E-RSP16007"); } this.serviceId = serviceId; @@ -175,16 +175,16 @@ public class LookupParameters { this(identifier, acceptedTransportProtocols); if (serviceId == null) { - throw new ArgumentNullException("serviceId"); + throw new ArgumentNullException("serviceId", "E-RSP16002"); } if (profileIds == null) { - throw new ArgumentNullException("profileIds"); + throw new ArgumentNullException("profileIds", "E-RSP16003"); } if (profileRoleIdentifier == null) { - throw new ArgumentNullException("profileRoleIdentifier"); + throw new ArgumentNullException("profileRoleIdentifier", "E-RSP16005"); } - if (profileIds.size() == 0) { - throw new IllegalArgumentException("profileIds must contain at least one item"); + if (profileIds.isEmpty()) { + throw new IllegalArgumentException("E-RSP16006: profileIds must contain at least one item"); } this.serviceId = serviceId; @@ -202,10 +202,10 @@ public class LookupParameters { this(identifier, acceptedTransportProtocols); if (serviceId == null) { - throw new ArgumentNullException("serviceId"); + throw new ArgumentNullException("serviceId", "E-RSP16002"); } if (profileConformanceClaim == null) { - throw new ArgumentNullException("profileConformanceClaim"); + throw new ArgumentNullException("profileConformanceClaim", "E-RSP16007"); } this.serviceId = serviceId; @@ -227,13 +227,13 @@ public class LookupParameters { this(identifier, acceptedTransportProtocols); if (serviceId == null) { - throw new ArgumentNullException("serviceId"); + throw new ArgumentNullException("serviceId", "E-RSP16002"); } if (profileIds == null) { - throw new ArgumentNullException("profileIds"); + throw new ArgumentNullException("profileIds", "E-RSP16003"); } - if (profileIds.size() == 0) { - throw new IllegalArgumentException("profileIds must contain at least one item"); + if (profileIds.isEmpty()) { + throw new IllegalArgumentException("E-RSP16006: profileIds must contain at least one item"); } this.serviceId = serviceId; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupRegistryFallbackConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupRegistryFallbackConfig.java index 28c6d7c13690abc8b0435ef2206b0860dcae2738..2480cb36583f8874acfc5258bf60773bc62b44d8 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupRegistryFallbackConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/LookupRegistryFallbackConfig.java @@ -13,49 +13,52 @@ * The Original Code is Java RASP toolkit. * * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and + * created by Lenio are Copyright (C) 2007 Danish National IT and * Telecom Agency (http://www.itst.dk). All Rights Reserved. */ package dk.gov.oiosi.uddi; import java.util.ArrayList; -import java.util.Collection; +import java.util.List; /** * Configuration section for the lookup registry fallback mechanism. - * @author dennis.soegaard * + * @author dennis.soegaard */ public class LookupRegistryFallbackConfig { - private Collection _registries = new ArrayList(); + + private List _registries = new ArrayList<>(); /** * Default constructor */ - public LookupRegistryFallbackConfig() { } - + public LookupRegistryFallbackConfig() { + } + /** - * Constructor that takes the given registries. - * @param registries + * Constructor that takes the given List of registries. */ - public LookupRegistryFallbackConfig(Collection registries) { - setRegistries(registries); + public LookupRegistryFallbackConfig(List registryList) { + setRegistries(registryList); } - + /** * Gets the registries + * * @return a collection of registries */ - public Collection getRegistries() { - return _registries; + public List getRegistries() { + return _registries; } - + /** * Sets the registries - * @param registries the registries that should be initiated + * + * @param registries the registries that should be initiated. */ - public void setRegistries(Collection registries) { - _registries = registries; + public void setRegistries(List registries) { + _registries = registries; } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/ProcessRoleDefinition.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/ProcessRoleDefinition.java index 28e1738ff47b7c66d8161c9e9d35530b69e29990..72d2b66b89d3d339d61ade2ba6d03ad352e3099d 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/ProcessRoleDefinition.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/ProcessRoleDefinition.java @@ -39,11 +39,11 @@ public class ProcessRoleDefinition { * Constructor that takes the given parameters. */ public ProcessRoleDefinition(String name, String description, String role, String roleType, UddiId processDefinitionId) { - if (name == null || name.isEmpty()) throw new NullOrEmptyArgumentException("name"); - if (description == null) throw new ArgumentNullException("description"); - if (role == null) throw new ArgumentNullException("role"); - if (roleType == null) throw new ArgumentNullException("roleType"); - if (processDefinitionId == null) throw new ArgumentNullException("processDefinitionId"); + if (name == null || name.isEmpty()) throw new NullOrEmptyArgumentException("E-RSP16011: name is null or empty"); + if (description == null) throw new ArgumentNullException("description", "E-RSP16012"); + if (role == null) throw new ArgumentNullException("role", "E-RSP16013"); + if (roleType == null) throw new ArgumentNullException("roleType", "E-RSP16014"); + if (processDefinitionId == null) throw new ArgumentNullException("processDefinitionId", "E-RSP16015"); _name = name; _description = description; _role = role; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/Registry.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/Registry.java index f346dbf8c5acdf239763896bb102365e00e927a0..cacdbd76248ea1918bf41930c9c3b2009edaa32c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/Registry.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/Registry.java @@ -13,69 +13,92 @@ * The Original Code is Java RASP toolkit. * * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and + * created by Lenio are Copyright (C) 2007 Danish National IT and * Telecom Agency (http://www.itst.dk). All Rights Reserved. */ package dk.gov.oiosi.uddi; +import dk.gov.oiosi.communication.Uri; +import dk.gov.oiosi.exception.ArgumentNullException; + import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collection; -import dk.gov.oiosi.communication.Uri; -import dk.gov.oiosi.exception.ArgumentNullException; - /** - * Contains information about a specific registry. A registry can - * contain multiple endpoints which serves as fallbacks. + * Contains information about a specific registry. A registry can + * contain multiple endpoints which serves as fallbacks. + * * @author dennis.soegaard */ public class Registry { - private Collection _endpoints = new ArrayList(); + + private Collection _endpoints = new ArrayList<>(); + private int uddiLookupTimeoutSeconds = 120; /** - * Default constructor + * Default constructor. */ - public Registry(){} - + public Registry() { + } + /** * Constructor that takes an array of endpoints. - * @param endpoints An array of access points to this registry - * @throws URISyntaxException + * + * @param endpoints An array of access points to this registry. */ - public Registry(String[] endpoints) throws URISyntaxException { - if (endpoints == null) throw new ArgumentNullException("endpoints"); - for (String endpoint : endpoints) { - _endpoints.add(new Uri(endpoint)); - } + public Registry(String[] endpoints, int uddiLookupTimeoutSeconds) throws URISyntaxException { + if (endpoints == null) { + throw new ArgumentNullException("endpoints", "E-RSP16020"); + } + for (String endpoint : endpoints) { + _endpoints.add(new Uri(endpoint)); + } + if (uddiLookupTimeoutSeconds > 0) { + this.uddiLookupTimeoutSeconds = uddiLookupTimeoutSeconds; + } } - + /** * Constructor that takes a list of endpoints. - * @param endpoints A list of access points to this registry + * + * @param endpoints A list of access points to this registry. */ public Registry(Collection endpoints) { - if (endpoints == null) throw new ArgumentNullException("endpoints"); + if (endpoints == null) { + throw new ArgumentNullException("endpoints", "E-RSP16020"); + } _endpoints = endpoints; } /** - * Gets the endpoints as a collection - * @return The endpoint collection + * Gets the endpoints as a collection. + * + * @return The endpoint collection. */ public Collection getEndpoints() { - return _endpoints; + return _endpoints; } - + /** - * Sets the endpoints - * @param endpoints The endpoints + * Sets the endpoints. + * + * @param endpoints The endpoints. */ public void setEndpoints(Collection endpoints) { - if (endpoints == null) throw new ArgumentNullException("endpoints"); - _endpoints = endpoints; + if (endpoints == null) { + throw new ArgumentNullException("endpoints", "E-RSP16020"); + } + _endpoints = endpoints; + } + + public int getUddiLookupTimeoutSeconds() { + return uddiLookupTimeoutSeconds; + } + + public void setUddiLookupTimeoutSeconds(int uddiLookupTimeoutSeconds) { + this.uddiLookupTimeoutSeconds = uddiLookupTimeoutSeconds; } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClient.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClient.java index 870bb28f36b39cf1d72498ac7dc44a43e9d6f73a..64c7de49346d914352bde30a05d6f6da89080a5b 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClient.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClient.java @@ -61,7 +61,7 @@ public class RegistryLookupClient implements IUddiLookupClient { // Uses different parameters for the lookup mechanism below. for (Registry registry : _configuration.getRegistries()) { - UddiFallbackClient uddiLookupClient = new UddiFallbackClient(registry.getEndpoints()); + UddiFallbackClient uddiLookupClient = new UddiFallbackClient(registry.getEndpoints(), registry.getUddiLookupTimeoutSeconds()); response = uddiLookupClient.lookup(parameters); // Continue only as long as no result was found in the current registry if (response != null && response.size() != 0) { @@ -75,7 +75,7 @@ public class RegistryLookupClient implements IUddiLookupClient { public List getProcessDefinitions(List processDefinitionIds) throws MainException { List processDefinitions = null; for (Registry registry : _configuration.getRegistries()) { - IUddiLookupClient uddiLookupClient = new UddiFallbackClient(registry.getEndpoints()); + IUddiLookupClient uddiLookupClient = new UddiFallbackClient(registry.getEndpoints(), registry.getUddiLookupTimeoutSeconds()); processDefinitions = uddiLookupClient.getProcessDefinitions(processDefinitionIds); // Continue until some is found: if (processDefinitions != null && processDefinitions.size() != 0) { diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClientFactory.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClientFactory.java index 6c2581c404d8ce70dd0a3606cc4976d26aeb976f..7b5b994e96b270a3807f25c937004941f6429b34 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClientFactory.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/RegistryLookupClientFactory.java @@ -52,11 +52,11 @@ public class RegistryLookupClientFactory { log.debug("Init RegistryLookupClientFactory: " + config.getImplementationNamespaceClass()); lookupClient = (IUddiLookupClient) Class.forName(config.getImplementationNamespaceClass()).newInstance(); } catch (InstantiationException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16024"); } catch (IllegalAccessException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16025"); } catch (ClassNotFoundException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16026"); } } return lookupClient; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiBinding.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiBinding.java index 6cd065f8c522f1818ad2e955b7b16e107f179fa9..66e170e0e471bf55e123540bac33a6ed55567c1f 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiBinding.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiBinding.java @@ -35,10 +35,10 @@ class UddiBinding { public UddiBinding(BindingTemplate template, List tModels) { if (template == null) { - throw new ArgumentNullException("template"); + throw new ArgumentNullException("template", "E-RSP16031"); } if (tModels == null) { - throw new ArgumentNullException("tModels"); + throw new ArgumentNullException("tModels", "E-RSP16032"); } this.template = template; @@ -48,13 +48,13 @@ class UddiBinding { public EndpointAddress GetEndpointAddress() throws Exception { AccessPoint accessPointItem = template.getAccessPoint(); if (accessPointItem == null) { - throw new Exception("accessPoint type expected"); + throw new Exception("E-RSP16033: accessPoint type expected"); } return IdentifierUtility.getEndpointAddressFromString(accessPointItem.getStringValue()); } public List GetProcesses() { - List processes = new LinkedList(); + List processes = new LinkedList<>(); for (TModel model : tModels) { UddiTModel uddiTModel = new UddiTModel(model); if (!uddiTModel.IsProfileRole()) { @@ -132,4 +132,4 @@ class UddiBinding { return modelProfiles; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiCategoryBag.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiCategoryBag.java index 8e793996447d6622d6b6e632acc014bb0b9fae39..d5594e83dd61a5e617feb1dcbfa4ff3b04de7aea 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiCategoryBag.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiCategoryBag.java @@ -60,7 +60,7 @@ public class UddiCategoryBag { public boolean tryGetKeyedReference(String tModelKey, OutVariable keyedRef) { if (tModelKey == null || tModelKey.length() <= 0) { - throw new NullOrEmptyArgumentException("tModelKey"); + throw new NullOrEmptyArgumentException("E-RSP16041: tModelKey is null or empty"); } keyedRef.setVariable(keyedReferenceBag.get(tModelKey.toLowerCase())); @@ -69,7 +69,7 @@ public class UddiCategoryBag { public boolean tryGetKeyedReferenceGroup(String tModelKey, OutVariable keyedRef) { if (tModelKey == null || tModelKey.length() <= 0) { - throw new NullOrEmptyArgumentException("tModelKey"); + throw new NullOrEmptyArgumentException("E-RSP16041: tModelKey is null or empty"); } keyedRef.setVariable(keyedReferenceGroupBag.get(tModelKey.toLowerCase())); diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiConfig.java index 2221ab9d7efe52983bb2696974771e9de08cc0c2..93abe365e0ce21c16c08e5da775d5dfe4093689e 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiConfig.java @@ -24,34 +24,14 @@ package dk.gov.oiosi.uddi; */ public class UddiConfig { - private int _fallbackTimeoutMinutes = 0; private LookupRegistryFallbackConfig _lookupRegistryFallbackConfig; /** - * Default constructor + * Default constructor. */ public UddiConfig() { } - - /** - * Gets the fallback timeout in minutes. - * - * @return fallbackTimeoutMinutes - */ - public int getFallbackTimeoutMinutes() { - return _fallbackTimeoutMinutes; - } - - /** - * Sets the fallback timeout in minutes. - * - * @param value fallbackTimeoutMinutes - */ - public void setFallbackTimeoutMinutes(int value) { - _fallbackTimeoutMinutes = value; - } - /** * Gets the lookup registration fallback configuration * @@ -69,4 +49,4 @@ public class UddiConfig { public void setLookupRegistryFallbackConfig(LookupRegistryFallbackConfig lookupRegistryFallbackConfig) { _lookupRegistryFallbackConfig = lookupRegistryFallbackConfig; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiFallbackClient.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiFallbackClient.java index 8ec9ba4a22b737be201366757616105f565389e1..c7b8a608c4c34a6899dcf95e55cbf1ce46f9598c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiFallbackClient.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiFallbackClient.java @@ -29,16 +29,18 @@ import java.util.*; */ public class UddiFallbackClient implements IUddiLookupClient { - private static final Map cache_uddiLookupClient = new HashMap(); - private Collection _fallbackList; + private static final Map cache_uddiLookupClient = new HashMap<>(); + private final Collection _fallbackList; + private final int uddiLookupTimeoutSeconds; /** * Constructor that takes the fallback list as parameter. * - * @param fallbackList The fallback list + * @param fallbackList The fallback list. */ - public UddiFallbackClient(Collection fallbackList) { + public UddiFallbackClient(Collection fallbackList, int uddiLookupTimeoutSeconds) { _fallbackList = fallbackList; + this.uddiLookupTimeoutSeconds = uddiLookupTimeoutSeconds; cache_uddiLookupClient.clear(); } @@ -64,7 +66,7 @@ public class UddiFallbackClient implements IUddiLookupClient { } // The fallback list was empty, so we return an empty list as result. if (exception == null) { - return new ArrayList(); + return new ArrayList<>(); } // We never got a valid result, so the last known exception is thrown. throw exception; @@ -86,15 +88,15 @@ public class UddiFallbackClient implements IUddiLookupClient { } // The fallback list was empty we return an empty list as result. if (exception == null) { - return new ArrayList(); + return new ArrayList<>(); } // We never got a valid result, so the last known exception is thrown. throw exception; } - IUddiLookupClient getCachedUddiLookupClient(Uri uri) throws MainException { + IUddiLookupClient getCachedUddiLookupClient(Uri uri) { if (!cache_uddiLookupClient.containsKey(uri)) { - cache_uddiLookupClient.put(uri, UddiLookupClientFactory.createUddiLookupClient(uri)); + cache_uddiLookupClient.put(uri, UddiLookupClientFactory.createUddiLookupClient(uri, uddiLookupTimeoutSeconds)); } return cache_uddiLookupClient.get(uri); } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiGuidId.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiGuidId.java index c3ecee67ce6455ddc4de36649ab75221d7893ae4..24cef7150fe2ab5866d58229cabee68a21198200 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiGuidId.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiGuidId.java @@ -48,17 +48,17 @@ public class UddiGuidId extends UddiStringId { * * @param guid The guid string */ - public UddiGuidId(String guid) throws UddiEmptyGuidException { + public UddiGuidId(String guid) { super(guid, false); } /** - * Constructs a uddi guid given a uddi id + * Constructs a uddi guid given a uddiId as input. * - * @param Id The UDDI id + * @param id The UDDI id */ - public UddiGuidId(UddiId Id) { - super(Id); + public UddiGuidId(UddiId id) { + super(id); } /** @@ -73,7 +73,7 @@ public class UddiGuidId extends UddiStringId { return false; } - String guidString = ""; + String guidString; if (isUddiType) { if (guid.lastIndexOf(':') == -1) { @@ -86,4 +86,4 @@ public class UddiGuidId extends UddiStringId { return Guid.validateString(guidString); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClient.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClient.java index 108cc01c72e96ecea2e74e2c4caf592b15e4f288..a6e3406774567f39427403ca13c44adb7ee71eea 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClient.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClient.java @@ -49,13 +49,12 @@ import java.util.List; *

* Extension points: * Extension mechanism for adding additional key types for resolving * Extendable configuration model */ - public class UddiLookupClient implements IUddiLookupClient { private static final String RASPREGISTRATIONCONFORMANCECLAIM = "http://oio.dk/profiles/OIOSI/1.0/UDDI/registrationModel/1.1/"; private static final ICache> serviceCache = createServiceCache(); private static final ICache tModelCache = createTModelCache(); - private static final List EMPTY_LIST = new ArrayList(); + private static final List EMPTY_LIST = new ArrayList<>(); private static final Log log = LogFactory.getLog(UddiLookupClient.class); private final Uri uddiLookupHost; @@ -67,15 +66,17 @@ public class UddiLookupClient implements IUddiLookupClient { * @param endpointAddress Endpoint address. * @throws dk.gov.oiosi.exception.MainException On error... */ - public UddiLookupClient(Uri endpointAddress) throws MainException { + public UddiLookupClient(Uri endpointAddress, int uddiLookupTimeoutSeconds) throws MainException { this.uddiLookupHost = endpointAddress; - ConnectionInfo ci = new ConnectionInfo(); - ci.setInquiry(endpointAddress.toString() + "?platform=" + Version.getImplementationLanguage() + "&raspVersion=" + Version.getVersionNumber()); + ConnectionInfo connectionInfo = new ConnectionInfo(); + connectionInfo.setInquiry(endpointAddress.toString() + (endpointAddress.toString().contains("?") ? "&" : "?") + "platform=" + Version.getImplementationLanguage() + "&raspVersion=" + Version.getVersionNumber()); + // Timeout must be set in milliseconds: + connectionInfo.setTimeout(uddiLookupTimeoutSeconds * 1000); try { - _uddiProxy = new UDDIClient(ci); + _uddiProxy = new UDDIClient(connectionInfo); } catch (MalformedURLException e) { - throw new MainException(e); + throw new MainException("", e, "E-RSP16062"); } } @@ -105,15 +106,15 @@ public class UddiLookupClient implements IUddiLookupClient { */ public List lookup(LookupParameters lookupParameters) throws MainException { if (lookupParameters == null) { - throw new ArgumentNullException("lookupParameters"); + throw new ArgumentNullException("lookupParameters", "E-RSP16061"); } List uddiLookupResponseList; try { uddiLookupResponseList = getUddiResponses(lookupParameters); } catch (Exception e) { - log.error(e.getMessage(), e); - throw new MainException(e); + log.error("E-RSP16063: " + e.getMessage(), e); + throw new MainException("E-RSP16063", e); } if (lookupParameters.getAcceptedTransportProtocols() != null && !lookupParameters.getAcceptedTransportProtocols().isEmpty()) { @@ -130,12 +131,12 @@ public class UddiLookupClient implements IUddiLookupClient { } public List getProcessDefinitions(List processDefinitionIds) { - List missingIds = new ArrayList(); - List foundTModels = new ArrayList(); + List missingIds = new ArrayList<>(); + List foundTModels = new ArrayList<>(); // Check the cache for any existing tmodels. for (UddiId processDefinitionId : processDefinitionIds) { - OutVariable out = new OutVariable(); + OutVariable out = new OutVariable<>(); if (tModelCache.tryGetValue(processDefinitionId, out)) { foundTModels.add(out.getVariable()); continue; @@ -150,7 +151,7 @@ public class UddiLookupClient implements IUddiLookupClient { tModelCache.set(tmodel.getUddiId(), tmodel); } - List processDefinitions = new ArrayList(); + List processDefinitions = new ArrayList<>(); foundTModels.addAll(tmodels); for (UddiTModel tmodel : foundTModels) { UddiId uddiId = tmodel.getUddiId(); @@ -203,7 +204,7 @@ public class UddiLookupClient implements IUddiLookupClient { Iterable supportedBindings; if (filterResponseByProfile) { - supportedBindings = uddiService.GetBindingsSupportingAnyProfileAndRole(lookupParameters.getProfileIds(), lookupParameters.getProfileRoleIdentifier()); + supportedBindings = uddiService.getBindingsSupportingAnyProfileAndRole(lookupParameters.getProfileIds(), lookupParameters.getProfileRoleIdentifier()); } else { supportedBindings = uddiService.getBindings(); } @@ -267,24 +268,25 @@ public class UddiLookupClient implements IUddiLookupClient { q.addCategory(reference.getKeyName(), reference.getKeyValue(), reference.getTModelKey()); } + // This is the first external call to NHR UDDI interface: FindServiceResult serviceResult = q.execute(); if (serviceResult.getServiceInfos().length == 0) { return EMPTY_LIST; } - List endPointUddiIds = new ArrayList(); + List endPointUddiIds = new ArrayList<>(); for (ServiceInfo serviceInfo : serviceResult.getServiceInfos()) { endPointUddiIds.add(serviceInfo.getServiceKey()); } InquiryClient inquiry = _uddiProxy.getInquiry(); - List uddiServices = new ArrayList(); + List uddiServices = new ArrayList<>(); for (BusinessService businessServiceItem : inquiry.getServices(endPointUddiIds)) { - List uddiBindings = new ArrayList(); + List uddiBindings = new ArrayList<>(); for (BindingTemplate bindingTemplate : businessServiceItem.getBindingTemplates().getBindingTemplateArray()) { - List tModelKeys = new ArrayList(); + List tModelKeys = new ArrayList<>(); for (TModelInstanceInfo tModelInfo : bindingTemplate.getTModelInstanceDetails().getTModelInstanceInfoArray()) { tModelKeys.add(tModelInfo.getTModelKey()); } @@ -311,14 +313,21 @@ public class UddiLookupClient implements IUddiLookupClient { TModel[] tmodelDetails = _uddiProxy.getInquiry().getTModels(tModelKeyArray); if (tmodelDetails == null) { - return new ArrayList(); + return new ArrayList<>(); } - List uddiTmodels = new ArrayList(); + List uddiTmodels = new ArrayList<>(); for (TModel tmodel : tmodelDetails) { UddiTModel uddiTmodel = new UddiTModel(tmodel); uddiTmodels.add(uddiTmodel); } return uddiTmodels; } + + /** + * Helper method for unittests only. + */ + public UDDIClient getUddiProxy() { + return _uddiProxy; + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactory.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactory.java index 2da13cc5e556896fbbe2d4e5f42c0d965cec6574..d65801e1d9f7d2dccbc315661e122c0fa9b41d2e 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactory.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactory.java @@ -22,73 +22,98 @@ package dk.gov.oiosi.uddi; import dk.gov.oiosi.common.RaspLibraryException; import dk.gov.oiosi.communication.Uri; import dk.gov.oiosi.configuration.ConfigurationHandler; -import dk.gov.oiosi.exception.MainException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.lang.reflect.InvocationTargetException; - -/** -* Factory for creating IUddiLookup implementations -* + +/** + * Factory for creating IUddiLookup implementations */ public class UddiLookupClientFactory { - private static Log log = LogFactory.getLog(UddiLookupClientFactory.class); + private static final Log log = LogFactory.getLog(UddiLookupClientFactory.class); private static IUddiLookupClient lookupClient; - - private UddiLookupClientFactory() {} - /** - * Creates an IUddiLookup implementation, as set in config. - * - * @return The IUddiLookup implementation - */ + + private UddiLookupClientFactory() { + } + + /** + * Creates an IUddiLookup implementation, as set in config. + * + * @return The IUddiLookup implementation + */ public static IUddiLookupClient createUddiLookupClient() { - synchronized ( UddiLookupClientFactory.class ) { - if( lookupClient == null ) { + synchronized (UddiLookupClientFactory.class) { + if (lookupClient == null) { UddiLookupClientFactoryConfig config = ConfigurationHandler.getInstance().getUddiLookupClientFactoryConfig(); try { log.debug("Init UddiLookupClientFactory: " + config.getImplementationNamespaceClass()); lookupClient = (IUddiLookupClient) Class.forName(config.getImplementationNamespaceClass()).newInstance(); } catch (InstantiationException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16074: " + e.getMessage()); } catch (IllegalAccessException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16075: " + e.getMessage()); } catch (ClassNotFoundException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16076: " + e.getMessage()); } } return lookupClient; } - } - - - public static IUddiLookupClient createUddiLookupClient(Uri endpointAddress) throws MainException { - ConfigurationHandler handler = ConfigurationHandler.getInstance(); + + + public static IUddiLookupClient createUddiLookupClient(Uri endpointAddress) { + ConfigurationHandler handler = ConfigurationHandler.getInstance(); UddiLookupClientFactoryConfig config = handler.getUddiLookupClientFactoryConfig(); try { log.debug("createUddiLookupClient - implementingClass=" + config.getImplementationNamespaceClass()); String implementingClass = config.getImplementationNamespaceClass(); - + return (IUddiLookupClient) Class.forName(implementingClass).getConstructor(Uri.class).newInstance(endpointAddress); } catch (InstantiationException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16074: " + e.getMessage()); } catch (IllegalAccessException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16075: " + e.getMessage()); } catch (ClassNotFoundException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16076: " + e.getMessage()); } catch (InvocationTargetException e) { - throw new RaspLibraryException(e); + throw new RaspLibraryException(e, "E-RSP16077: " + e.getMessage()); } catch (IllegalArgumentException e) { - throw new RaspLibraryException(e); - } catch (SecurityException e) { - throw new RaspLibraryException(e); - } catch (NoSuchMethodException e) { - throw new RaspLibraryException(e); - } + throw new RaspLibraryException(e, "E-RSP16078: " + e.getMessage()); + } catch (SecurityException e) { + throw new RaspLibraryException(e, "E-RSP16079: " + e.getMessage()); + } catch (NoSuchMethodException e) { + throw new RaspLibraryException(e, "E-RSP16080: " + e.getMessage()); + } + } + + public static IUddiLookupClient createUddiLookupClient(Uri endpointAddress, int uddiLookupTimeoutSeconds) { + ConfigurationHandler handler = ConfigurationHandler.getInstance(); + UddiLookupClientFactoryConfig config = handler.getUddiLookupClientFactoryConfig(); + + try { + log.debug("createUddiLookupClient - implementingClass=" + config.getImplementationNamespaceClass()); + String implementingClass = config.getImplementationNamespaceClass(); + + return (IUddiLookupClient) Class.forName(implementingClass).getConstructor(Uri.class, Integer.TYPE).newInstance(endpointAddress, uddiLookupTimeoutSeconds); + } catch (InstantiationException e) { + throw new RaspLibraryException(e, "E-RSP16074: " + e.getMessage()); + } catch (IllegalAccessException e) { + throw new RaspLibraryException(e, "E-RSP16075: " + e.getMessage()); + } catch (ClassNotFoundException e) { + throw new RaspLibraryException(e, "E-RSP16076: " + e.getMessage()); + } catch (InvocationTargetException e) { + throw new RaspLibraryException(e, "E-RSP16077: " + e.getMessage()); + } catch (IllegalArgumentException e) { + throw new RaspLibraryException(e, "E-RSP16078: " + e.getMessage()); + } catch (SecurityException e) { + throw new RaspLibraryException(e, "E-RSP16079: " + e.getMessage()); + } catch (NoSuchMethodException e) { + throw new RaspLibraryException(e, "E-RSP16080: " + e.getMessage()); + } } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactoryConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactoryConfig.java index 8cc5fd2fcf907283c5924ab9c4e16de682b15603..198a2a07d66d3cb2dbfe5156dbcb7c4d67ea365e 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactoryConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiLookupClientFactoryConfig.java @@ -23,15 +23,17 @@ package dk.gov.oiosi.uddi; * Configuration for the UddiLookupClientFactory */ public class UddiLookupClientFactoryConfig { + private String implementationNamespaceClass = ""; private String implementationAssembly = ""; - + /** * Default constructor */ - public UddiLookupClientFactoryConfig() { } - + public UddiLookupClientFactoryConfig() { + } + /* * The namespace of the IUddiLookup implementation @return @@ -51,7 +53,7 @@ public class UddiLookupClientFactoryConfig { /** * The assembly name of the IUddiLookup implementation - * + * * @return ImplementationAssembly */ public String getImplementationAssembly() { @@ -60,9 +62,8 @@ public class UddiLookupClientFactoryConfig { /** * The assembly name of the IUddiLookup implementation - * - * @param value - * ImplementationAssembly + * + * @param value ImplementationAssembly */ public void setImplementationAssembly(String value) { implementationAssembly = value; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiNonGuidId.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiNonGuidId.java index 6786a0ff9dd2525b6edd6a477e469cdb6d7b22d1..a5d877502927a8281377c4f139c0855dea1b2258 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiNonGuidId.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiNonGuidId.java @@ -43,12 +43,12 @@ public class UddiNonGuidId extends UddiId { public UddiNonGuidId(String id) { if (id == null || id.length() == 0) - throw new NullOrEmptyArgumentException("id"); + throw new NullOrEmptyArgumentException("E-RSP16051: id is null or empty"); boolean isUddiType = id.substring(0, 5).equals("uddi:"); if (UddiGuidId.isValidGuidId(id, isUddiType)) { - throw new IllegalArgumentException("The string is a Guid ID: " + id); + throw new IllegalArgumentException("E-RSP16052: The string is a Guid ID: " + id); } pId = id; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiService.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiService.java index 58559db017f6d1c6b6761701cea880b8d9796b6d..1bc93ad7e1b5ae8efe46a06699c2cd628d5a50b7 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiService.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiService.java @@ -31,32 +31,32 @@ import dk.itst.uddi.client.types.core.KeyedReference; import java.net.URISyntaxException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; -import java.util.LinkedList; import java.util.List; public class UddiService { + + // private static final String versionMajorId = "uddi:9c119cc4-cca5-4d98-bee2-5fe3999506e9"; +// private static final String versionMinorId = "uddi:ba4afec4-f6c1-4205-8212-5eb0472000f9"; +// private static final String versionRevisionId = "uddi:8e7ce808-0279-4042-8088-133667744c6f"; + static final SimpleDateFormat NHR_NORMAL_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); private static final String activationDateId = "uddi:B5449299-B951-4266-9952-4C4470970782"; private static final String certificateSubjectId = "uddi:e6feac92-0aee-4824-ae02-882760609e8a"; private static final String expirationDateId = "uddi:2a8d2edc-cd1e-453f-9777-b623c80aaba5"; private static final String newerVersionId = "uddi:23c1ed31-ee5c-4a13-983e-92a0815e6120"; private static final String contactMailId = "uddi:5194201c-fc02-4d2e-8224-910939ac384d"; private static final String termsOfUseUrlId = "uddi:8cc1e1c1-d0f4-4bbe-90e0-90cd1976d944"; - // private static final String versionMajorId = "uddi:9c119cc4-cca5-4d98-bee2-5fe3999506e9"; -// private static final String versionMinorId = "uddi:ba4afec4-f6c1-4205-8212-5eb0472000f9"; -// private static final String versionRevisionId = "uddi:8e7ce808-0279-4042-8088-133667744c6f"; - static final SimpleDateFormat NHR_NORMAL_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); - private final BusinessService service; private final UddiCategoryBag categoryBag; private final List bindings; public UddiService(BusinessService service, List uddiBindings) { if (service == null) { - throw new ArgumentNullException("service"); + throw new ArgumentNullException("service", "E-RSP16081"); } if (uddiBindings == null) { - throw new ArgumentNullException("uddiBindings"); + throw new ArgumentNullException("uddiBindings", "E-RSP16082"); } this.service = service; @@ -69,7 +69,7 @@ public class UddiService { } public Date GetActivationDateUtc() { - OutVariable out = new OutVariable(); + OutVariable out = new OutVariable<>(); if (!categoryBag.tryGetKeyedReference(activationDateId, out)) { return new Date(Long.MIN_VALUE); } @@ -78,7 +78,7 @@ public class UddiService { } public Date GetExpirationDateUtc() { - OutVariable out = new OutVariable(); + OutVariable out = new OutVariable<>(); if (!categoryBag.tryGetKeyedReference(expirationDateId, out)) { return new Date(Long.MAX_VALUE); } @@ -87,7 +87,7 @@ public class UddiService { } public CertificateSubject GetCertificateSubject() { - OutVariable out = new OutVariable(); + OutVariable out = new OutVariable<>(); if (!categoryBag.tryGetKeyedReference(certificateSubjectId, out)) { return null; } @@ -96,7 +96,7 @@ public class UddiService { } public UddiId GetNewerVersion() { - OutVariable out = new OutVariable(); + OutVariable out = new OutVariable<>(); if (!this.categoryBag.tryGetKeyedReference(newerVersionId, out)) { return null; } @@ -109,7 +109,7 @@ public class UddiService { } public Uri GetTermsOfUseUrl() throws URISyntaxException { - OutVariable out = new OutVariable(); + OutVariable out = new OutVariable<>(); if (!this.categoryBag.tryGetKeyedReference(termsOfUseUrlId, out)) { return null; } @@ -134,8 +134,8 @@ public class UddiService { return new MailAddress(contactMail.getKeyValue()); } - public Iterable GetBindingsSupportingAnyProfileAndRole(List profileUddiIds, String roleIdentifier) { - List supportedBindings = new LinkedList(); + public Iterable getBindingsSupportingAnyProfileAndRole(List profileUddiIds, String roleIdentifier) { + List supportedBindings = new ArrayList<>(); for (UddiBinding binding : bindings) { if (binding.SupportsOneOrMoreProfileAndRole(profileUddiIds, roleIdentifier)) { supportedBindings.add(binding); @@ -179,12 +179,14 @@ public class UddiService { try { return NHR_NORMAL_DATE_FORMAT.parse(date); } catch (Exception ignore) { + // 2 - fall back to "yyyy-MM-dd" + try { + return new SimpleDateFormat("yyyy-MM-dd").parse(date); + } catch (Exception e) { + // Do nothing. + } } - // 2 - fall back to "yyyy-MM-dd" - try { - return new SimpleDateFormat("yyyy-MM-dd").parse(date); - } catch (Exception ignore) { - } + return null; } @@ -192,4 +194,4 @@ public class UddiService { public String toString() { return service.getServiceKey(); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiStringId.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiStringId.java index dc22d79bb9f5bd8c404e47a5838329cf4b502423..6ab9dda59412fc34c0fc4c4a526647863330d7c7 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiStringId.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiStringId.java @@ -25,8 +25,8 @@ public class UddiStringId extends UddiId { * @param isUddiType whether it is prefixed with "uddi:". */ public UddiStringId(String id, boolean isUddiType) { - if (id == null || id.isEmpty()) throw new NullOrEmptyArgumentException("id"); - if (id.length() < 10) throw new UnexpectedNumberOfCharactersException("id", 10); + if (id == null || id.isEmpty()) throw new NullOrEmptyArgumentException("E-RSP16091: id is null or empty"); + if (id.length() < 10) throw new UnexpectedNumberOfCharactersException("E-RSP16092: id", 10); if (isUddiType) { _noUddiPrefix = id.substring(5); } else { diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiTModel.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiTModel.java index b8a5c9bb6e8ba51742815fd7837e6e8b9b7497ef..dbd0f5013d61909b86e3d6a392da29fec6ecb96a 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiTModel.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/uddi/UddiTModel.java @@ -21,7 +21,7 @@ public class UddiTModel { public UddiTModel(TModel tModel) { if (tModel == null) { - throw new ArgumentNullException("tModel"); + throw new ArgumentNullException("tModel", "E-RSP16094"); } this.tModel = tModel; diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/util/RaspMerlin.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/util/RaspMerlin.java index 2efa0e39a24cf9bf51adbea298c402879507bb11..20bba205445fce3d8d530f7f4fc2b59475153ab9 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/util/RaspMerlin.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/util/RaspMerlin.java @@ -39,23 +39,22 @@ import java.util.concurrent.ConcurrentMap; */ public class RaspMerlin extends Merlin { - private Log log = LogFactory.getLog(RaspMerlin.class); - /** * certificate cache. */ - static ConcurrentMap certificates = new ConcurrentHashMap(); + static ConcurrentMap certificates = new ConcurrentHashMap<>(); + private final Log log = LogFactory.getLog(RaspMerlin.class); /** * Constructor. * * @param properties properties - * @throws CredentialException - * @throws IOException + * @throws CredentialException On error. + * @throws IOException On error. */ public RaspMerlin(Properties properties) throws CredentialException, IOException { super(properties); - this.RemoveJVMCaCerts(); + this.removeJVMCaCerts(); } /** @@ -63,18 +62,18 @@ public class RaspMerlin extends Merlin { * * @param properties properties * @param classLoader classLoader - * @throws CredentialException - * @throws IOException + * @throws CredentialException On error. + * @throws IOException On error. */ public RaspMerlin(Properties properties, ClassLoader classLoader) throws CredentialException, IOException { super(properties, classLoader); - this.RemoveJVMCaCerts(); + this.removeJVMCaCerts(); } - private void RemoveJVMCaCerts() { + private void removeJVMCaCerts() { try { - // Remove JVM cacerts as trusted ca certificates + // Remove JVM CA certs as trusted ca certificates cacerts = KeyStore.getInstance("JKS"); cacerts.load(null, null); } catch (Exception e) { @@ -88,6 +87,7 @@ public class RaspMerlin extends Merlin { * * @see org.apache.ws.security.components.crypto.CryptoBase#getAliasForX509Cert(byte[]) */ + @Override public String getAliasForX509Cert(byte[] certificateThumbprint) throws WSSecurityException { String alias = super.getAliasForX509Cert(certificateThumbprint); log.debug("getAliasForX509Cert, alias=" + alias); @@ -122,6 +122,7 @@ public class RaspMerlin extends Merlin { * * @see org.apache.ws.security.components.crypto.CryptoBase#getSKIBytesFromCert(java.security.cert.X509Certificate) */ + @Override public byte[] getSKIBytesFromCert(X509Certificate certificate) throws WSSecurityException { byte[] bytes = super.getSKIBytesFromCert(certificate); try { @@ -143,4 +144,4 @@ public class RaspMerlin extends Merlin { } return bytes; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocument.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocument.java index 5bdbb20d10f08ad6c7fcdfeddd299d2ef1265c2b..4c3f4cfd450b74c669bf1be09a1b621f8e3030da 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocument.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocument.java @@ -77,6 +77,26 @@ public class XmlDocument { setDocument(doc); } + /** + * Builds input stream object for given path + * + * @param file path to file. Uses {@link org.apache.commons.configuration.ConfigurationUtils} method locate(String) for resource + * search. + * @return InputStream object for given path to file. + * @throws FileNotFoundException On I/O error. + * @since OIORASP 1.3.0 + */ + public static InputStream locateInputStream(String file) throws FileNotFoundException { + InputStream inputStream; + try { + URL url = ConfigurationUtils.locate(file); + inputStream = url.openStream(); + } catch (Exception e) { + inputStream = new BufferedInputStream(new FileInputStream(file), 4 * 1024); + } + return inputStream; + } + /** * Set document as an w3c document. * @@ -113,7 +133,7 @@ public class XmlDocument { try { return XMLUtils.toDOM(omDocument); } catch (Exception e) { - throw new XmlDocumentException(omDocument); + throw new XmlDocumentException(omDocument, "E-RSP15501"); } } @@ -133,7 +153,7 @@ public class XmlDocument { try { return XMLUtils.toOM(w3Document); } catch (Exception e) { - throw new XmlDocumentException(w3Document); + throw new XmlDocumentException(w3Document, "E-RSP15502"); } } @@ -181,8 +201,8 @@ public class XmlDocument { * Loads the document from prepared InputStream. * * @param inputStream InputStream to source from. - * @param buildAxiom True/false to get/avoid document building - * @throws MainException On error... + * @param buildAxiom True/false to get/avoid document building. + * @throws MainException On error. * @since OIORASP 2.1.0 */ void loadFromInputStream(InputStream inputStream, boolean buildAxiom) throws MainException { @@ -193,14 +213,14 @@ public class XmlDocument { OMElement doc = builder.getDocumentElement(); /* - * dlk, 2012-04-05 - * - * In future versions in order to speed up big documents processing, - * it is necessary to load documents without its building. - * - * In OIORASP 1.3.0 there is no optimization code for, so the method - * load(String) should build the document by default. - */ + * dlk, 2012-04-05 + * + * In future versions in order to speed up big documents processing, + * it is necessary to load documents without its building. + * + * In OIORASP 1.3.0 there is no optimization code for, so the method + * load(String) should build the document by default. + */ if (buildAxiom) { doc.build(); } @@ -211,30 +231,10 @@ public class XmlDocument { */ omDocument = doc; } catch (Exception e) { - throw new XmlException("Failed to read XML: " + e.getMessage(), e); + throw new XmlException("Failed to read XML: " + e.getMessage(), e, "E-RSP15503"); } } - /** - * Builds input stream object for given path - * - * @param file path to file. Uses {@link org.apache.commons.configuration.ConfigurationUtils} method locate(String) for resource - * search. - * @return InputStream object for given path to file - * @throws FileNotFoundException On I/O error... - * @since OIORASP 1.3.0 - */ - public static InputStream locateInputStream(String file) throws FileNotFoundException { - InputStream inputStream; - try { - URL url = ConfigurationUtils.locate(file); - inputStream = url.openStream(); - } catch (Exception e) { - inputStream = new BufferedInputStream(new FileInputStream(file), 4 * 1024); - } - return inputStream; - } - /** * @return true if this instance is based on AXIOM * @since OIORASP 1.3.0 @@ -270,17 +270,16 @@ public class XmlDocument { return fileName; } - @Override /** + * E.g. this method is used in dk.gov.oiosi.xml.schematron.SchematronValidator + * .schematronValidateXmlDocument(XmlDocument, XmlDocument, boolean) error + * message - it gives more information about problem than just exception + * stack trace. + * * @return String with information about state of the instance. Only for debug/logging purposes. */ - /* - * E.g. this method is used in dk.gov.oiosi.xml.schematron.SchematronValidator - * .schematronValidateXmlDocument(XmlDocument, XmlDocument, boolean) error - * message - it gives more information about problem than just exception - * stack trace. - */ + @Override public String toString() { return "XmlDocument [fileName=" + fileName + ", w3cBased=" + isW3CBased() + ", omBased=" + isOMBased() + "]"; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocumentException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocumentException.java index fc27a84e72632cdb3aa9531dd14573483dd954f3..42608544ca8d548f1a483f69f6399cb0c00296fe 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocumentException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlDocumentException.java @@ -37,8 +37,8 @@ public class XmlDocumentException extends XmlException { * * @param doc document */ - public XmlDocumentException(final OMElement doc) { - super("Could not convert XmlDocument from Axiom OM format to Java W3"); + public XmlDocumentException(final String message) { + super(message); } /** @@ -46,7 +46,16 @@ public class XmlDocumentException extends XmlException { * * @param doc document */ - public XmlDocumentException(final Element doc) { - super("Could not convert XmlDocument from Java W3 to Axiom OM format"); + public XmlDocumentException(final OMElement doc, String errorCode) { + super(errorCode + ": Could not convert XmlDocument from Axiom OM format to Java W3"); + } + + /** + * Constructor. + * + * @param doc document + */ + public XmlDocumentException(final Element doc, String errorCode) { + super(errorCode + ": Could not convert XmlDocument from Java W3 to Axiom OM format"); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlException.java index 5a78b706b6e5fb5f7de708d5ef202e14138393ee..0f35f0d1e49776fb71c26f501508c547b4254f3b 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlException.java @@ -43,7 +43,16 @@ public class XmlException extends MainException { * @param message message */ public XmlException(final String message) { - super(message); + super(message, ""); + } + + /** + * Constructor with keywords. + * + * @param message message + */ + public XmlException(final String message, final String errorCode) { + super(message, errorCode); } /** @@ -51,8 +60,8 @@ public class XmlException extends MainException { * * @param e inner exception of the thrown exception */ - public XmlException(final Throwable e) { - super(e); + public XmlException(final Throwable e, final String errorCode) { + super(e, errorCode); } @@ -62,7 +71,7 @@ public class XmlException extends MainException { * @param message String to set as error. * @param e inner exception of the thrown exception */ - public XmlException(final String message, final Throwable e) { - super(message, e); + public XmlException(final String message, final Throwable e, final String errorCode) { + super(message, e, errorCode); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlSchema.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlSchema.java index 9dad067952f05dd1483f21a210fac48ac17c32af..23c72055b1c7d0edf364a8493aba154f1d112f3b 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlSchema.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/XmlSchema.java @@ -35,7 +35,7 @@ public class XmlSchema extends XmlDocument { */ public XmlSchema(String file) { if (file == null || file.trim().isEmpty()) { - throw new NullOrEmptyArgumentException("Xml schema file name"); + throw new NullOrEmptyArgumentException("E-RSP15511: filename is null or empty"); } this.fileName = file; } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/AmbiguousDocumentTypeFoundFromXmlDocumentException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/AmbiguousDocumentTypeFoundFromXmlDocumentException.java index b6b9151aa23e99c6be8859d61c64beb79de99815..be5c52b2bcccf3e0447e8f4004754c254e3ad918 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/AmbiguousDocumentTypeFoundFromXmlDocumentException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/AmbiguousDocumentTypeFoundFromXmlDocumentException.java @@ -19,9 +19,8 @@ package dk.gov.oiosi.xml.documenttype; -import org.apache.axiom.om.OMElement; - import dk.gov.oiosi.communication.configuration.AmbiguousDocumentTypeResultException; +import org.apache.axiom.om.OMElement; /** * More than one document type configuration was found from the xml document @@ -36,12 +35,10 @@ public class AmbiguousDocumentTypeFoundFromXmlDocumentException extends Ambiguou /** * Constructor. - * - * @param doc - * The XML-document from which to find a configuration + * + * @param doc The XML-document from which to find a configuration */ - public AmbiguousDocumentTypeFoundFromXmlDocumentException(OMElement doc) { - super(doc.getLocalName()); + public AmbiguousDocumentTypeFoundFromXmlDocumentException(OMElement doc, String errorCode) { + super(doc.getLocalName(), errorCode); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcher.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcher.java index eba30d008ee84b1c624d59c17bc8a5abc944a9e9..d0a2bc2e9eefc378da4e5469b11e4675323837f8 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcher.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcher.java @@ -1,123 +1,116 @@ -/* - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this - * file except in compliance with the License. You may obtain - * a copy of the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * - * The Original Code is Java RASP toolkit. - * - * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and - * Telecom Agency (http://www.itst.dk). All Rights Reserved. - */ - -package dk.gov.oiosi.xml.documenttype; - -import dk.gov.oiosi.communication.configuration.DocumentTypeCollectionConfig; -import dk.gov.oiosi.communication.configuration.DocumentTypeConfig; -import dk.gov.oiosi.configuration.ConfigurationException; -import dk.gov.oiosi.configuration.ConfigurationHandler; -import dk.gov.oiosi.exception.ArgumentNullException; -import dk.gov.oiosi.xml.XmlDocument; -import dk.gov.oiosi.xml.XmlException; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.ArrayList; -import java.util.List; - -/** - * Standard way to search for document types. - */ -public class DocumentTypeConfigSearcher { - - private Log log = LogFactory.getLog(DocumentTypeConfigSearcher.class); - - /** - * document types. - */ - private static DocumentTypeCollectionConfig documentTypeConfig; - - - /** - * Default constructor - * - * @throws ConfigurationException On error... - */ - public DocumentTypeConfigSearcher() throws ConfigurationException { - // getRaspDocumentTypeCollectionConfig() is synchronized (if not initialized, so no need doing it here. -// synchronized (DocumentTypeConfigSearcher.class) { - if (documentTypeConfig == null) { - documentTypeConfig = ConfigurationHandler.getInstance().getRaspDocumentTypeCollectionConfig(); - } -// } - } - - /** - * Searches the configuration handler for a document type that have the same name and namespace as the XML-document given with the - * parameter. - * - * @param document The document to examine. - * @return Returns a matching DocumentTypeConfig, or throws an exception if no match was found - * @throws NoDocumentTypeFoundFromXmlDocumentException On error... - * @throws SearchForDocumentTypeFromXmlDocumentFailedException On error... - */ - public DocumentTypeConfig findUniqueDocumentType(XmlDocument document) throws NoDocumentTypeFoundFromXmlDocumentException, - SearchForDocumentTypeFromXmlDocumentFailedException { - if (document == null) { - throw new ArgumentNullException("XmlDocument"); - } - - try { - DocumentTypeConfig documentType = tryFindUniqueDocumentType(document); - if (documentType == null) { - log.error("Document not registered in RaspConfiguration.xml: " + document.getOMDocument().getLocalName()); - throw new NoDocumentTypeFoundFromXmlDocumentException(document); - } - return documentType; - } catch (NoDocumentTypeFoundFromXmlDocumentException ex) { - throw ex; - } catch (Exception ex) { - throw new SearchForDocumentTypeFromXmlDocumentFailedException(document, ex); - } - } - - /** - * Tries to find the XML-document type from the XML-document. If none can be found it will return null, else the found type is returned. - * If more than one is found it throws an exception. - * - * @param document The XmlDocument to examine. - * @return null if not found or the DocumentTypeConfig if unique match exist - * @throws XmlException, AmbiguousDocumentTypeFoundFromXmlDocumentException - */ - public DocumentTypeConfig tryFindUniqueDocumentType(XmlDocument document) throws XmlException, AmbiguousDocumentTypeFoundFromXmlDocumentException { - if (document == null) { - throw new ArgumentNullException("document"); - } - - List matchedDocumentTypes = new ArrayList(); - for (DocumentTypeConfig config : documentTypeConfig.getDocumentTypesAsList()) { - if (config.isDocumentOfType(document)) { - matchedDocumentTypes.add(config); - } - } - - if (matchedDocumentTypes.size() > 1) { - throw new AmbiguousDocumentTypeFoundFromXmlDocumentException(document.getOMDocument()); - } - if (matchedDocumentTypes.size() < 1) { - return null; - } - return matchedDocumentTypes.get(0); - } - - public static void clearDocumentTypeConfig() { - documentTypeConfig = null; - } -} \ No newline at end of file +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this + * file except in compliance with the License. You may obtain + * a copy of the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an + * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express + * or implied. See the License for the specific language governing + * rights and limitations under the License. + * + * + * The Original Code is Java RASP toolkit. + * + * The Initial Developer of the Original Code is Lenio. Portions + * created by Lenio are Copyright (C) 2007 Danish National IT and + * Telecom Agency (http://www.itst.dk). All Rights Reserved. + */ + +package dk.gov.oiosi.xml.documenttype; + +import dk.gov.oiosi.communication.configuration.DocumentTypeCollectionConfig; +import dk.gov.oiosi.communication.configuration.DocumentTypeConfig; +import dk.gov.oiosi.configuration.ConfigurationException; +import dk.gov.oiosi.configuration.ConfigurationHandler; +import dk.gov.oiosi.exception.ArgumentNullException; +import dk.gov.oiosi.xml.XmlDocument; +import dk.gov.oiosi.xml.XmlException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.ArrayList; +import java.util.List; + +/** + * Standard way to search for document types. + */ +public class DocumentTypeConfigSearcher { + + private static DocumentTypeCollectionConfig documentTypeConfig; + private final Log log = LogFactory.getLog(DocumentTypeConfigSearcher.class); + + + /** + * Default constructor + * + * @throws ConfigurationException On error. + */ + public DocumentTypeConfigSearcher() throws ConfigurationException { + if (documentTypeConfig == null) { + documentTypeConfig = ConfigurationHandler.getInstance().getRaspDocumentTypeCollectionConfig(); + } + } + + public static void clearDocumentTypeConfig() { + documentTypeConfig = null; + } + + /** + * Searches the configuration handler for a document type that have the same name and namespace as the XML-document given with the + * parameter. + * + * @param document The document to examine. + * @return Returns a matching DocumentTypeConfig, or throws an exception if no match was found + * @throws NoDocumentTypeFoundFromXmlDocumentException On error. + * @throws SearchForDocumentTypeFromXmlDocumentFailedException On error. + */ + public DocumentTypeConfig findUniqueDocumentType(XmlDocument document) throws NoDocumentTypeFoundFromXmlDocumentException, + SearchForDocumentTypeFromXmlDocumentFailedException { + if (document == null) { + throw new ArgumentNullException("XmlDocument", "E-RSP15101"); + } + + try { + DocumentTypeConfig documentType = tryFindUniqueDocumentType(document); + if (documentType == null) { + log.error("E-RSP15102: Document not registered in RaspConfiguration.xml: " + document.getOMDocument().getLocalName()); + throw new NoDocumentTypeFoundFromXmlDocumentException(document, "E-RSP15102"); + } + return documentType; + } catch (NoDocumentTypeFoundFromXmlDocumentException ex) { + throw ex; + } catch (Exception ex) { + throw new SearchForDocumentTypeFromXmlDocumentFailedException(document, ex, "E-RSP15103"); + } + } + + /** + * Tries to find the XML-document type from the XML-document. If none can be found it will return null, else the found type is returned. + * If more than one is found it throws an exception. + * + * @param document The XmlDocument to examine. + * @return null if not found or the DocumentTypeConfig if unique match exist + * @throws XmlException, AmbiguousDocumentTypeFoundFromXmlDocumentException + */ + public DocumentTypeConfig tryFindUniqueDocumentType(XmlDocument document) throws XmlException, AmbiguousDocumentTypeFoundFromXmlDocumentException { + if (document == null) { + throw new ArgumentNullException("document", "E-RSP15101"); + } + + List matchedDocumentTypes = new ArrayList<>(); + for (DocumentTypeConfig config : documentTypeConfig.getDocumentTypesAsList()) { + if (config.isDocumentOfType(document)) { + matchedDocumentTypes.add(config); + } + } + + if (matchedDocumentTypes.size() > 1) { + throw new AmbiguousDocumentTypeFoundFromXmlDocumentException(document.getOMDocument(), "E-RSP15104"); + } + if (matchedDocumentTypes.isEmpty()) { + return null; + } + return matchedDocumentTypes.get(0); + } +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/NoDocumentTypeFoundFromXmlDocumentException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/NoDocumentTypeFoundFromXmlDocumentException.java index b28e7d715ae0df7dbc4c924cdcd8ce11040fd466..4dc20b4d9157a1d5c92dc6536160aad348e3799a 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/NoDocumentTypeFoundFromXmlDocumentException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/NoDocumentTypeFoundFromXmlDocumentException.java @@ -39,8 +39,8 @@ public class NoDocumentTypeFoundFromXmlDocumentException extends XmlException { * * @param xmlDocument The XML document */ - public NoDocumentTypeFoundFromXmlDocumentException(final XmlDocument xmlDocument) { - super("Document not registered in RaspConfiguration.xml: " + getDocumentName(xmlDocument)); + public NoDocumentTypeFoundFromXmlDocumentException(final XmlDocument xmlDocument, String errorCode) { + super(errorCode + ": Document not registered in RaspConfiguration.xml: " + getDocumentName(xmlDocument)); setReceiverError(false); setSoapFaultAction("UnknownDocumentTypeFault"); } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/SearchForDocumentTypeFromXmlDocumentFailedException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/SearchForDocumentTypeFromXmlDocumentFailedException.java index 7709d42d6ae23145316a8add6423951ea5dbfdec..6a33729cabbdfac09ad90f9c23a0db6e14eef0df 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/SearchForDocumentTypeFromXmlDocumentFailedException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/documenttype/SearchForDocumentTypeFromXmlDocumentFailedException.java @@ -34,14 +34,12 @@ public class SearchForDocumentTypeFromXmlDocumentFailedException extends XmlExce /** * Constructor. - * - * @param xmlDocument - * The xml document for which the search was performed - * @param innerException - * The inner exception + * + * @param xmlDocument The xml document for which the search was performed + * @param innerException The inner exception */ - public SearchForDocumentTypeFromXmlDocumentFailedException(final XmlDocument xmlDocument, final Exception innerException) { - super("Document type not found", innerException); + public SearchForDocumentTypeFromXmlDocumentFailedException(final XmlDocument xmlDocument, final Exception innerException, String errorCode) { + super("Document type not found", innerException, errorCode); setReceiverError(false); setSoapFaultAction("UnknownDocumentTypeFault"); } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationException.java index 74ac6f1949c2c7bcc505644719ea0295d825f973..ea135a487a7fb78a0f093a2af4d13b5d7edcfa9e 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationException.java @@ -37,12 +37,12 @@ public abstract class SchemaValidationException extends XmlException { super(message); } - /** - * Constructor with inner exception. - * - * @param exception inner exception of the thrown exception - */ - public SchemaValidationException(final Throwable exception) { - super(exception); - } -} \ No newline at end of file +// /** +// * Constructor with inner exception. +// * +// * @param exception inner exception of the thrown exception +// */ +// public SchemaValidationException(final Throwable exception) { +// super(exception); +// } +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationFailedException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationFailedException.java index 44a7fdf258bbd6687e1fb0ae0608ecb28eed5e81..d72109d050e3dab157dc39fa470408ccab05961c 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationFailedException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidationFailedException.java @@ -42,8 +42,8 @@ public class SchemaValidationFailedException extends SchemaValidationException { * @param document the schema * @param innerException inner exception of the thrown exception */ - public SchemaValidationFailedException(final XmlDocument document, final Exception innerException) { - super("Failed to validate document: " + innerException.getMessage()); + public SchemaValidationFailedException(final XmlDocument document, final Exception innerException, String errorCode) { + super(errorCode + ": Failed to validate document: " + innerException.getMessage()); setReceiverError(false); setSoapFaultAction(FAULT_ACTION); } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidator.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidator.java index e53dd6945c09315b2c34d58980e9edd37000a7f5..e18618dee22815c22eea7052a087607e74bf810c 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidator.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schema/SchemaValidator.java @@ -77,15 +77,15 @@ public class SchemaValidator { */ validator.validate(xmlDocument.getTransformationSource()); } catch (Exception e) { - log.error("Schema check failed: " + e.getMessage(), e); - throw new SchemaValidationFailedException(xmlDocument, e); + log.error("E-RSP15213: Schema check failed: " + e.getMessage(), e); + throw new SchemaValidationFailedException(xmlDocument, e, "E-RSP15211"); } } public void schemaValidateXmlDocument(XmlDocument xmlDocument, DocumentTypeConfig documentTypeConfig) throws SchemaValidationException { // Fail fast if possible. if (documentTypeConfig.getSchemaPath().isEmpty()) { - log.warn("No Schema configured for " + documentTypeConfig.getFriendlyName() + ", so bypass it."); + log.warn("W-RSP15214: No Schema configured for " + documentTypeConfig.getFriendlyName() + ", so bypass it."); return; } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToLoadSchematronStylesheetException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToLoadSchematronStylesheetException.java index e2e48b662a01e453343d24778d153cac3821180e..4200ea68d19ff10f0ecb74a9cee01302ffdf0f2c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToLoadSchematronStylesheetException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToLoadSchematronStylesheetException.java @@ -13,7 +13,7 @@ * The Original Code is Java RASP toolkit. * * The Initial Developer of the Original Code is Lenio. Portions - * created by Lenio are Copyright (C) 2007 Danish National IT and + * created by Lenio are Copyright (C) 2007 Danish National IT and * Telecom Agency (http://www.itst.dk). All Rights Reserved. */ @@ -22,29 +22,32 @@ package dk.gov.oiosi.xml.schematron; import dk.gov.oiosi.xml.XmlException; /** - * Exception thrown if the load of the schematron stylesheet fails. + * Exception thrown if the load of the schematron stylesheet fails. */ public class FailedToLoadSchematronStylesheetException extends XmlException { - private static final long serialVersionUID = 2L; - - private String schematronPath = ""; - - /** - * Constructor that takes the schematron stylesheet path used when attempting - * to load the stylesheet and the exception caught as inner exception. - * @param schematronPath - * @param innerException - */ - public FailedToLoadSchematronStylesheetException(String schematronPath, Exception innerException) { - super("Failed to load the schematron stylesheet, tried the following path: " + schematronPath, innerException); - this.schematronPath = schematronPath; - } - - /** - * Gets the schematron path used when the load failed. - * @return The schematron path - */ - public String getSchematronPath() { - return schematronPath; - } + + private static final long serialVersionUID = 2L; + + private String schematronPath = ""; + + /** + * Constructor that takes the schematron stylesheet path used when attempting + * to load the stylesheet and the exception caught as inner exception. + * + * @param schematronPath + * @param innerException + */ + public FailedToLoadSchematronStylesheetException(String schematronPath, Exception innerException, String errorCode) { + super("Failed to load the schematron stylesheet, tried the following path: " + schematronPath, innerException, errorCode); + this.schematronPath = schematronPath; + } + + /** + * Gets the schematron path used when the load failed. + * + * @return The schematron path + */ + public String getSchematronPath() { + return schematronPath; + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToTransformDocumentException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToTransformDocumentException.java index 446e1b983c4a5326bb3106009b1c4acceb93c6af..722babf91a4de346b115cf6d8834697c3cc10e7c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToTransformDocumentException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/FailedToTransformDocumentException.java @@ -25,7 +25,7 @@ public class FailedToTransformDocumentException extends XmlException { private static final long serialVersionUID = 5446668912286400079L; - public FailedToTransformDocumentException(Exception inner) { - super(inner); + public FailedToTransformDocumentException(Exception inner, String errorCode) { + super(inner, errorCode); } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronErrorException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronErrorException.java index f70c80ac7018b519e8be1612bef61a0c523b2788..e805de3c09a15c3a1ecc17acb2c18ff4276d44ee 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronErrorException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronErrorException.java @@ -22,65 +22,62 @@ package dk.gov.oiosi.xml.schematron; import dk.gov.oiosi.xml.XmlDocument; /** - * Exception thrown when the schematron validation of an xml document fails. + * Exception thrown when the schematron validation process is OK, but the document contains a schematron error. */ public class SchematronErrorException extends SchematronValidationException { - /** - * Default empty constructor - */ - public SchematronErrorException() { - super(); - } - - /** - * Constructor. - * - * @param message error message - * @param cause nested exception - */ - public SchematronErrorException(String message, Throwable cause) { - super(message, cause); - } - + /** + * serialVersionUID. + */ + private static final long serialVersionUID = 1L; /** - * Constructor. - * - * @param result - * The schematron result - * @param firstErrorMessage - * The first error message + * document holding the Schematron validation. */ - public SchematronErrorException(final XmlDocument result, final String firstErrorMessage) { - super(firstErrorMessage); + private XmlDocument schematronResult; - schematronResult = result; + + /** + * Default empty constructor + */ + public SchematronErrorException() { + super(); } /** * Constructor. - * - * @param e - * message + * + * @param message error message + * @param cause nested exception */ - public SchematronErrorException(final String e) { - super(e); + public SchematronErrorException(String message, Throwable cause, final String errorCode) { + super(message, cause, errorCode); } - + /** - * serialVersionUID. + * Constructor. + * + * @param result The schematron result + * @param firstErrorMessage The first error message */ - private static final long serialVersionUID = 1L; + public SchematronErrorException(final XmlDocument result, final String firstErrorMessage, final String errorCode) { + super(firstErrorMessage, errorCode); + + schematronResult = result; + } /** - * document holding the Schematron validation. + * Constructor. + * + * @param message message. */ - private XmlDocument schematronResult; + public SchematronErrorException(final String message, final String errorCode) { + super(message, errorCode); + } /** * Gets the schematron result. - * + * * @return document with schematron error */ public XmlDocument getSchematronResult() { diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronStore.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronStore.java index 8b5e715fc7826a4330734ec6515d2c435ce48877..6e3a2678559e6af39f9c94ba8215c7cfacfe1230 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronStore.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronStore.java @@ -49,7 +49,7 @@ public class SchematronStore { */ public Transformer getCompiledSchematron(String schematronPath) throws FailedToLoadSchematronStylesheetException { if (schematronPath == null) { - throw new ArgumentNullException("path"); + throw new ArgumentNullException("path", "E-RSP15301"); } Transformer compiledSchematron; @@ -69,7 +69,7 @@ public class SchematronStore { try { return UTILITY.precompiledStyleSheet(path); } catch (Exception ex) { - throw new FailedToLoadSchematronStylesheetException(path, ex); + throw new FailedToLoadSchematronStylesheetException(path, ex, "E-RSP15302 "); } } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfig.java index 222b91af1c27c7be742a656e4c22abdeee8dae2b..f30a67c276783ac99415890d362af65503f778bf 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfig.java @@ -75,20 +75,50 @@ public class SchematronValidationConfig { */ public SchematronValidationConfig(String schematronDocumentPath, String errorXPath, String errorMessageXPath) { if (schematronDocumentPath == null) { - throw new ArgumentNullException("schematronDocumentPath"); + throw new ArgumentNullException("schematronDocumentPath", "E-RSP15311"); } if (errorXPath == null) { - throw new ArgumentNullException("errorXPath"); + throw new ArgumentNullException("errorXPath", "E-RSP15312"); } if (errorMessageXPath == null) { - throw new ArgumentNullException("errorMessageXPath"); + throw new ArgumentNullException("errorMessageXPath", "E-RSP15313"); } setSchematronDocumentPath(schematronDocumentPath); - this.errorXPath = errorXPath; + setErrorXPath(errorXPath); this.errorMessageXPath = errorMessageXPath; rebuildConfig(); } + public static String modifyValueForUnitTests(String value) { + if (ConfigurationUtils.locate(value) == null) { + // In case of unit tests, try one level out. + if (ConfigurationUtils.locate("dk.gov.oiosi.library/" + value) != null) { + value = "dk.gov.oiosi.library/" + value; + } + } + return value; + } + + /** + * @return saxHandlerConfig by given values of errorXPath and errorMessageXPath. If one of them is not set or they are not supported, + * returns null and logs error message + * @since OIORASP 1.3.0 + */ + public static SchematronValidatorSAXHandlerConfig buildSAXHandlerConfig(String errorXPath, String errorMessageXPath) { + if (errorXPath == null || errorMessageXPath == null || errorXPath.length() == 0 || errorMessageXPath.length() == 0) { + return null; + } + try { + return SchematronValidatorSAXHandlerConfig.build(errorXPath, errorMessageXPath); + } catch (Exception e) { + log.warn("E-RSP15320: Failed to build SAXHandlerConfig for errorXPath [" + errorXPath + "], errorMessageXPath [" + errorMessageXPath + "] - schematron validation will execute non-optimized"); + /* + * If configuration is not supported by optimized way of schematron validation, use old way + */ + return null; + } + } + /** * Gets and sets the schematron document path. * @@ -105,7 +135,7 @@ public class SchematronValidationConfig { */ public void setSchematronDocumentPath(String value) { if (value == null || value.isEmpty()) { - throw new ArgumentNullException("SchematronDocumentPath.value is null or empty..."); + throw new ArgumentNullException("SchematronDocumentPath.value is null or empty...", "E-RSP15314"); } // TODO DLK: Try to find another way to allow unit tests to run. It is meaningless for PROD environment... @@ -113,16 +143,6 @@ public class SchematronValidationConfig { this.schematronDocumentPath = value; } - public static String modifyValueForUnitTests(String value) { - if (ConfigurationUtils.locate(value) == null) { - // In case of unit tests, try one level out. - if (ConfigurationUtils.locate("dk.gov.oiosi.library/" + value) != null) { - value = "dk.gov.oiosi.library/" + value; - } - } - return value; - } - /** * Gets and sets the XPath expression that gets the error results from the schematron result. * @@ -139,7 +159,7 @@ public class SchematronValidationConfig { */ public void setErrorXPath(String value) { if (value == null) { - throw new ArgumentNullException("ErrorXPath.value"); + throw new ArgumentNullException("ErrorXPath.value", "E-RSP15315"); } errorXPath = value; @@ -165,7 +185,7 @@ public class SchematronValidationConfig { */ public void setErrorMessageXPath(String value) { if (value == null) { - throw new ArgumentNullException("ErrorMessageXPath.value"); + throw new ArgumentNullException("ErrorMessageXPath.value", "E-RSP15316"); } errorMessageXPath = value; @@ -179,9 +199,9 @@ public class SchematronValidationConfig { * Gets the schematron document. The first time this method is called then the XML-document will be loaded from disc into memory. * * @return XML-document holding stylesheet - * @throws SchematronErrorException On error... + * @throws SchematronValidationFailedException On error. */ - public XmlDocument getSchematronDocument() throws SchematronErrorException { + public XmlDocument getSchematronDocument() throws SchematronValidationFailedException { synchronized (this) { if (schematronDocument == null) { loadSchematronDocument(); @@ -191,17 +211,17 @@ public class SchematronValidationConfig { } /** - * Load the schematron stylesheet from file + * Load the schematron stylesheet from file. * - * @throws SchematronErrorException On error... + * @throws SchematronValidationFailedException On error. */ - private void loadSchematronDocument() throws SchematronErrorException { + private void loadSchematronDocument() throws SchematronValidationFailedException { try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.load(schematronDocumentPath); schematronDocument = xmlDocument; } catch (Exception e) { - throw new SchematronErrorException("Failed to load schematron document:" + e.getMessage()); + throw new SchematronValidationFailedException("Failed to load schematron document:" + e.getMessage(), e, "E-RSP15317"); } } @@ -212,26 +232,6 @@ public class SchematronValidationConfig { setSaxHandlerConfig(buildSAXHandlerConfig(this.getErrorXPath(), this.getErrorMessageXPath())); } - /** - * @return saxHandlerConfig by given values of errorXPath and errorMessageXPath. If one of them is not set or they are not supported, - * returns null and logs error message - * @since OIORASP 1.3.0 - */ - public static SchematronValidatorSAXHandlerConfig buildSAXHandlerConfig(String errorXPath, String errorMessageXPath) { - if (errorXPath == null || errorMessageXPath == null || errorXPath.length() == 0 || errorMessageXPath.length() == 0) { - return null; - } - try { - return SchematronValidatorSAXHandlerConfig.build(errorXPath, errorMessageXPath); - } catch (Exception e) { - log.warn("Failed to build SAXHandlerConfig for errorXPath [" + errorXPath + "], errorMessageXPath [" + errorMessageXPath + "] - schematron validation will execute non-optimized"); - /* - * If configuration is not supported by optimized way of schematron validation, use old way - */ - return null; - } - } - /** * @return Configuration for SchematronValidatorSAXUtil * @since OIORASP 1.3.0 @@ -259,4 +259,4 @@ public class SchematronValidationConfig { ", saxHandlerConfig=" + saxHandlerConfig + '}'; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationException.java index 5abdca2f93795852610a545c38a212d08d67d7fb..1f562226fc4e2b2c4a51bb614b5d881b74f744f2 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationException.java @@ -25,9 +25,10 @@ import dk.gov.oiosi.xml.XmlException; * Abstract schematron validation exception. */ public abstract class SchematronValidationException extends XmlException { - private static final long serialVersionUID = 2L; - /** + private static final long serialVersionUID = 2L; + + /** * Base constructor. */ public SchematronValidationException() { @@ -36,32 +37,29 @@ public abstract class SchematronValidationException extends XmlException { /** * Base constructor. - * + * * @param e message */ - public SchematronValidationException(final String e) { - super(e); + public SchematronValidationException(final String e, final String errorCode) { + super(e, errorCode); } /** * Constructor with inner exception. - * - * @param innerException - * innerexception of the thrown exception + * + * @param innerException inner exception of the thrown exception. */ public SchematronValidationException(final Throwable innerException) { - super(innerException); + super(innerException, ""); } - + /** * Constructor with cause exception and error message. - * - * @param message error message - * @param innerException - * innerexception of the thrown exception + * + * @param message error message. + * @param innerException inner exception of the thrown exception. */ - public SchematronValidationException(final String message, final Throwable innerException) { - super(message, innerException); + public SchematronValidationException(final String message, final Throwable innerException, final String errorCode) { + super(message, innerException, errorCode); } - } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationFailedException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationFailedException.java index 03e4ffe149c475f8f51723af379549fdad16391f..890a0eff6febc95ae587b3f45d41bb1e8ed9744a 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationFailedException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidationFailedException.java @@ -19,51 +19,39 @@ package dk.gov.oiosi.xml.schematron; -import dk.gov.oiosi.xml.XmlDocument; - /** - * Custom exception used when schematron validation fails. + * Custom exception used when schematron validation process fails (technically). + *

+ * If the process is OK, but a schematron error (content wise) is found, a {@link SchematronErrorException} is thrown. */ public class SchematronValidationFailedException extends SchematronValidationException { + public static final String FAULT_ACTION = "SchematronValidationFault"; + /** * serialVersionUID. */ private static final long serialVersionUID = 2L; /** - * Soap fault sub type / RASP fault action. - */ - public static final String FAULT_ACTION = "SchematronValidationFault"; - - /** - * Constructor. + * Constructor with cause exception and error message. * - * @param document the current document - * @param innerException inner exception of the thrown exception + * @param reason Error reason. */ - @Deprecated - public SchematronValidationFailedException(final XmlDocument document, final Exception innerException) { - super("Failed to Schematron validate document: " + innerException.getMessage()); - setReceiverError(false); - setSoapFaultAction(FAULT_ACTION); - } - - @Deprecated - public SchematronValidationFailedException(final String reason) { - super(reason); + public SchematronValidationFailedException(final String reason, final String errorCode) { + super(reason, errorCode); setReceiverError(false); setSoapFaultAction(FAULT_ACTION); } /** - * Constructor with cause exception and error message + * Constructor with cause exception and error message. * - * @param reason + * @param reason Error reason. */ - public SchematronValidationFailedException(final String reason, final Exception cause) { - super(reason, cause); + public SchematronValidationFailedException(final String reason, final Exception cause, final String errorCode) { + super(reason, cause, errorCode); setReceiverError(false); setSoapFaultAction(FAULT_ACTION); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidator.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidator.java index 63e072b9dd6f196c7585363e2684b66c3f7aad0b..8e3791f57cbafdeced8f536e5fed0623da7c1afd 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidator.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/SchematronValidator.java @@ -85,7 +85,7 @@ public class SchematronValidator { * @param config configuration * @throws SchematronErrorException On error... */ - public SchematronValidator(SchematronValidationConfig config) throws SchematronErrorException { + public SchematronValidator(SchematronValidationConfig config) throws SchematronErrorException, SchematronValidationFailedException { this(); this.errorXPath = config.getErrorXPath(); this.errorMessageXPath = config.getErrorMessageXPath(); @@ -101,7 +101,7 @@ public class SchematronValidator { */ public void schematronValidateXmlDocument(XmlDocument xmlDocument) throws XmlException { if (schematronDocument == null) { - throw new ArgumentNullException("No schematron document is set"); + throw new ArgumentNullException("No schematron document is set", "E-RSP15321"); } schematronValidateXmlDocument(xmlDocument, schematronDocument); } @@ -159,7 +159,7 @@ public class SchematronValidator { try { result = XSLT_UTILITY.transformXml(document, preCompiledSchematronStylesheet); } catch (Exception e) { - throw new FailedToTransformDocumentException(e); + throw new FailedToTransformDocumentException(e, "E-RSP15324"); } validateResult(result); return; @@ -172,7 +172,7 @@ public class SchematronValidator { boolean hasAnyErrors = DocumentXPathResolver.hasAnyElementsByXpath(result, errorXPath, prefixedNamespaces); if (hasAnyErrors) { String firstErrorMessage = DocumentXPathResolver.getFirstElementValueByXPath(result, errorMessageXPath, prefixedNamespaces); - throw new SchematronErrorException(result, firstErrorMessage); + throw new SchematronErrorException(result, firstErrorMessage.trim(), "E-RSP15325"); } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXException.java index 9bff86f7a53ed0794e6aef3973a077f5842433a2..5df8a2ef87806e37eb64b32328b3418c26ae46ce 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXException.java @@ -4,19 +4,18 @@ import org.xml.sax.SAXException; /** * Special exception to distinguish between invalid XML structure of the parsed - * document and resolved schematron error message.
- * - * As a message it contains first found error description.
+ * document and resolved schematron error message. + *

+ * As a message it contains first found error description. * * @author Dmitriy Lapko, TrueLink A/S * @since OIORASP 1.3.0 */ public class SchematronValidatorSAXException extends SAXException { - private static final long serialVersionUID = 1427595072051807613L; - - public SchematronValidatorSAXException(String message) { - super(message); - } + private static final long serialVersionUID = 1427595072051807613L; + public SchematronValidatorSAXException(String message) { + super(message); + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandler.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandler.java index fb9b578be7cf4a7fee2c8710d0eaa2382b6c9d5d..8b30f2a37c17401f2ccf6e2c7d1caf4831c07f7d 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandler.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandler.java @@ -1,6 +1,6 @@ package dk.gov.oiosi.xml.schematron.sax; -import dk.gov.oiosi.xml.schematron.SchematronErrorException; +import dk.gov.oiosi.xml.schematron.SchematronValidationFailedException; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -9,13 +9,12 @@ import java.io.Serializable; /** * OIORASP schematron-specific implementation of SAX ContentHandler.
- * - * Main goal - prevent transformation of the whole document when first error is - * found.
- * + *

+ * Main goal: Prevent transformation of the whole document when first error is found. + *

* Implements SAX XPath processing, throws {@link SchematronValidatorSAXException} when * first matched tag defined by errorMessageXPath is closed.
- * + *

* It is supposed to be used only via {@link SchematronValidatorSAXUtil}.
* * @author Dmitriy Lapko, TrueLink A/S @@ -23,130 +22,124 @@ import java.io.Serializable; */ public class SchematronValidatorSAXHandler extends DefaultHandler implements Serializable { - private static final long serialVersionUID = -4973065739708054681L; - - /* - * Number of visited tags in tagList - */ - private int tagListMatchIndex; - - /* - * Number of parents of current tag - */ - private int depth; - /* - * Collects data from all calls of characters() and ignorableWhitespace() - * when errorMessageTagActual is true - */ - private StringBuilder errorMessageResult; - - /* - * true when all tagList was visited and start of errorMessageTag found - */ - private boolean errorMessageTagFound; - - /* - * true when startElement method was called with tag equal to - * errorMessageTag and corresponding endElement not yet called - */ - private boolean errorMessageTagActual; - - /* - * To avoid collecting characters inside nested tags of errorMessageTag, - * let's calculate opened/closed tags inside it. If it is 0, we - */ - private int errorMessageTagRelativeDepth = -1; - - private final SchematronValidatorSAXHandlerConfig config; - - /** - * Reduces visibility of this class by making its constructor protected. - * - * This class is supposed to be used only via {@link SchematronValidatorSAXUtil}. - * - * @param config configuration for handler - * @throws SchematronErrorException - */ - protected SchematronValidatorSAXHandler(SchematronValidatorSAXHandlerConfig config) throws SchematronErrorException { - if (config == null) { - throw new SchematronErrorException("SchematronValidatorSAXHandler was called with null config object"); - } - this.config = config; - } - - @Override - public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { - if (!errorMessageTagFound) { - if (tagListMatchIndex == depth && tagListMatchIndex < config.getTagList().length) { - if (qName.equals(config.getTagList()[tagListMatchIndex])) { - tagListMatchIndex++; - } - } - } - depth++; - if (tagListMatchIndex == config.getTagList().length && depth == (config.getTagList().length + 1)) { - /* - * We are at the end of tag list, let's check if current tag matches errorMessageTag - */ - if (config.getErrorMessageTag().equals(qName)) { - errorMessageTagFound = true; - errorMessageTagActual = true; - errorMessageTagRelativeDepth = 0; - } - } - if (errorMessageTagFound) { - if (errorMessageTagActual) { - if (!qName.equals(config.getErrorMessageTag())) { - errorMessageTagActual = false; - errorMessageTagRelativeDepth++; - } - } else { - errorMessageTagRelativeDepth++; - } - } - } - - @Override - public void endElement(String uri, String localName, String qName) throws SAXException { - if (errorMessageTagFound && errorMessageTagActual) { - if (depth == (config.getTagList().length + 1)) { - String message = ""; - if (errorMessageResult != null) { - message = errorMessageResult.toString(); - } - throw new SchematronValidatorSAXException(message); - } - } - depth--; - if (errorMessageTagFound) { - if (!errorMessageTagActual) { - errorMessageTagRelativeDepth--; - if (errorMessageTagRelativeDepth == 0) { - errorMessageTagActual = true; - } - } - } - if (depth < tagListMatchIndex && tagListMatchIndex > 0) { - tagListMatchIndex--; - } - } - - @Override - public void characters(char[] ch, int start, int length) throws SAXException { - appendErrorMessageResult(ch, start, length); - } - - @Override - public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { - appendErrorMessageResult(ch, start, length); - } - - protected void appendErrorMessageResult(char[] ch, int start, int length) { - if (errorMessageTagActual) { - if (errorMessageResult == null) { - errorMessageResult = new StringBuilder(length); - } - errorMessageResult.append(ch, start, length); - } - } -} \ No newline at end of file + private static final long serialVersionUID = -4973065739708054681L; + private final SchematronValidatorSAXHandlerConfig config; + /* + * Number of visited tags in tagList + */ + private int tagListMatchIndex; + /* + * Number of parents of current tag + */ + private int depth; + /* + * Collects data from all calls of characters() and ignorableWhitespace() + * when errorMessageTagActual is true + */ + private StringBuilder errorMessageResult; + /* + * true when all tagList was visited and start of errorMessageTag found + */ + private boolean errorMessageTagFound; + /* + * true when startElement method was called with tag equal to + * errorMessageTag and corresponding endElement not yet called + */ + private boolean errorMessageTagActual; + /* + * To avoid collecting characters inside nested tags of errorMessageTag, + * let's calculate opened/closed tags inside it. If it is 0, we + */ + private int errorMessageTagRelativeDepth = -1; + + /** + * Reduces visibility of this class by making its constructor protected. + *

+ * This class is supposed to be used only via {@link SchematronValidatorSAXUtil}. + * + * @param config configuration for handler + * @throws SchematronValidationFailedException + */ + protected SchematronValidatorSAXHandler(SchematronValidatorSAXHandlerConfig config) throws SchematronValidationFailedException { + if (config == null) { + throw new SchematronValidationFailedException("SchematronValidatorSAXHandler was called with null config object", "E-RSP15326"); + } + this.config = config; + } + + @Override + public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { + if (!errorMessageTagFound) { + if (tagListMatchIndex == depth && tagListMatchIndex < config.getTagList().length) { + if (qName.equals(config.getTagList()[tagListMatchIndex])) { + tagListMatchIndex++; + } + } + } + depth++; + if (tagListMatchIndex == config.getTagList().length && depth == (config.getTagList().length + 1)) { + /* + * We are at the end of tag list, let's check if current tag matches errorMessageTag + */ + if (config.getErrorMessageTag().equals(qName)) { + errorMessageTagFound = true; + errorMessageTagActual = true; + errorMessageTagRelativeDepth = 0; + } + } + if (errorMessageTagFound) { + if (errorMessageTagActual) { + if (!qName.equals(config.getErrorMessageTag())) { + errorMessageTagActual = false; + errorMessageTagRelativeDepth++; + } + } else { + errorMessageTagRelativeDepth++; + } + } + } + + @Override + public void endElement(String uri, String localName, String qName) throws SAXException { + if (errorMessageTagFound && errorMessageTagActual) { + if (depth == (config.getTagList().length + 1)) { + String message = ""; + if (errorMessageResult != null) { + message = errorMessageResult.toString(); + } + throw new SchematronValidatorSAXException("E-RSP15325: " + message.trim()); + } + } + depth--; + if (errorMessageTagFound) { + if (!errorMessageTagActual) { + errorMessageTagRelativeDepth--; + if (errorMessageTagRelativeDepth == 0) { + errorMessageTagActual = true; + } + } + } + if (depth < tagListMatchIndex && tagListMatchIndex > 0) { + tagListMatchIndex--; + } + } + + @Override + public void characters(char[] ch, int start, int length) throws SAXException { + appendErrorMessageResult(ch, start, length); + } + + @Override + public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { + appendErrorMessageResult(ch, start, length); + } + + protected void appendErrorMessageResult(char[] ch, int start, int length) { + if (errorMessageTagActual) { + if (errorMessageResult == null) { + errorMessageResult = new StringBuilder(length); + } + errorMessageResult.append(ch, start, length); + } + } +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfig.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfig.java index 6ef607132b37a1ee0077a99c4df83767837b1c1a..3fc6b763938fcc02f48e6c60d053467d23241c4c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfig.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfig.java @@ -1,14 +1,14 @@ package dk.gov.oiosi.xml.schematron.sax; -import dk.gov.oiosi.xml.schematron.SchematronErrorException; +import dk.gov.oiosi.xml.schematron.SchematronValidationFailedException; import java.io.Serializable; import java.util.Arrays; /** - * Contains configuration for SchematronValidatorSAXHandler basing on given errorXPath and errorMessageXPath values.
+ * Contains configuration for SchematronValidatorSAXHandler basing on given errorXPath and errorMessageXPath values. *

- * Parses and validates given pair of XPath to be compatible with {@link SchematronValidatorSAXHandler} implementation.
+ * Parses and validates given pair of XPath to be compatible with {@link SchematronValidatorSAXHandler} implementation. *

* Parsing of these XPath values is separated from {@link SchematronValidatorSAXHandler} to be able to cache it and do parsing/validation. * @@ -33,11 +33,11 @@ public class SchematronValidatorSAXHandlerConfig implements Serializable { * @param errorXPath Very simple XPath, which is actually just list of. * @param errorMessageXPath xPath where the error message is found. * @return SchematronValidatorSAXHandlerConfig - * @throws SchematronErrorException + * @throws SchematronValidationFailedException Exception thrown on process error on execution of the validation. */ - public static SchematronValidatorSAXHandlerConfig build(String errorXPath, String errorMessageXPath) throws SchematronErrorException { + public static SchematronValidatorSAXHandlerConfig build(String errorXPath, String errorMessageXPath) throws SchematronValidationFailedException { if (errorXPath == null || errorMessageXPath == null) { - throw new SchematronErrorException("One of errorXPath or errorMessageXPath is null: errorXPath=" + errorXPath + ", errorMessageXPath = " + errorMessageXPath); + throw new SchematronValidationFailedException("One of errorXPath or errorMessageXPath is null: errorXPath=" + errorXPath + ", errorMessageXPath = " + errorMessageXPath, "E-RSP15328"); } String[] tagListLocal; String errorMessageTagLocal; @@ -55,13 +55,13 @@ public class SchematronValidatorSAXHandlerConfig implements Serializable { errorMessageTagLocal = errorMessageTagLocal.substring(1); } } else { - throw new SchematronErrorException("Current version of SchematronValidatorSAXHandler does not support this combination of errorXPath and errorMessageXPath: errorXPath=" + errorXPath + ", errorMessageXPath = " + errorMessageXPath); + throw new SchematronValidationFailedException("Current version of SchematronValidatorSAXHandler does not support this combination of errorXPath and errorMessageXPath: errorXPath=" + errorXPath + ", errorMessageXPath = " + errorMessageXPath, "E-RSP15328"); } } return new SchematronValidatorSAXHandlerConfig(tagListLocal, errorMessageTagLocal); } - private static String[] splitXPathToTags(String simpleXPath) throws SchematronErrorException { + private static String[] splitXPathToTags(String simpleXPath) throws SchematronValidationFailedException { String line = simpleXPath; if (line.startsWith("/")) { line = line.substring(1); @@ -69,12 +69,12 @@ public class SchematronValidatorSAXHandlerConfig implements Serializable { if (line.endsWith("/")) { line = line.substring(0, line.length() - 1); } - String tagList[] = line.split("/"); + String[] tagList = line.split("/"); for (int i = 0; i < tagList.length; i++) { tagList[i] = tagList[i].trim(); if (!isOneWordString(tagList[i])) { - throw new SchematronErrorException("XPath for SchematronValidatorSAXHandler should contain only list of tags delimited with slash, no XPath functions or selectors are supported. But in XPath '" + simpleXPath + "' part '" + tagList[i] + "' was found"); + throw new SchematronValidationFailedException("XPath for SchematronValidatorSAXHandler should contain only list of tags delimited with slash, no XPath functions or selectors are supported. But in XPath '" + simpleXPath + "' part '" + tagList[i] + "' was found", "E-RSP15328"); } } return tagList; @@ -89,9 +89,9 @@ public class SchematronValidatorSAXHandlerConfig implements Serializable { if (!t.isEmpty()) { /* * From Pattern javadoc: - * - * \w A word character: [a-zA-Z_0-9] - */ + * + * \w A word character: [a-zA-Z_0-9] + */ return t.matches("[-\\w:]+"); } } @@ -118,4 +118,4 @@ public class SchematronValidatorSAXHandlerConfig implements Serializable { final int maxLen = 10; return "SchematronValidatorSAXHandlerConfig [tagList=" + (tagList != null ? Arrays.asList(tagList).subList(0, Math.min(tagList.length, maxLen)) : null) + ", errorMessageTag=" + errorMessageTag + "]"; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtil.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtil.java index 5d18eb28a937dd317e275c26255d7bffb1b8e240..80061d3b22914a473de002fdcf75b8f6c74b613c 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtil.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtil.java @@ -34,7 +34,7 @@ public class SchematronValidatorSAXUtil { * @param xmlSource Source for xml document to process * @param transformer Transformer to apply * @param config configuration object - * @throws XmlException + * @throws XmlException On error. */ public static void schematronValidateXmlDocument(Source xmlSource, Transformer transformer, SchematronValidatorSAXHandlerConfig config) throws XmlException { if (config != null) { @@ -42,14 +42,15 @@ public class SchematronValidatorSAXUtil { SchematronValidatorSAXHandler contentHandler = new SchematronValidatorSAXHandler(config); transformer.setErrorListener(ERROR_LISTENER); transformer.transform(xmlSource, new SAXResult(contentHandler)); - } catch (Exception e) { - if (e instanceof TransformerException) { - if (e.getCause() != null && e.getCause() instanceof SchematronValidatorSAXException) { - SchematronValidatorSAXException s = (SchematronValidatorSAXException) e.getCause(); - throw new SchematronErrorException(s.getMessage()); - } + } catch (TransformerException e) { + if (e.getCause() instanceof SchematronValidatorSAXException) { + SchematronValidatorSAXException s = (SchematronValidatorSAXException) e.getCause(); + // Special case, where the SchematronValidatorSAXException is translated into a SchematronErrorException, so DO NOT add a new error number: + throw new SchematronErrorException(s.getMessage(), s, ""); } - throw new SchematronValidationFailedException(e.getMessage(), e); + throw new SchematronValidationFailedException(e.getMessage(), e, "E-RSP15332"); + } catch (Exception e) { + throw new SchematronValidationFailedException(e.getMessage(), e, "E-RSP15332"); } } } @@ -59,6 +60,7 @@ public class SchematronValidatorSAXUtil { * about SchematronValidatorSAXException with resolved error description. */ private static class FailoverErrorListener implements ErrorListener { + @Override public void warning(TransformerException exception) throws TransformerException { // Ignore warnings diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/DocumentXPathResolver.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/DocumentXPathResolver.java index f170a907bde6ec19b912a6ced7d1465ccbaaa82e..78760f7535414979305e5859e4833b1f6d46470c 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/DocumentXPathResolver.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/DocumentXPathResolver.java @@ -45,6 +45,12 @@ public class DocumentXPathResolver { private static final Log log = LogFactory.getLog(DocumentXPathResolver.class); + /** + * Hide public constructor. + */ + private DocumentXPathResolver() { + } + /** * Returns whether the given xpath yields any results. * @@ -52,7 +58,6 @@ public class DocumentXPathResolver { * @param xpath xpath * @param prefixedNamespaces namespaces * @return has result - * @throws XmlException */ public static boolean hasAnyElementsByXpath(XmlDocument xmlDocument, String xpath, PrefixedNamespace[] prefixedNamespaces) throws XmlException { checkParameters(xmlDocument, xpath, prefixedNamespaces); @@ -72,7 +77,6 @@ public class DocumentXPathResolver { * @param xpath The xpath expression to apply * @param prefixedNamespaces A list of namespace-prefixes used in the xpath expression * @return Returns the value from the xpath - * @throws XmlException */ public static String getElementValueByXpath(XmlDocument xmlDocument, String xpath, PrefixedNamespace[] prefixedNamespaces) throws XmlException { if (xpath == null || xpath.trim().isEmpty()) { @@ -86,9 +90,9 @@ public class DocumentXPathResolver { // Check whether the constraints are followed int nodesCount = nodes.size(); if (nodesCount < 1) { - throw new NoXPathResultsException(xpath); + throw new NoXPathResultsException(xpath, "E-RSP15401"); } else if (nodesCount > 1) { - throw new TooManyXpathResultsException(xpath, nodesCount); + throw new TooManyXpathResultsException(xpath, nodesCount, "E-RSP15402"); } // Return result based on type @@ -111,7 +115,7 @@ public class DocumentXPathResolver { String value = tryGetFirstElementValueByXPath(xmlDocument, xpath, prefixedNamespaces); if (value == null) { - throw new NoXPathResultsException(xpath); + throw new NoXPathResultsException(xpath, "E-RSP15401"); } return value; } @@ -177,17 +181,17 @@ public class DocumentXPathResolver { */ private static void checkParameters(XmlDocument xmlDocument, String xpath, PrefixedNamespace[] prefixedNamespaces) { if (xpath == null) { - throw new NullOrEmptyArgumentException("xpath"); + throw new NullOrEmptyArgumentException("E-RSP15403: xpath is null or empty"); } if (xmlDocument == null) { - throw new ArgumentNullException("xmlDocument"); + throw new ArgumentNullException("xmlDocument", "E-RSP15404"); } if (prefixedNamespaces == null) { - throw new ArgumentNullException("prefixedNamespaces"); + throw new ArgumentNullException("prefixedNamespaces", "E-RSP15405"); } if (xpath.trim().length() <= 1) { if (!".".equals(xpath) && !"/".equals(xpath)) { - throw new XPathSizeTooSmallException(xpath); + throw new XPathSizeTooSmallException("E-RSP15406: " + xpath); } } } @@ -199,7 +203,7 @@ public class DocumentXPathResolver { * @param xpath xpath * @param prefixedNamespaces namespaces * @return list of nodes - * @throws XmlException + * @throws XmlException On error. */ private static List getNodes(XmlDocument xmlDocument, String xpath, PrefixedNamespace[] prefixedNamespaces) throws XmlException { AXIOMXPath xpathExpression; @@ -210,7 +214,7 @@ public class DocumentXPathResolver { } return xpathExpression.selectNodes(xmlDocument.getOMDocument()); } catch (Exception e) { - throw new XmlException("Failed to perform Xpath search " + xpath + ": " + e.getMessage(), e); + throw new XmlException("Failed to perform Xpath search " + xpath + ": " + e.getMessage(), e, "E-RSP15407"); } } @@ -220,13 +224,13 @@ public class DocumentXPathResolver { * To avoid this, let's use relative XPath, which start from given node. *

* For this purpose, we need to delete first part of XPath expression, assuming that all passed expressions to this method are very - * simple * + * simple. * * @param xmlDocument * @param xpath * @param prefixedNamespaces * @return list of nodes - * @throws XmlException + * @throws XmlException On error. */ /* * TODO DLK: Integrate it into getNodes @@ -239,9 +243,9 @@ public class DocumentXPathResolver { } /* * If given XPath starts with '/', it means that it is not relative. - * Replace it (by removing first search predicate) with corresponding - * relative XPath - */ + * Replace it (by removing first search predicate) with corresponding + * relative XPath + */ String xpathToUse = xpath.trim(); int firstSlashIndex = xpathToUse.indexOf('/'); if (firstSlashIndex >= 0 && firstSlashIndex + 1 < xpathToUse.length()) { @@ -262,9 +266,9 @@ public class DocumentXPathResolver { List nList = xpathExpression.selectNodes(xmlDocument.getOMDocument()); /* * dlk, 2012.02.28 - * + * * By some reasons, xpath selector can return list with null if case nothing is found - * + * * TODO DLK: Find out why it can happen */ if (nList.size() == 1 && nList.get(0) == null) { @@ -275,7 +279,7 @@ public class DocumentXPathResolver { } return nList; } catch (Exception e) { - throw new XmlException("Failed to perform Xpath search " + xpath + " (replaced with " + xpathToUse + "): " + e.getMessage(), e); + throw new XmlException("Failed to perform Xpath search " + xpath + " (replaced with " + xpathToUse + "): " + e.getMessage(), e, "E-RSP15408"); } } @@ -289,10 +293,10 @@ public class DocumentXPathResolver { private static String getValue(Object object) { /* * dlk, 2012-04-05 - * - * If null object is returned, do not throw an exception, as it can be - * normal situation for relative XPath search via NamedXPath - */ + * + * If null object is returned, do not throw an exception, as it can be + * normal situation for relative XPath search via NamedXPath + */ if (object == null) { return null; } @@ -309,6 +313,6 @@ public class DocumentXPathResolver { } // for now only elements and attributes are searched in Rasp - throw new RaspLibraryException("Unknown Type: " + object.getClass()); + throw new RaspLibraryException("E-RSP15409: Unknown Type: " + object.getClass()); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NamedOMDocumentNavigator.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NamedOMDocumentNavigator.java index b6f9136f7388b6025355b04f0dc1ed9df2eb91ec..0160a4ebecc752ee31a9f7c0dcf99eef1792af9a 100644 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NamedOMDocumentNavigator.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NamedOMDocumentNavigator.java @@ -15,52 +15,50 @@ import java.util.Iterator; /** * This class extends standard DocumentNavigator with NamedAccessNavigator * implementations, which is more efficient for AXIOM model, - * + *

* as it can call getFirstChildWithName at give node instead of searching for * all potential matches. This navigator should be used in case if AXIOM * document is not built to avoid its building during XPath calculation. * - * @author Dmitriy Lapko, TrueLink A/S * @since OIORASP 1.3.0 */ public class NamedOMDocumentNavigator extends DocumentNavigator implements NamedAccessNavigator { - private static final long serialVersionUID = 1690535293994714808L; - - @Override - public Iterator getChildAxisIterator(Object contextNode, String localName, String namespacePrefix, String namespaceURI) throws UnsupportedAxisException { - if (contextNode == null) { - return JaxenConstants.EMPTY_ITERATOR; - } - OMElement contextElement; - if (contextNode instanceof OMDocument) { - contextElement = ((OMDocument) contextNode).getOMDocumentElement(); - } else if (contextNode instanceof OMElement) { - contextElement = (OMElement) contextNode; - } else { - throw new UnsupportedAxisException("Unsupported contextNode type: " + contextNode.getClass()); - } - QName qname = new QName(namespaceURI, localName, namespacePrefix); - OMElement firstChildWithName = contextElement.getFirstChildWithName(qname); - return new ArrayIterator(new OMElement[] { firstChildWithName }); - } + private static final long serialVersionUID = 1690535293994714808L; - @Override - public Iterator getAttributeAxisIterator(Object contextNode, String localName, String namespacePrefix, String namespaceURI) throws UnsupportedAxisException { - if (contextNode == null) { - return JaxenConstants.EMPTY_ITERATOR; - } - OMElement contextElement; - if (contextNode instanceof OMDocument) { - contextElement = ((OMDocument) contextNode).getOMDocumentElement(); - } else if (contextNode instanceof OMElement) { - contextElement = (OMElement) contextNode; - } else { - throw new UnsupportedAxisException("Unsupported contextNode type: " + contextNode.getClass()); - } - QName qname = new QName(namespaceURI, localName, namespacePrefix); - OMAttribute attribute = contextElement.getAttribute(qname); - return new ArrayIterator(new OMAttribute[] { attribute }); - } + @Override + public Iterator getChildAxisIterator(Object contextNode, String localName, String namespacePrefix, String namespaceURI) throws UnsupportedAxisException { + if (contextNode == null) { + return JaxenConstants.EMPTY_ITERATOR; + } + OMElement contextElement; + if (contextNode instanceof OMDocument) { + contextElement = ((OMDocument) contextNode).getOMDocumentElement(); + } else if (contextNode instanceof OMElement) { + contextElement = (OMElement) contextNode; + } else { + throw new UnsupportedAxisException("E-RSP15411: Unsupported contextNode type: " + contextNode.getClass()); + } + QName qname = new QName(namespaceURI, localName, namespacePrefix); + OMElement firstChildWithName = contextElement.getFirstChildWithName(qname); + return new ArrayIterator(new OMElement[]{firstChildWithName}); + } + @Override + public Iterator getAttributeAxisIterator(Object contextNode, String localName, String namespacePrefix, String namespaceURI) throws UnsupportedAxisException { + if (contextNode == null) { + return JaxenConstants.EMPTY_ITERATOR; + } + OMElement contextElement; + if (contextNode instanceof OMDocument) { + contextElement = ((OMDocument) contextNode).getOMDocumentElement(); + } else if (contextNode instanceof OMElement) { + contextElement = (OMElement) contextNode; + } else { + throw new UnsupportedAxisException("E-RSP15411: Unsupported contextNode type: " + contextNode.getClass()); + } + QName qname = new QName(namespaceURI, localName, namespacePrefix); + OMAttribute attribute = contextElement.getAttribute(qname); + return new ArrayIterator(new OMAttribute[]{attribute}); + } } diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NoXPathResultsException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NoXPathResultsException.java index c00a0baf80fa545deef66239645c5f850405b340..e372a7a6b62182717b247a0b28e5e0fbe466d815 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NoXPathResultsException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/NoXPathResultsException.java @@ -36,7 +36,7 @@ public class NoXPathResultsException extends XmlException { * * @param xpath xpath used */ - public NoXPathResultsException(final String xpath) { - super("No result from xpath expresson: " + xpath); + public NoXPathResultsException(final String xpath, final String errorCode) { + super(errorCode + ": No result from xpath expresson: " + xpath); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/TooManyXpathResultsException.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/TooManyXpathResultsException.java index f110aa5923bf8069e63fd60478674d5484c99b6a..e5611cde38168729b2e44edc8d0678173d40b500 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/TooManyXpathResultsException.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/TooManyXpathResultsException.java @@ -34,7 +34,7 @@ public class TooManyXpathResultsException extends XmlException { * @param xpath the used xpath * @param count number of results */ - public TooManyXpathResultsException(final String xpath, final int count) { - super("xpath expression resulted in unexpected number of results: " + xpath + " : " + count); + public TooManyXpathResultsException(final String xpath, final int count, final String errorCode) { + super(errorCode + ": xpath expression resulted in unexpected number of results: " + xpath + " : " + count); } } \ No newline at end of file diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/discriminator/XPathDiscriminatorConfigCollection.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/discriminator/XPathDiscriminatorConfigCollection.java index 0a51ac3937f072ca7dfe0bcf3fd20f502fdbd7bd..b4cc2ed147a56f51aba7df56dee4102102998eea 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/discriminator/XPathDiscriminatorConfigCollection.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xpath/discriminator/XPathDiscriminatorConfigCollection.java @@ -46,8 +46,7 @@ public final class XPathDiscriminatorConfigCollection { * @return array of XPathDiscriminatorConfig */ public XPathDiscriminatorConfig[] getXPathDiscriminatorConfigs() { - return xpathDiscriminatorConfigs - .toArray(new XPathDiscriminatorConfig[xpathDiscriminatorConfigs.size()]); + return xpathDiscriminatorConfigs.toArray(new XPathDiscriminatorConfig[0]); } /** @@ -102,4 +101,4 @@ public final class XPathDiscriminatorConfigCollection { } return true; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xslt/XsltUtility.java b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xslt/XsltUtility.java index cdb9f473ac16998430cce9e03904c864506185bf..adbb53a23e374a38af66c72a9ff525e34c209561 100755 --- a/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xslt/XsltUtility.java +++ b/dk.gov.oiosi.library/src/dk/gov/oiosi/xml/xslt/XsltUtility.java @@ -81,36 +81,36 @@ public class XsltUtility { try { Transformer trans = precompiledStyleSheet(stylesheet); if (trans == null) { - log.error("Unable to get Transformer/precompiledStyleSheet for XSLT=" + stylesheet.getFileName()); + log.error("E-RSP15604: Unable to get Transformer/precompiledStyleSheet for XSLT=" + stylesheet.getFileName()); } return transformXml(xmlDoc, trans); } catch (XMLStreamException e) { - log.error("XsltUtility.transformXML Failed: " + e.getMessage(), e); - throw new XmlException("XSL transformation error: " + e.getMessage(), e); + log.error("E-RSP15605: XsltUtility.transformXML Failed: " + e.getMessage(), e); + throw new XmlException("XSL transformation error: " + e.getMessage(), e, "E-RSP15605"); } catch (TransformerException e) { - log.error("XsltUtility.transformXML Failed: " + e.getMessage(), e); - throw new XmlException("XSL transformation error: " + e.getMessage(), e); + log.error("E-RSP15601: XsltUtility.transformXML Failed: " + e.getMessage(), e); + throw new XmlException("XSL transformation error: " + e.getMessage(), e, "E-RSP15601"); } catch (Exception e) { - log.error("XsltUtility.transformXML Failed: " + e.getMessage(), e); - throw new RaspLibraryException("RASP transformation error! " + e.getMessage(), e); + log.error("E-RSP15602: XsltUtility.transformXML Failed: " + e.getMessage(), e); + throw new RaspLibraryException("RASP transformation error! " + e.getMessage(), e, "E-RSP15602"); } } /** * Method that returns the pre-compiled XSLT stylesheet from the given XML document referred by xsltPath. * - * @return Transformer object for given path to XSLT file + * @return Transformer object for given path to XSLT file. * @since OIORASP 1.3.0 */ public Transformer precompiledStyleSheet(String xsltPath) throws MainException, TransformerConfigurationException, FileNotFoundException { if (xsltPath == null) { - throw new FileNotFoundException("Path to XSLT file is not defined"); + throw new FileNotFoundException("E-RSP15603: Path to XSLT file is not defined"); } log.debug("Start precompiledStyleSheet for " + xsltPath); String xsltVersion = DocumentXPathResolver.getElementValueByXpath(xsltPath, "/*/@version", new PrefixedNamespace[0]); if (xsltVersion == null || xsltVersion.isEmpty()) { - log.warn("XSLT version tag missing in file " + xsltPath); + log.warn("W-RSP15608: XSLT version tag missing in file " + xsltPath); } if (xsltVersion == null || !xsltVersion.equalsIgnoreCase("2.0")) { @@ -127,7 +127,7 @@ public class XsltUtility { } } - // XSLT 2.0 must bed used, or XSLT 1.0 transformation failed + // XSLT 2.0 must be used, because XSLT 1.0 transformation failed: log.debug("Switching to SAXON for XSLT parsing of " + xsltPath); TransformerFactory transformerFactory = new net.sf.saxon.TransformerFactoryImpl(); diff --git a/dk.gov.oiosi.library/test/conf/client_axis2.xml b/dk.gov.oiosi.library/test/conf/client_axis2.xml index 1ba75f6938f593682e862b47fb921a3101a347bc..d3bb658372b73f71e2f97908d73b525f4e10c738 100755 --- a/dk.gov.oiosi.library/test/conf/client_axis2.xml +++ b/dk.gov.oiosi.library/test/conf/client_axis2.xml @@ -46,7 +46,6 @@ - oiosirasp @@ -61,10 +60,10 @@ false - false @@ -162,16 +161,12 @@ - - + + @@ -189,11 +184,12 @@ - - HTTP/1.1 - chunked - + + + + + + diff --git a/dk.gov.oiosi.library/test/conf/log4j.xml b/dk.gov.oiosi.library/test/conf/log4j.xml deleted file mode 100644 index aab6177c60971027dacc05c816e1951c9ef8c9fb..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/test/conf/log4j.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dk.gov.oiosi.library/test/conf/log4j2.xml b/dk.gov.oiosi.library/test/conf/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbca7a05aeb2d347d5ed91eac3405000d4d1ea85 --- /dev/null +++ b/dk.gov.oiosi.library/test/conf/log4j2.xml @@ -0,0 +1,62 @@ + + + + . + %d{yyyy-MM-dd HH:mm:ss z}{CET} %5p: %m [%c{1}:%L]%n + + + + + + ${layout} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dk.gov.oiosi.library/test/readme.txt b/dk.gov.oiosi.library/test/readme.txt index 9fb03ce26b7db5d09de9558f88593985b83694d6..3c40569cb86b8469464527eea34f421c8991f3a0 100644 --- a/dk.gov.oiosi.library/test/readme.txt +++ b/dk.gov.oiosi.library/test/readme.txt @@ -2,11 +2,15 @@ resources-common ---------------- It has been decided to hold and maintain all certificates, schematron files, etc. in one place, -since all these files are common for .NET and Java. +since all files are common for OIORASP .NET and Java. Right now they are located: - /openebusiness/dk.gov.oiosi/library/dotnet/trunk/src/dk.gov.oiosi.resource/Resources + https://rep.erst.dk/git/openebusiness/common -The folder "Resources" is made using "svn:externals" - see - http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-externals.html -on this test folder. +In Git this can be done by utilizing the Git submodule function: +http://blog.joncairns.com/2011/10/how-to-use-git-submodules/ + +GIT CLONE / CHECKOUT +-------------------- +If you already have cloned the repository and now want to load it’s submodules you have to use submodule update. +git submodule update --init diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest_Damaged_Rasp.xml b/dk.gov.oiosi.library/test/resources/RaspConfiguration_damagedFile.xml similarity index 98% rename from dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest_Damaged_Rasp.xml rename to dk.gov.oiosi.library/test/resources/RaspConfiguration_damagedFile.xml index 4593ab473207e44fc03d4acac2d736792c6f9a04..0dc72dc9b35eaf5ab7e2aa79aa5494d3ed66cc36 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest_Damaged_Rasp.xml +++ b/dk.gov.oiosi.library/test/resources/RaspConfiguration_damagedFile.xml @@ -1,10 +1,10 @@ - - - - - - dk.gov.oiosi.common.startup.SchematronPreloadStartupTask - - - initDocumentTypeFriendlyName + + + + + + dk.gov.oiosi.common.startup.SchematronPreloadStartupTask + + + initDocumentTypeFriendlyName Faktura \ No newline at end of file diff --git a/dk.gov.oiosi.library/test/resources/RaspConfiguration_endpointType_KeyTypeMappingExpressions.xml b/dk.gov.oiosi.library/test/resources/RaspConfiguration_endpointType_KeyTypeMappingExpressions.xml index 92c80f99fcda59ad832331181a53b9012b914d40..1e4139bfd04b25698159947a4c2283d62e771d2d 100644 --- a/dk.gov.oiosi.library/test/resources/RaspConfiguration_endpointType_KeyTypeMappingExpressions.xml +++ b/dk.gov.oiosi.library/test/resources/RaspConfiguration_endpointType_KeyTypeMappingExpressions.xml @@ -4409,7 +4409,6 @@ 5000 5000 5000 - 1 dk.gov.oiosi.security.revocation.ocsp.OcspLookup @@ -4426,7 +4425,6 @@ 15 - noMoreThanOneSetOrFail diff --git a/dk.gov.oiosi.library/test/resources/RaspConfiguration_multipleRootCertificateLocations.xml b/dk.gov.oiosi.library/test/resources/RaspConfiguration_multipleRootCertificateLocations.xml index 677303fbf0631f359f968661ffa65622ec9cded7..13fc0b3d4dc734804cb856f514e9e6051e9bb335 100644 --- a/dk.gov.oiosi.library/test/resources/RaspConfiguration_multipleRootCertificateLocations.xml +++ b/dk.gov.oiosi.library/test/resources/RaspConfiguration_multipleRootCertificateLocations.xml @@ -16,7 +16,7 @@ initDocumentTypeFriendlyName Faktura v0.7 - + prevalidateXmlFolder Resources/Documents/Examples @@ -27,7 +27,7 @@ dk.gov.oiosi.common.startup.DownloadCRLStartupTask @@ -35,7 +35,7 @@ downloadCrlUrl http://crl.oces.certifikat.dk/oces.crl - + downloadCrlUrl @@ -45,8 +45,8 @@ downloadCrlUrl http://crl.systemtest7.trust2408.com/systemtest7.crl - - + + dk.gov.oiosi.common.startup.StartCacheStateLogScheduledJobStartupTask @@ -59,8 +59,8 @@ scheduleJobRunIntervalTimeUnit SECONDS - - + + @@ -4655,7 +4655,6 @@ 5000 5000 5000 - 1 dk.gov.oiosi.security.revocation.ocsp.OcspLookup @@ -4672,7 +4671,6 @@ 15 - noMoreThanOneSetOrFail @@ -4689,10 +4687,10 @@ - - + + - + dk.gov.oiosi.common.cache.TimedCache dk.gov.oiosi.RaspLibrary @@ -4719,7 +4717,7 @@ onFailureRetryIntervalMinutes 1 - + @@ -4752,7 +4750,7 @@ - + dk.gov.oiosi.common.cache.TimedCache dk.gov.oiosi.RaspLibrary @@ -4767,7 +4765,7 @@ - + dk.gov.oiosi.common.cache.LeastFrequentlyUsedQuantityCache dk.gov.oiosi.RaspLibrary @@ -4778,26 +4776,26 @@ - + - - - + + + ./test/src/keys/OCES_Test.jks Test1234 - ca - + ca + ./test/resources/keys/oiosi_server.jks Test1234 tdc - + PID @@ -4836,7 +4834,7 @@ - + pop.test.com @@ -4852,4 +4850,4 @@ - \ No newline at end of file + diff --git a/dk.gov.oiosi.library/test/resources/RaspConfiguration_oldFormat.xml b/dk.gov.oiosi.library/test/resources/RaspConfiguration_oldFormat.xml new file mode 100644 index 0000000000000000000000000000000000000000..ef02dbff08f024d5c0a6d28a3463fc0716b87d83 --- /dev/null +++ b/dk.gov.oiosi.library/test/resources/RaspConfiguration_oldFormat.xml @@ -0,0 +1,3522 @@ + + + + + + 6f518cdc-5c09-45ee-b545-024eb2582e18 + Faktura v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + Invoice + uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 + Resources/schemas/OIOXML_v0.7/pieStrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') + ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + /schematron/error + /schematron/error + + + + + + + + + + 395ddd86-3201-4869-a6ce-9735e8e100d6 + Kreditnota v0.7 + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + Invoice + uddi:3bbc9cf0-3c4c-11dc-98be-6976502198bd + Resources/schemas/OIOXML_v0.7/pcmStrict.xsd + Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl + + + http://rep.oio.dk/ubl/xml/schemas/0p71/common/ + com + + + http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ + main + + + http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response + + + /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, + 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') + ='fakturering']/com:Name + + + + /root:Invoice/com:SellerParty/com:PartyName/com:Name + + + /root:Invoice/com:BuyersReferenceID + + + EndpointKeyType + /root:Invoice/com:BuyersReferenceID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Invoice/com:SellerParty/com:ID + + + EndpointKeyType + /root:Invoice/com:SellerParty/com:ID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + + + + + + + Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl + /schematron/error + /schematron/error + + + + + + + + + + ebad8f3a-2867-42c1-8f36-06b1a1d84498 + Applikationsmeddelse + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + ApplicationResponse + uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5 + Resources/schemas/UBL_v2.0/maindoc/UBL-ApplicationResponse-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_ApplicationResponse.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse + + + /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + + + + /root:ApplicationResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_ApplicationResponse_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:ApplicationResponse/cbc:ProfileID + + + + 3996dd51-a307-40e2-a8df-c05411e4505c + Katalog + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + Catalogue + uddi:b8a5a5d0-df9f-11dc-889a-1a827c218899 + Resources/schemas/UBL_v2.0/maindoc/UBL-Catalogue-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse + + + /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Catalogue/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Catalogue/cbc:ProfileID + + + + + + /root:Catalogue/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_Catalogue_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:Catalogue/cbc:ProfileID + + + + 39f9630c-6e3c-41af-b189-9a713dc1f7f6 + Katalogforespørgsel + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + CatalogueRequest + uddi:0cb0ff80-dfa0-11dc-889a-1a827c218899 + Resources/schemas/UBL_v2.0/maindoc/UBL-CatalogueRequest-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse + + + /root:CatalogueRequest/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ProfileParty/cac:PartyName/cbc:Name + + + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CatalogueRequest/cac:ProfileParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueRequest/cac:ProfileParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CatalogueRequest/cbc:ProfileID + + + + + + /root:CatalogueRequest/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CatalogueRequest_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:CatalogueRequest/cbc:ProfileID + + + + d3820bb8-6ddc-48e4-9103-0c4e72e86b0b + Opdatering af katalogelement + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + CatalogueItemSpecificationUpdate + uddi:63eab5c0-dfa0-11dc-889b-1a827c218899 + Resources/schemas/UBL_v2.0/maindoc/UBL-CatalogueItemSpecificationUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CatalogueItemSpecificationUpdate/cbc:ProfileID + + + + + + /root:CatalogueItemSpecificationUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CatalogueItemSpecificationUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:CatalogueItemSpecificationUpdate/cbc:ProfileID + + + + 268f5e81-e099-4041-bc7d-fcc2b8de01b7 + Opdatering af katalogpriser + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + CataloguePricingUpdate + uddi:abdb2720-dfa0-11dc-889b-1a827c218899 + Resources/schemas/UBL_v2.0/maindoc/UBL-CataloguePricingUpdate-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CataloguePricingUpdate/cbc:ProfileID + + + + + + /root:CataloguePricingUpdate/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CataloguePricingUpdate_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:CataloguePricingUpdate/cbc:ProfileID + + + + 2324a3d3-856b-4780-ada2-60e835e1f456 + Sletning af katalog + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + CatalogueDeletion + uddi:40e5cbd0-dfa2-11dc-889b-1a827c218899 + Resources/schemas/UBL_v2.0/maindoc/UBL-CatalogueDeletion-2.0.xsd + + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse + + + /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ProviderParty/cac:PartyName/cbc:Name + + + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID + + + EndpointKeyType + /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CatalogueDeletion/cbc:ProfileID + + + + + + /root:CatalogueDeletion/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CatalogueDeletion_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:CatalogueDeletion/cbc:ProfileID + + + + eb94c401-a848-45ed-b7e1-d0c5d795c4a1 + Kreditnota + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + CreditNote + uddi:E4EC9613-4830-4bab-AFEE-C37AB1C67AEC + Resources/schemas/UBL_v2.0/maindoc/UBL-CreditNote-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_ApplicationResponse.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse + + + //cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + //cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + //cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + //cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + //cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + //cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:CreditNote/cbc:ProfileID + + + + + + /root:CreditNote/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CreditNote_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:CreditNote/cbc:ProfileID + + + + cedc8dde-9067-491c-b8a8-4a0fa7f94e35 + Faktura + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + Invoice + uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 + Resources/schemas/UBL_v2.0/maindoc/UBL-Invoice-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Invoice.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Invoice/cbc:ProfileID + + + Resources/xslttransformstylesheets/OIOUBL_v2.0/OIOUBL_2_PCM_v01p07.xsl + + + + /root:Invoice/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_Invoice_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:Invoice/cbc:ProfileID + + + + 23562c22-c632-4a6e-b63d-7c64dbf5a156 + Ordre + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + Order + uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a + Resources/schemas/UBL_v2.0/maindoc/UBL-Order-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Order.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Order-2 + root + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse + + + /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Order/cbc:ProfileID + + + + + + /root:Order/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_Order_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:Order/cbc:ProfileID + + + + 1ac16dcb-c9d2-4f7e-a257-91bec9392eb7 + Ordreannulering + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + OrderCancellation + uddi:7ba80590-dfa1-11dc-889b-1a827c218899 + Resources/schemas/UBL_v2.0/maindoc/UBL-OrderCancellation-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderCancellation.xsls + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderCancellation/cbc:ProfileID + + + + + + /root:OrderCancellation/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_OrderCancellation_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:OrderCancellation/cbc:ProfileID + + + + 13739713-0d35-4eac-bc74-a78a59da8530 + Ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + OrderResponse + uddi:ed6d3c40-dfa1-11dc-889b-1a827c218899 + Resources/schemas/UBL_v2.0/maindoc/UBL-OrderResponse-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderResponse.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderResponse/cbc:ProfileID + + + + + + /root:OrderResponse/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_OrderResponse_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:OrderResponse/cbc:ProfileID + + + + c47a890f-9a6b-45df-9d59-268c29cae785 + Ordreændring + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + OrderChange + uddi:ea4bc88f-9479-4f9b-a354-4acabdb99336 + Resources/schemas/UBL_v2.0/maindoc/UBL-OrderChange-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderChange.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderChange/cbc:ProfileID + + + + + + /root:OrderChange/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/Schematrons/OIOUBL_v2.0/OIOUBL_OrderChange_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:OrderChange/cbc:ProfileID + + + + f3a3aaac-9ed6-402b-a34e-b573cdde87f9 + Simpel ordrebekræftelse + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + OrderResponseSimple + uddi:3B0B1309-B575-4d69-9C8F-4126C53CD7B0 + Resources/schemas/UBL_v2.0/maindoc/UBL-OrderResponseSimple-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderResponseSimple.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:OrderResponseSimple/cbc:ProfileID + + + + + + /root:OrderResponseSimple/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/schematrons/OIOUBL_v2.0/OIOUBL_OrderResponseSimple_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:OrderResponseSimple/cbc:ProfileID + + + + f7970839-59a7-4c23-9dd6-b92b39a52d78 + Rykker + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + Reminder + uddi:4FBBBDEF-0A8E-4d5e-9B9D-23C8FD98E9CE + Resources/schemas/UBL_v2.0/maindoc/UBL-Reminder-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Reminder.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Reminder/cbc:ProfileID + + + + + + /root:Reminder/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/schematrons/OIOUBL_v2.0/OIOUBL_Reminder_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:Reminder/cbc:ProfileID + + + + 7429d4d8-fd3e-4bc2-a63c-efff76d14e81 + KontoUdtog + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + Statement + uddi:4e383840-bcfc-11dc-a81b-bfc65441a808 + Resources/schemas/UBL_v2.0/maindoc/UBL-Statement-2.0.xsd + Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Statement.xsl + + + urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oasis:names:specification:ubl:schema:xsd:Statement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name + + + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID + + + EndpointKeyType + /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID + + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:Statement/cbc:ProfileID + + + + + + /root:Statement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/schematrons/OIOUBL_v2.0/OIOUBL_Statement_Schematron.xsl + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:Statement/cbc:ProfileID + + + + f9921c1b-ee20-4831-ab85-6975a95ed899 + Forsynings Specifikation + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + UtilityStatement + uddi:236f277d-a786-4724-a16e-26398b685a07 + Resources/schemas/OIOUBL_v2.1-b/maindoc/UBL-UtilityStatement-2.1.xsd + + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonAggregateComponents-2 + cac + + + urn:oioubl:names:specification:oioubl:schema:xsd:CommonBasicComponents-2 + cbc + + + urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 + ccts + + + urn:oioubl:names:specification:oioubl:schema:xsd:SpecializedDatatypes-2 + sdt + + + urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 + udt + + + urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 + root + + + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest + + + http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse + + + /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:SenderParty/cac:PartyName/cbc:Name + + + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + + + + + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID + + + EndpointKeyType + /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID + + + ean + ean + + + EAN + ean + + + CVR + cvr + + + GLN + ean + + + DK:CVR + cvr + + + ISO 6523 + ovt + + + DK:P + p + + + DK:SE + se + + + DK:VANS + vans + + + IBAN + iban + + + DUNS + duns + + + CPR + cpr + + + + + + + /root:UtilityStatement/cbc:ProfileID + + + + + + /root:UtilityStatement/cbc:CustomizationID + OIOUBL-2.0(1|2) + + + + Resources/schematrons/OIOUBL_v2.0/OIOUBL_UtilityStatement_Schematron.xsl + + /Schematron/Error + /Schematron/Error/Description + + + + + + /root:UtilityStatement/cbc:ProfileID + + + + + + + + urn:www.nesubl.eu:profiles:profile5:ver2.0 + uddi:aee8b6de-298f-4cbc-a96d-9ae8aed0ac31 + + + urn:www.nesubl.eu:profiles:profile5:ver1.0 + uddi:AEE8B6DE-298F-4cbc-A96D-9AE8AED0AC31 + + + urn:www.nesubl.eu:profiles:profile8:ver2.0 + uddi:fa858460-1145-11dd-a56f-32872391a563 + + + Procurement-BilSim-1.0 + uddi:362229ac-b657-452a-b8f8-c93e62c670ff + + + Procurement-OrdSimR-BilSim-1.0 + uddi:EBABEE8B-A5D3-4dc9-B976-3AAFF9A4E855 + + + Catalogue-CatBas-1.0 + uddi:4697A391-741F-4534-A21E-8F0A460013BB + + + OIOXML Elektronisk Regning + uddi:CD8A1434-AE29-4f6d-A26D-F0F25F2D3DA6 + + + OIOXML Elektronisk Kreditnota + uddi:45533597-5A1A-4c15-BEA1-FF3E9EBE5C29 + + + urn:www.nesubl.eu:profiles:profile1:ver2.0 + uddi:FC1D4A1C-1538-4bdb-A718-2EFD712256C5 + + + urn:www.nesubl.eu:profiles:profile2:ver2.0 + uddi:3A3BFE67-AD35-43f0-9AE7-CDF268AE221D + + + urn:www.nesubl.eu:profiles:profile3:ver2.0 + uddi:F5231EDB-FBB4-4a3b-A46C-3BCF1B3C3F35 + + + urn:www.nesubl.eu:profiles:profile4:ver2.0 + uddi:80BAAA62-4F27-40a5-A434-B3578F5AA424 + + + urn:www.nesubl.eu:profiles:profile6:ver2.0 + uddi:ACE3E6E7-8702-40fa-9A5D-1926122AE215 + + + urn:www.nesubl.eu:profiles:profile7:ver2.0 + uddi:BB0B4FD4-F6AF-489f-98D9-7130424E7F8D + + + Procurement-BilSimR-1.0 + uddi:98070e14-ee30-4b10-84ef-986cde3b8116 + + + Procurement-PayBas-1.0 + uddi:E5D505C0-4B52-4485-8169-4AB5343559A5 + + + Procurement-PayBasR-1.0 + uddi:FED5F809-64EC-4523-BC57-4A57D5680DA9 + + + Procurement-OrdSim-BilSim-1.0 + uddi:142C4188-3D53-440d-A64F-68D7C3B9A59B + + + Procurement-OrdSimR-BilSimR-1.0 + uddi:1e1b209e-7b8d-4f1e-8f2a-f3d9a94d1086 + + + Procurement-OrdSim-BilSimR-1.0 + uddi:7A638D35-3E08-432e-B558-74CB85889905 + + + Procurement-OrdAdv-BilSim-1.0 + uddi:88FBD6D5-6A25-4c08-91CC-5344C73C4D69 + + + Procurement-OrdAdvR-BilSimR-1.0 + uddi:b23940b1-d571-4640-8830-9b7f34809fbc + + + Procurement-OrdAdv-BilSimR-1.0 + uddi:76897296-08aa-4848-a933-ae068b4c604e + + + Procurement-OrdAdvR-BilSim-1.0 + uddi:1d01dd98-a302-4897-92d8-fd501447c450 + + + Procurement-OrdSel-BilSim-1.0 + uddi:46D94D6B-E835-4916-BBB5-F27DC655876A + + + Procurement-OrdSelR-BilSimR-1.0 + uddi:34CD4205-D7CF-47f6-87D4-DF4F8DB2AEFD + + + Procurement-OrdSel-BilSimR-1.0 + uddi:42AD3EDE-BBD4-434d-AAE6-044CE3EF8D1F + + + Procurement-OrdSelR-BilSim-1.0 + uddi:ACED2BA9-5B9F-44d6-9698-FB55C3DED1A9 + + + Catalogue-CatBasR-1.0 + uddi:03717C45-27A8-453f-833C-BD4D8AAB9675 + + + Catalogue-CatSim-1.0 + uddi:BE9F86E6-03C0-4d00-A3EE-44FC29EB3882 + + + Catalogue-CatSimR-1.0 + uddi:48277C4B-489F-498d-8246-303A9867C081 + + + Catalogue-CatExt-1.0 + uddi:1C8E9102-6711-42e8-A35A-997C56A35BFE + + + Catalogue-CatExtR-1.0 + uddi:0B864A5A-5E1E-47da-AD3B-A3932F82DA37 + + + Catalogue-CatAdv-1.0 + uddi:7B7909C1-5DE4-4630-A741-C74A9DDDC6AB + + + Catalogue-CatAdvR-1.0 + uddi:EE7F4AEA-BFDC-4886-8C5E-319596E46DA5 + + + NS OIOXML Elektronisk Regning + uddi:367e54f0-a24e-11dc-a80b-bfc65441a808 + + + NS OIOXML Elektronisk Kreditnota + uddi:2c33e6e0-a24e-11dc-a80b-bfc65441a808 + + + NS Procurement-BilSimR-1.0 + uddi:47a2e980-a24e-11dc-a80b-bfc65441a808 + + + NS Procurement-OrdAdvR-BilSimR-1.0 + uddi:5197bd80-a24e-11dc-a80b-bfc65441a808 + + + NS NS Procurement-PayBasR-1.0 + uddi:4d2dadf0-e05a-11dc-889b-1a827c218899 + + + NKS 2.0 + uddi:fbc05a80-bde5-11dc-a81d-bfc65441a808 + + + DOIP Order + uddi:1a967cf0-bde6-11dc-a81d-bfc65441a808 + + + OIOXML elektronisk handel + uddi:c001daa0-8ba3-11dd-894e-770465b08940 + + + OIOXML elektronisk handel - læs ind + uddi:cac79330-8ba3-11dd-894e-770465b08940 + + + Reference-Utility-1.0 + uddi:570b3009-3f9f-46d2-b533-31d0bb4a37a0 + + + Reference-UtilityR-1.0 + uddi:1bfd82e6-0eca-47df-9230-37b97c9788c6 + + + + + dk.gov.oiosi.security.ldap.LdapCertificateLookup + dk.gov.oiosi.RaspLibrary + + + + crtdir.certifikat.dk + 389 + 5000 + 5000 + 5000 + 1 + + + + dk.gov.oiosi.security.revocation.crl.CrlLookup + dk.gov.oiosi.library + + + 5000 + + + dk.gov.oiosi.uddi.RegistryLookupClient + + + dk.gov.oiosi.uddi.UddiLookupClient + + + + http://oio.dk/profiles/OIOSI/1.0/UDDI/registrationModel/1.1/ + 15 + noMoreThanOneSetOrFail + + + + + http://discoverypublic.nemhandel.dk/uddi/services/inquiry + http://discoverybackup.nemhandel-backup.dk/uddi/services/inquiry + + + + + + + + 2 + + + ./keys/certs.jks + BLABLA + caprod + + + + PID + + + RID + + + UID + + + FID + + + + nh/conf/policy.xml + nh/conf/axis2.xml + nh/repository + + + + + false + 60000 + 2 + + + + + + + true + 5000 + 5 + + + + + + diff --git a/dk.gov.oiosi.library/test/resources/keys/certificates.txt b/dk.gov.oiosi.library/test/resources/keys/certificates.txt index 36b70a9060d5e4349b9469f5b1d1740e155d9cb3..7e5b8a94ecb6a9f40539c3692721ee1d047d9b7c 100644 --- a/dk.gov.oiosi.library/test/resources/keys/certificates.txt +++ b/dk.gov.oiosi.library/test/resources/keys/certificates.txt @@ -1,6 +1,6 @@ Certificates distributed with the RASP code -Introduction +Introduction oiosi.jks oiosi_client.jks oiosi_server.jks @@ -21,9 +21,9 @@ The certificates are presented in the following way: Certificate name, created date, PrivateKeyEntry, Certificate fingerprint (MD5): fingerprint - Subject string - - + Subject string + + oiosi.jks @@ -36,15 +36,6 @@ oiosi.jks C = DK - server_old, 28-07-2008, PrivateKeyEntry, - Certificate fingerprint (MD5): DE:F9:70:26:7F:53:F0:D9:7B:37:03:A8:84:7E:66:71 - - CN = IT- og Telestyrelsen - OIOSI test virksomhedssignatur - Serial Number = CVR:26769388-UID:1172691221366 - O = IT- og Telestyrelsen // CVR:26769388 - C = DK - - server_1, 28-07-2008, PrivateKeyEntry, Certificate fingerprint (MD5): EC:BF:EB:AB:A0:D7:81:93:DD:58:4C:42:21:DD:E3:E3 @@ -54,15 +45,6 @@ oiosi.jks C = DK - client, 28-07-2008, PrivateKeyEntry, - Certificate fingerprint (MD5): B7:B0:33:B8:14:71:97:70:67:F2:73:D9:26:47:C2:D8 - - Serial Number = CVR:26769388-DID:00000001 - CN = NemHandel Test 1 - O = IT- og Telestyrelsen // CVR:26769388 - C = DK - - client_person, 28-07-2008, PrivateKeyEntry, Certificate fingerprint (MD5): C3:02:6A:6F:AB:96:C3:E3:00:4F:F3:40:8C:C7:AE:87 @@ -72,15 +54,6 @@ oiosi.jks C = DK - server, 28-07-2008, PrivateKeyEntry, - Certificate fingerprint (MD5): FA:0B:CF:BF:15:54:2C:F9:53:3B:12:F1:B5:83:93:F9 - - Serial Number = CVR:26769388-DID:00000002 - CN = NemHandel Test 2 - O = IT- og Telestyrelsen // CVR:26769388 - C = DK - - client_xx, 28-07-2008, PrivateKeyEntry, Certificate fingerprint (MD5): CF:8A:57:6F:43:DA:08:F2:A2:B0:F6:12:A4:29:E6:D2 @@ -169,7 +142,7 @@ oiosi.jks - + oiosi_client.jks tdc_oces_test, 16-07-2008, trustedCertEntry, @@ -178,17 +151,11 @@ oiosi_client.jks tdc_oces_prod, 16-07-2008, trustedCertEntry, Certificate fingerprint (MD5): 93:7F:90:1C:ED:84:67:17:A4:65:5F:9B:CB:30:02:97 - client, 16-07-2008, PrivateKeyEntry, - Certificate fingerprint (MD5): B7:B0:33:B8:14:71:97:70:67:F2:73:D9:26:47:C2:D8 - Serial Number = CVR:26769388-DID:00000001 - CN = NemHandel Test 1 - O = IT- og Telestyrelsen // CVR:26769388 - C = DK - + oiosi_server.jks tdc_oces_test, 16-07-2008, trustedCertEntry, @@ -206,7 +173,7 @@ oiosi_server.jks C = DK - + oiosi_server_1.jks tdc_oces_test, 28-07-2008, trustedCertEntry, diff --git a/dk.gov.oiosi.library/test/resources/keys/oiosi_test_certificates.jks b/dk.gov.oiosi.library/test/resources/keys/oiosi_test_certificates.jks index b1b7097417bd903d4305f5b7f6e3a49ab029f4de..a34913d9540a585c8807e6438a85899d218df3dd 100644 Binary files a/dk.gov.oiosi.library/test/resources/keys/oiosi_test_certificates.jks and b/dk.gov.oiosi.library/test/resources/keys/oiosi_test_certificates.jks differ diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/AbstractTestCase.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/AbstractTestCase.java index 6f2eab7e910bb7eb0d75c794bc091d565747392f..189c31c0ae297cca9a08a03fea55be6740787f4a 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/AbstractTestCase.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/AbstractTestCase.java @@ -2,9 +2,10 @@ package dk.gov.oiosi; import dk.gov.oiosi.configuration.ConfigurationHandler; import junit.framework.TestCase; -import org.apache.log4j.xml.DOMConfigurator; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.core.LoggerContext; -import java.net.URISyntaxException; +import java.io.File; /** * Local abstract version of TestCase, to configure Log4j with local test config. @@ -14,9 +15,12 @@ public abstract class AbstractTestCase extends TestCase { private static boolean LOG4J_CONFIGURED = false; protected void setUp() throws Exception { - // Central config for all tests. + // Central config for all tests: if (!LOG4J_CONFIGURED) { - DOMConfigurator.configure("test/conf/log4j.xml"); + File logConfigFile = new File("test/conf/log4j2.xml"); + LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false); + loggerContext.setConfigLocation(logConfigFile.toURI()); + LOG4J_CONFIGURED = true; } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/TestConstants.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/TestConstants.java index fdfe67b8252740e34f8050edb91896b930a64e49..cbfebaaec69cf8b835dedf2a59cc83160ac39c98 100755 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/TestConstants.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/TestConstants.java @@ -7,6 +7,9 @@ public class TestConstants { public static final String PATH_RASPCONFIGURATION_TEST = "RaspConfiguration.Test.xml"; public static final String PATH_RASPCONFIGURATION_PRODUCTION = "RaspConfiguration.Live.xml"; + public static final String PATH_RASPCONFIGURATION_TEST_EXTENDED = "RaspConfiguration_Extended.Test.xml"; + public static final String PATH_RASPCONFIGURATION_PRODUCTION_EXTENDED = "RaspConfiguration_Extended.Live.xml"; + public static final String PATH_RASPCONFIGURATION_OLD_FORMAT = "test/resources/RaspConfiguration_oldFormat.xml"; public static final String PATH_COMMON = "common/resources/"; @@ -62,23 +65,22 @@ public class TestConstants { // public static final String PATH_ORDERRESPONSESIMPLE_XSL = "resources/schematronstylesheets/OIOUBL v2.01/OIOUBL_OrderResponseSimple_Schematron.xsl"; // public static final String PATH_REMINDER_XSL = "resources/schematronstylesheets/OIOUBL v2.01/OIOUBL_Reminder_Schematron.xsl"; - public static final String PATH_VOCES1_TEST = PATH_COMMON + "Certificates/Test/Virksomhedscertifikat/CVR19343634.Expire20081121.JERNALDERBYENS VENNER - LDAP test.cer"; public static final String PATH_CERTIFICATE_PERSON = PATH_COMMON + "Certificates/Test/Person/person.cer"; - public static final String PATH_MOCES1_VALID = PATH_COMMON + "Certificates/Test/Medarbejdercertifikat/CVR30808460.Expire20130307.Test MOCES1 (medarbejdercertificat 1).cer"; // public static final String PATH_CERTIFICATE_DEVICE = "test/resources/certificates/device.cer"; // public static final String PATH_CERTIFICATE_DEVICE_TEST = "test/resources/certificates/device_test.cer"; // public static final String PATH_CERTIFICATE_TEST_ROOT = "test/resources/certificates/oces_test_root.cer"; public static final String PATH_CERTIFICATE_ROOT = PATH_COMMON + "Certificates/Live/Root/TDC OCES CA.cer"; public static final String PATH_FOCES2_INVALID = PATH_COMMON + "Certificates/Test/Funktionscertifikat/CVR34051178.Expire20160607.FOCES2.DigstDemo.cer"; public static final String PATH_FOCES2_VALID = PATH_COMMON + "Certificates/Test/Funktionscertifikat/FOCES_gyldig_2022.cer"; + public static final String PATH_MITID_ORG_TEST = PATH_COMMON + "Certificates/Test/Organisationscertifikat/Nemhandel-DEV-OCES-cert-20210422.p12"; public static final String TEST_CERTIFICATE_SUBJECT_FUNCTION = "SERIALNUMBER=CVR:30808460-FID:94731315 + CN=TU GENEREL FOCES gyldig (funktionscertifikat), O=NETS DANID A/S // CVR:30808460, C=DK"; - public static final String TEST_CERTIFICATE_SUBJECT_COMPANY = "SERIALNUMBER=CVR:30808460-UID:25351738 + CN=NETS DANID A/S - TU VOCES gyldig, O=NETS DANID A/S // CVR:30808460, C=DK"; +// public static final String TEST_CERTIFICATE_SUBJECT_COMPANY = "SERIALNUMBER=CVR:30808460-UID:25351738 + CN=NETS DANID A/S - TU VOCES gyldig, O=NETS DANID A/S // CVR:30808460, C=DK"; public static final String PATH_KEYSTORE_TEST = "test/resources/keys/oiosi_test_certificates.jks"; public static final String PASSWORD_KEYSTORE_TEST = "Test1234"; - public static final String PATH_INVOICE_XML_IDENTIFIER_EAN = PATH_EXAMPLES_OK + "OIOUBL_Invoice_identifier_ean_v2p1.xml"; + public static final String PATH_INVOICE_XML_IDENTIFIER_GLN = PATH_EXAMPLES_OK + "OIOUBL_Invoice_identifier_gln_v2p1.xml"; public static final String PATH_INVOICE_XML_IDENTIFIER_CVR = PATH_EXAMPLES_OK + "OIOUBL_Invoice_identifier_cvr_v2p1.xml"; public static final String PATH_INVOICE_XML_IDENTIFIER_P = PATH_EXAMPLES_OK + "OIOUBL_Invoice_identifier_p_v2p1.xml"; public static final String PATH_INVOICE_XML_IDENTIFIER_SE = PATH_EXAMPLES_OK + "OIOUBL_Invoice_identifier_se_v2p1.xml"; diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/UtilitiesTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/UtilitiesTest.java index a56fdc4efd63fb418b8b2786f03af01cc8902612..67166688234e28c577619b3ae58785e273b347b4 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/UtilitiesTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/UtilitiesTest.java @@ -40,18 +40,18 @@ public class UtilitiesTest extends TestCase { /** * Verify that output is controlled by the mappings inside RaspConfiguration.xml */ - public void testIdentifierEAN() throws Exception { + public void testIdentifierGLN() throws Exception { XmlDocument document = new XmlDocument(); - document.load(TestConstants.PATH_INVOICE_XML_IDENTIFIER_EAN); + document.load(TestConstants.PATH_INVOICE_XML_IDENTIFIER_GLN); DocumentTypeConfig documentType = _searcher.findUniqueDocumentType(document); String code = Utilities.getEndpointKeyTypeString(document, documentType); - assertEquals("ean", code); + assertEquals("GLN", code); String keyXpath = documentType.getEndpointType().getKey().getXPath(); PrefixedNamespace[] namespaces = documentType.getNamespaces(); Identifier identifier = Utilities.getEndpointKeyByXpath(document, keyXpath, namespaces, code); - assertEquals("ean", identifier.getType()); + assertEquals("GLN", identifier.getType()); } public void testIdentifierCVR() throws Exception { @@ -59,13 +59,13 @@ public class UtilitiesTest extends TestCase { document.load(TestConstants.PATH_INVOICE_XML_IDENTIFIER_CVR); DocumentTypeConfig documentType = _searcher.findUniqueDocumentType(document); String code = Utilities.getEndpointKeyTypeString(document, documentType); - assertEquals("cvr", code); + assertEquals("DK:CVR", code); String keyXpath = documentType.getEndpointType().getKey().getXPath(); PrefixedNamespace[] namespaces = documentType.getNamespaces(); Identifier identifier = Utilities.getEndpointKeyByXpath(document, keyXpath, namespaces, code); - assertEquals("Wrong type found", "cvr", identifier.getType()); + assertEquals("Wrong type found", "DK:CVR", identifier.getType()); assertEquals("Wrong value found", "12345678", identifier.getAsString()); } @@ -74,13 +74,13 @@ public class UtilitiesTest extends TestCase { document.load(TestConstants.PATH_INVOICE_XML_IDENTIFIER_P); DocumentTypeConfig documentType = _searcher.findUniqueDocumentType(document); String code = Utilities.getEndpointKeyTypeString(document, documentType); - assertEquals("Mapping from DK:P to p should exist", "p", code); + assertEquals("No mapping from DK:P to p should exist", "DK:P", code); String keyXpath = documentType.getEndpointType().getKey().getXPath(); PrefixedNamespace[] namespaces = documentType.getNamespaces(); Identifier identifier = Utilities.getEndpointKeyByXpath(document, keyXpath, namespaces, code); - assertEquals("Mapping from DK:P to p should exist", "p", identifier.getType()); + assertEquals("No mapping from DK:P to p should exist", "DK:P", identifier.getType()); } public void testIdentifierSE() throws Exception { @@ -88,13 +88,13 @@ public class UtilitiesTest extends TestCase { document.load(TestConstants.PATH_INVOICE_XML_IDENTIFIER_SE); DocumentTypeConfig documentType = _searcher.findUniqueDocumentType(document); String code = Utilities.getEndpointKeyTypeString(document, documentType); - assertEquals("Mapping from DK:SE to se should exist", "se", code); + assertEquals("No mapping from DK:SE to se should exist", "DK:SE", code); String keyXpath = documentType.getEndpointType().getKey().getXPath(); PrefixedNamespace[] namespaces = documentType.getNamespaces(); Identifier identifier = Utilities.getEndpointKeyByXpath(document, keyXpath, namespaces, code); - assertEquals("Mapping from DK:SE to se should exist", "se", identifier.getType()); + assertEquals("No mapping from DK:SE to se should exist", "DK:SE", identifier.getType()); } public void testIdentifierVANS() throws Exception { @@ -102,13 +102,13 @@ public class UtilitiesTest extends TestCase { document.load(TestConstants.PATH_INVOICE_XML_IDENTIFIER_VANS); DocumentTypeConfig documentType = _searcher.findUniqueDocumentType(document); String code = Utilities.getEndpointKeyTypeString(document, documentType); - assertEquals("Mapping from DK:VANS to vans should exist", "vans", code); + assertEquals("No mapping from DK:VANS to vans should exist", "DK:VANS", code); String keyXpath = documentType.getEndpointType().getKey().getXPath(); PrefixedNamespace[] namespaces = documentType.getNamespaces(); Identifier identifier = Utilities.getEndpointKeyByXpath(document, keyXpath, namespaces, code); - assertEquals("Mapping from DK:VANS to vans should exist", "vans", identifier.getType()); + assertEquals("No mapping from DK:VANS to vans should exist", "DK:VANS", identifier.getType()); } public void testIdentifierIBAN() throws Exception { @@ -153,7 +153,7 @@ public class UtilitiesTest extends TestCase { document.load(TestConstants.PATH_INVOICE_XML_IDENTIFIER_DUNS); DocumentTypeConfig documentType = _searcher.findUniqueDocumentType(document); String code = Utilities.getEndpointKeyTypeString(document, documentType); - assertEquals("Mapping in special RaspConfig file not right", "xyz", code); + assertEquals("No mapping in special RaspConfig file not right", "xyz", code); // Reset to force test setup back to normal config ConfigurationHandlerCleaner.clear(); @@ -204,11 +204,11 @@ public class UtilitiesTest extends TestCase { XmlDocument document = new XmlDocument(); document.load(TestConstants.PATH_INVOICE); Identifier identifier = Utilities.getReceiverEndpointKey(document); - assertEquals("Wrong receiver type", "ean", identifier.getType()); + assertEquals("Wrong receiver type", "GLN", identifier.getType()); assertEquals("Wrong receiver value", "5798009811578", identifier.getAsString()); identifier = Utilities.getSenderEndpointKey(document); - assertEquals("Wrong sender type", "cvr", identifier.getType()); + assertEquals("Wrong sender type", "DK:CVR", identifier.getType()); assertEquals("Wrong sender value", "16356706", identifier.getAsString()); } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/TimedCacheTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/TimedCacheTest.java index 60236a9c30f572b11a7cebc246f5df1b2aed8433..a623992a3f7ecbb8e7a0ac9d99618f700155850f 100755 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/TimedCacheTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/TimedCacheTest.java @@ -28,10 +28,10 @@ public class TimedCacheTest extends TestCase { private ICache cache; public void testConstructors() { - TimedCache c1 = new TimedCache(60000L); + TimedCache c1 = new TimedCache<>(60000L); assertNotNull(c1); - TimedCache c2 = new TimedCache(new TimeSpan().setMinutes(1)); + TimedCache c2 = new TimedCache<>(new TimeSpan().setMinutes(1)); assertNotNull(c2); } @@ -39,7 +39,7 @@ public class TimedCacheTest extends TestCase { * add/remove element. */ public void testSingleAddRemoveTest() { - cache = new TimedCache(new TimeSpan().setHours(5), 10); + cache = new TimedCache<>(new TimeSpan().setHours(5), 10); cache.add("test", "test"); assertElementExists("test"); cache.remove("test"); @@ -50,7 +50,7 @@ public class TimedCacheTest extends TestCase { * add/remove several elements. */ public void testMultipleAddRemoveTest() { - this.cache = new TimedCache(new TimeSpan().setHours(5), 10); + this.cache = new TimedCache<>(new TimeSpan().setHours(5), 10); String[] a = new String[]{"a1", "a2", "a3"}; String[] b = new String[]{"b1", "b2"}; String[] c = new String[]{"c1", "c2", "c3", "c4"}; @@ -75,7 +75,7 @@ public class TimedCacheTest extends TestCase { */ public void testSingleTimeoutRemovalTest() throws InterruptedException { TimeSpan timeout = new TimeSpan().setSeconds(1); - cache = new TimedCache(timeout, 10); + cache = new TimedCache<>(timeout, 10); cache.add("test", "test"); // Waiting for 2 x cache timeout @@ -91,7 +91,7 @@ public class TimedCacheTest extends TestCase { TimeSpan oneQuaterTimeout = new TimeSpan().setMillis(timeout.getSpanMillis() / 4); String a = "a"; String b = "b"; - this.cache = new TimedCache(timeout, 10); + this.cache = new TimedCache<>(timeout, 10); testAdd(a, a); // "Waiting 2x{1}" + oneQuaterTimeout.getSpanMillis() @@ -142,7 +142,7 @@ public class TimedCacheTest extends TestCase { TimeSpan halfTimeout = new TimeSpan().setMillis(timeout.getSpanMillis() / 2); String a = "a"; String b = "b"; - this.cache = new TimedCache(timeout, 10); + this.cache = new TimedCache<>(timeout, 10); testAdd(a, a); testAdd(b, b); @@ -228,7 +228,7 @@ public class TimedCacheTest extends TestCase { */ private void assertElementExists(final String key) { assertTrue(cache.containsKey(key)); - OutVariable result = new OutVariable(); + OutVariable result = new OutVariable<>(); boolean hasValue = cache.tryGetValue(key, result); assertTrue(hasValue); assertNotNull("Cache element for key=[" + key + "] is null", result.getVariable()); @@ -239,7 +239,7 @@ public class TimedCacheTest extends TestCase { * @return The value of a cache element. */ private String getElementValue(final String key) { - OutVariable result = new OutVariable(); + OutVariable result = new OutVariable<>(); cache.tryGetValue(key, result); return result.getVariable(); } @@ -251,8 +251,8 @@ public class TimedCacheTest extends TestCase { */ private void testDoNotExists(final String key) { assertFalse(cache.containsKey(key)); - OutVariable result = new OutVariable(); + OutVariable result = new OutVariable<>(); assertFalse(cache.tryGetValue(key, result)); assertNull(result.getVariable()); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/stat/CacheStateLogScheduledJobTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/stat/CacheStateLogScheduledJobTest.java index 80e8da9e240368fc4ff6b3c646e434a0cdb56fbb..d6c8f2ffb69f033a2bc6d78de7b4bc7524b7e67b 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/stat/CacheStateLogScheduledJobTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/cache/stat/CacheStateLogScheduledJobTest.java @@ -1,5 +1,6 @@ package dk.gov.oiosi.common.cache.stat; +import dk.gov.oiosi.AbstractTestCase; import dk.gov.oiosi.TestConstants; import dk.gov.oiosi.common.OutVariable; import dk.gov.oiosi.common.cache.IThreadSafeCache; @@ -7,12 +8,13 @@ import dk.gov.oiosi.configuration.CacheFactory; import dk.gov.oiosi.configuration.ConfigurationHandler; import dk.gov.oiosi.security.CertificateSubject; import dk.gov.oiosi.security.revocation.crl.CrlInstance; -import junit.framework.TestCase; import java.net.URL; import java.security.cert.CertificateFactory; -public class CacheStateLogScheduledJobTest extends TestCase { +import static org.junit.Assert.assertNotEquals; + +public class CacheStateLogScheduledJobTest extends AbstractTestCase { private static final boolean PRINT_STATES = false; @@ -37,7 +39,7 @@ public class CacheStateLogScheduledJobTest extends TestCase { if (PRINT_STATES) { System.out.println(state2); } - assertTrue(!state1.equals(state2)); + assertNotEquals(state1, state2); URL url = new URL("http://blabla.dk"); IThreadSafeCache crlCache = CacheFactory.getInstance().getCrlLookupCache(); @@ -46,42 +48,42 @@ public class CacheStateLogScheduledJobTest extends TestCase { if (PRINT_STATES) { System.out.println(state1); } - assertTrue(!state1.equals(state2)); + assertNotEquals(state1, state2); crlCache.add(url.toExternalForm(), new CrlInstance(CertificateFactory.getInstance("X.509"), url)); state2 = j.buildCacheListStateString(); if (PRINT_STATES) { System.out.println(state2); } - assertTrue(!state1.equals(state2)); + assertNotEquals(state1, state2); crlCache.checkExpired(); state1 = j.buildCacheListStateString(); if (PRINT_STATES) { System.out.println(state1); } - assertTrue(!state1.equals(state2)); + assertNotEquals(state1, state2); crlCache.remove(url.toExternalForm()); state2 = j.buildCacheListStateString(); if (PRINT_STATES) { System.out.println(state2); } - assertTrue(!state1.equals(state2)); + assertNotEquals(state1, state2); crlCache.set(url.toExternalForm(), new CrlInstance(CertificateFactory.getInstance("X.509"), url)); state1 = j.buildCacheListStateString(); if (PRINT_STATES) { System.out.println(state1); } - assertTrue(!state1.equals(state2)); + assertNotEquals(state1, state2); - crlCache.tryGetValue(url.toExternalForm(), new OutVariable()); + crlCache.tryGetValue(url.toExternalForm(), new OutVariable<>()); state2 = j.buildCacheListStateString(); if (PRINT_STATES) { System.out.println(state2); } - assertTrue(!state1.equals(state2)); + assertNotEquals(state1, state2); if (crlCache instanceof AbstractStatisticsCollectorCache) { assertEquals("tryGet(match/miss)=1/0 contains(match/miss)=0/1 remove/set/add=1/1/2 checkExpired(total/removedCount)=3/0", ((AbstractStatisticsCollectorCache) crlCache).getStatData().toString()); @@ -91,4 +93,4 @@ public class CacheStateLogScheduledJobTest extends TestCase { assertNotNull(j.getLog()); assertTrue(j.doJob()); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/schedule/ScheduledExecutorTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/schedule/ScheduledExecutorTest.java index 516f817fd5abff36e6e88d5a34195210896d7f54..3588ea69958f392cb09a1558135302e3f1ee8813 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/schedule/ScheduledExecutorTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/schedule/ScheduledExecutorTest.java @@ -14,11 +14,11 @@ public class ScheduledExecutorTest extends TestCase { public void testAllMethods() { /* - * Let's wait while ScheduledExecutor is free from active threads to be - * sure that we can guarantee exact number of executions during the test - */ + * Let's wait while ScheduledExecutor is free from active threads to be + * sure that we can guarantee exact number of executions during the test + */ int activeCount; - ScheduledExecutor s = new ScheduledExecutor() { + ScheduledExecutor scheduledExecutor = new ScheduledExecutor() { @Override protected int calculateThreadPoolSize() { /* @@ -28,7 +28,7 @@ public class ScheduledExecutorTest extends TestCase { return 10; } }; - while ((activeCount = s.getCurrentActiveCount()) > 0) { + while ((activeCount = scheduledExecutor.getCurrentActiveCount()) > 0) { System.out.println("StartCacheStateLogScheduledJobStartupTaskTest: activeCount now is not 0 = " + activeCount + ", let's wait while everything finished"); synchronized (this) { try { @@ -38,45 +38,45 @@ public class ScheduledExecutorTest extends TestCase { } } } - s.runJobNow(new EmptyJob("Run now 1")); - s.runJobNow(new EmptyJob("Run now 2")); + scheduledExecutor.runJobNow(new EmptyJob("Run now 1")); + scheduledExecutor.runJobNow(new EmptyJob("Run now 2")); waitThis(50); - assertEquals(2, s.getCurrentActiveCount()); - assertTrue(!s.isShutdown()); - assertTrue(!s.isTerminated()); + assertEquals(2, scheduledExecutor.getCurrentActiveCount()); + assertFalse("scheduledExecutor er MOD FORVENTNING kalde med isShutdown", scheduledExecutor.isShutdown()); + assertFalse("scheduledExecutor er MOD FORVENTNING kalde med isTerminated", scheduledExecutor.isTerminated()); - s.scheduleJob(new EmptyJob("Start each 50 ms, stop after first"), 50, TimeUnit.MILLISECONDS); + scheduledExecutor.scheduleJob(new EmptyJob("Start each 50 ms, stop after first"), 50, TimeUnit.MILLISECONDS); Calendar c = Calendar.getInstance(); c.add(Calendar.MILLISECOND, 30); - s.scheduleJob(new EmptyJob("Delayed start in 100 ms"), c.getTime(), 50, TimeUnit.MILLISECONDS); + scheduledExecutor.scheduleJob(new EmptyJob("Delayed start in 100 ms"), c.getTime(), 50, TimeUnit.MILLISECONDS); waitThis(100); - assertEquals(4, s.getCurrentActiveCount()); + assertEquals(4, scheduledExecutor.getCurrentActiveCount()); try { - s.awaitTermination(10, TimeUnit.MILLISECONDS); + scheduledExecutor.awaitTermination(10, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { e.printStackTrace(); } - s.shutdown(); + scheduledExecutor.shutdown(); - s.runJobNow(new EmptyJob("Run after shutdown - job will not be started")); - s.scheduleJob(new EmptyJob("Run after shutdown - job will not be started"), 5, TimeUnit.MILLISECONDS); - s.scheduleJob(new EmptyJob("Run after shutdown - job will not be started"), c.getTime(), 5, TimeUnit.MILLISECONDS); + scheduledExecutor.runJobNow(new EmptyJob("Run after shutdown - job will not be started")); + scheduledExecutor.scheduleJob(new EmptyJob("Run after shutdown - job will not be started"), 5, TimeUnit.MILLISECONDS); + scheduledExecutor.scheduleJob(new EmptyJob("Run after shutdown - job will not be started"), c.getTime(), 5, TimeUnit.MILLISECONDS); waitThis(100); // Check that active count is still 4, not increased by one - assertEquals(4, s.getCurrentActiveCount()); + assertEquals(4, scheduledExecutor.getCurrentActiveCount()); // Interrupt all jobs - List list = s.shutdownNow(); + List list = scheduledExecutor.shutdownNow(); assertEquals(0, list.size()); // Wait while all terminated tasks stopped waitThis(50); - assertEquals(0, s.getCurrentActiveCount()); + assertEquals(0, scheduledExecutor.getCurrentActiveCount()); } private void waitThis(int i) { @@ -108,17 +108,13 @@ public class ScheduledExecutorTest extends TestCase { return CPU[0]; } }; - /* - * Check that thread pool size will never be less than 2 - */ + + // Verify that thread pool size will never be less than 2: assertEquals(2, s.calculateThreadPoolSize()); s.shutdownNow(); waitThis(50); CPU[0] = 24; - /* - * Check that thread pool size will be equal to number of CPUs if there - * are more or equal than 2 - */ + // Verify that thread pool size will be equal to number of CPUs if there are more or equal than 2: assertEquals(24, s.calculateThreadPoolSize()); s.shutdownNow(); } @@ -128,6 +124,7 @@ public class ScheduledExecutorTest extends TestCase { } private static class EmptyJob extends AbstractScheduleJob { + private static final long serialVersionUID = 8797734813277507784L; private final String desc; @@ -157,4 +154,4 @@ public class ScheduledExecutorTest extends TestCase { return false; } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTaskTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTaskTest.java index dfd4efacc3e6a2b9bd5d4943ec53f9a4206b487c..9d2a95442cd6f6f26144c62521e74ddb9459fbe6 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTaskTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/common/startup/StartCacheStateLogScheduledJobStartupTaskTest.java @@ -20,12 +20,16 @@ public class StartCacheStateLogScheduledJobStartupTaskTest extends AbstractTestC ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); } + /** + * Check that task is executed without exceptions in general - fast test + */ public void testDoTaskFast() throws MainException { /* * Check that task is executed without exceptions in general - fast test * * At first with default log level */ + StartCacheStateLogScheduledJobStartupTask t = new StartCacheStateLogScheduledJobStartupTask(); t.doTask(); } @@ -66,7 +70,7 @@ public class StartCacheStateLogScheduledJobStartupTaskTest extends AbstractTestC * Check real empty configuration - expect default */ expectedParams.set(StartCacheStateLogScheduledJobStartupTask.DEFAULT_SCHEDULE_JOB_RUN_INTERVAL, StartCacheStateLogScheduledJobStartupTask.DEFAULT_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT); - t.setConfigList(new ArrayList()); + t.setConfigList(new ArrayList<>()); t.doTask(); assertEquals(3, execCount); @@ -126,12 +130,11 @@ public class StartCacheStateLogScheduledJobStartupTaskTest extends AbstractTestC t.doTask(); /* - * We just executed task so it had to schedule a job to run each 100 millis. + * We just executed task, so it had to schedule a job to run each 100 millis. * - * Let's sleep 500 millis and check that number of executions is between 4 and 6 + * Let's sleep 500 millis and check that number of executions is between 4 and 6: */ Thread.sleep(500); - assertTrue("Unexpected number of job executions: " + job.execCount, job.execCount >= 4 && job.execCount <= 6); } @@ -144,7 +147,7 @@ public class StartCacheStateLogScheduledJobStartupTaskTest extends AbstractTestC } private List buildConfigList(String value, String unit) { - List list = new ArrayList(); + List list = new ArrayList<>(); list.add(new StartupTaskConfiguration(StartCacheStateLogScheduledJobStartupTask.CONFIG_SCHEDULE_JOB_RUN_INTERVAL, value)); list.add(new StartupTaskConfiguration(StartCacheStateLogScheduledJobStartupTask.CONFIG_SCHEDULE_JOB_RUN_INTERVAL_TIME_UNIT, unit)); return list; @@ -161,7 +164,7 @@ public class StartCacheStateLogScheduledJobStartupTaskTest extends AbstractTestC } } - private class EmptyCacheStateLogScheduledJob extends CacheStateLogScheduledJob { + private static class EmptyCacheStateLogScheduledJob extends CacheStateLogScheduledJob { private static final long serialVersionUID = 5078780370968253223L; diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerBackwardCompatibilityTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerBackwardCompatibilityTest.java index be4fee8a1a661b95991016b06783bc1ee1be3628..0769b1847ce182b3ef84af4d52571deec98be7f2 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerBackwardCompatibilityTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerBackwardCompatibilityTest.java @@ -1,10 +1,14 @@ package dk.gov.oiosi.configuration; +import dk.gov.oiosi.TestConstants; +import dk.gov.oiosi.uddi.Registry; +import dk.gov.oiosi.uddi.UddiConfig; import junit.framework.TestCase; import org.apache.log4j.Level; import org.apache.log4j.Logger; import java.lang.reflect.Method; +import java.net.URISyntaxException; import java.util.Collection; public class ConfigurationHandlerBackwardCompatibilityTest extends TestCase { @@ -13,7 +17,7 @@ public class ConfigurationHandlerBackwardCompatibilityTest extends TestCase { * This test checks, what fails if library is just updated without modifications at RaspConfiguration. */ public void testBackwardCompatibility() { - ConfigurationHandler.setConfigurationFile("test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest_RaspConfiguration_Old.xml"); + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_OLD_FORMAT); ConfigurationHandler.clear(); Method[] declaredMethods = ConfigurationHandler.class.getDeclaredMethods(); @@ -67,9 +71,24 @@ public class ConfigurationHandlerBackwardCompatibilityTest extends TestCase { * This test verifies, that method getStartupTaskList() is not private (because then testBackwardCompatibility() will fail). */ public void testGetStartupTaskList() { - ConfigurationHandler.setConfigurationFile("test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest_RaspConfiguration_Old.xml"); + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_OLD_FORMAT); ConfigurationHandler.clear(); ConfigurationHandler.getInstance().getStartupTaskList(); } + + /** + * NH-390: Verify functionality when UddiLookupTimeoutSeconds is not set in RaspConfiguration. + *

+ * 120 seconds is the default value set by code if node is not present in XML. + */ + public void testUddiLookupTimeoutSeconds() throws URISyntaxException { + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_OLD_FORMAT); + ConfigurationHandler.clear(); + + UddiConfig uddiConfig = ConfigurationHandler.getInstance().getUddiConfig(true); + for (Registry registry : uddiConfig.getLookupRegistryFallbackConfig().getRegistries()) { + assertEquals("Wrong timeout value", 120, registry.getUddiLookupTimeoutSeconds()); + } + } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest.java index 8a275c8c7c2bcc9c91d13b378f450e36422ba09c..b8c02d42e8069468a5494d292d56733f954ea25a 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest.java @@ -5,6 +5,7 @@ import dk.gov.oiosi.TestConstants; import dk.gov.oiosi.common.startup.*; import dk.gov.oiosi.communication.configuration.*; import dk.gov.oiosi.security.RootCertificateConfig; +import dk.gov.oiosi.security.ldap.LdapSettings; import dk.gov.oiosi.uddi.UddiConfig; import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy; @@ -25,6 +26,7 @@ import javax.xml.xpath.XPathFactory; import java.io.File; import java.io.StringReader; import java.util.List; +import java.util.NoSuchElementException; public class ConfigurationHandlerTest extends AbstractTestCase { @@ -80,7 +82,7 @@ public class ConfigurationHandlerTest extends AbstractTestCase { } /* - * Unit test to check logs + * Unit test to check logs. */ public void testExecuteStartupTasks() { // Use Log4J for configuration of log level @@ -132,29 +134,46 @@ public class ConfigurationHandlerTest extends AbstractTestCase { ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); // Execute asserts - verifyDocumentTypeConfiguration_RaspConfig(); + assertDocumentTypeConfiguration_RaspConfig(28); } public void testDocumentTypeConfiguration_RaspConfig_Live() throws Exception { ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION); // Execute asserts - verifyDocumentTypeConfiguration_RaspConfig(); + assertDocumentTypeConfiguration_RaspConfig(28); + } + + /** + * Verify the document type config. count in the extended RaspConfigs. + */ + public void testDocumentTypeConfiguration_RaspConfig_Extended_Live() throws Exception { + // Live: + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION_EXTENDED); + assertDocumentTypeConfiguration_RaspConfig(36); + } + + /** + * Verify the document type config. count in the extended RaspConfigs. + */ + public void testDocumentTypeConfiguration_RaspConfig_Extended_Test() throws Exception { + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST_EXTENDED); + assertDocumentTypeConfiguration_RaspConfig(36); } /** * Method used by other tests. */ - private void verifyDocumentTypeConfiguration_RaspConfig() throws Exception { + private void assertDocumentTypeConfiguration_RaspConfig(int expectedDocumentTypeCount) throws Exception { ConfigurationHandler handler = ConfigurationHandler.getInstance(true); DocumentTypeCollectionConfig documentTypeCollectionConfig = handler.getRaspDocumentTypeCollectionConfig(true); DocumentTypeConfig[] docTypes = documentTypeCollectionConfig.getDocumentTypes(); - assertEquals("Wrong documentType count", 36, docTypes.length); + assertEquals("Wrong documentType count", expectedDocumentTypeCount, docTypes.length); DocumentTypeConfig docType = docTypes[0]; assertEquals("Unexpected DocumentType", "Faktura v0.7", docType.getFriendlyName()); - assertEndpointType(docType.getEndpointType(), 6); + assertEndpointType(docType.getEndpointType(), 0); assertNotNullAndNotEmpty(docType.getFriendlyName()); assertNotNullAndNotEmpty(docType.getId().getGuid()); assertPositiveInteger(docType.getIdentifierDiscriminators().getXPathDiscriminatorConfigs().length); @@ -184,32 +203,62 @@ public class ConfigurationHandlerTest extends AbstractTestCase { } public void testUddiConfiguration() throws Exception { - UddiConfig uc = ConfigurationHandler.getInstance().getUddiConfig(); - assertPositiveInteger(uc.getFallbackTimeoutMinutes()); + UddiConfig uddiConfig = ConfigurationHandler.getInstance().getUddiConfig(); - // Not used anymore - Removed from unit test - // assertNotNullAndNotEmpty(uc.getRegistrationConformanceClaim()); - // assertNotNullAndNotEmpty(uc.getPublishEndpoint()); - // assertNotNullAndNotEmpty(uc.getSecurityEndpoint()); + // First is configured to 30 sec.: + assertEquals("Wrong timeout value loaded", 30, uddiConfig.getLookupRegistryFallbackConfig().getRegistries().get(0).getUddiLookupTimeoutSeconds()); + // Second is not configured, so it defaults to 120 sec.: + assertEquals("Wrong timeout value loaded", 120, uddiConfig.getLookupRegistryFallbackConfig().getRegistries().get(1).getUddiLookupTimeoutSeconds()); } - public void testRaspConfigByXpath_test() throws Exception { + public void testRaspConfigByXpath() throws Exception { String xml = FileUtils.readFileToString(new File(TestConstants.PATH_RASPCONFIGURATION_TEST), "utf-8").substring(1); - verifyRaspConfigurationByXpath(xml); + assertRaspConfigurationByXpath(xml, 28); xml = FileUtils.readFileToString(new File(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION), "utf-8").substring(1); - verifyRaspConfigurationByXpath(xml); + assertRaspConfigurationByXpath(xml, 28); + } + + public void testRaspConfigByXpathExtended() throws Exception { + String xml = FileUtils.readFileToString(new File(TestConstants.PATH_RASPCONFIGURATION_TEST_EXTENDED), "utf-8").substring(1); + assertRaspConfigurationByXpath(xml, 36); + + xml = FileUtils.readFileToString(new File(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION_EXTENDED), "utf-8").substring(1); + assertRaspConfigurationByXpath(xml, 36); + } + + public void testLoadLdapSettingsNormalTestConfig() { + ConfigurationHandler handler = ConfigurationHandler.getInstance(true); + LdapSettings ldapSettings = handler.loadLdapSettings(); + assertEquals("Wrong NemID host:port loading", "crtdir.pp.certifikat.dk:389", ldapSettings.getHostPortForNemId()); + assertEquals("Wrong MitID host:port loading", "ca1.cti-gov.dk:389", ldapSettings.getHostPortForMitId()); + assertEquals("Wrong value for ConnectionTimeout", 4000, ldapSettings.getConnectionTimeoutMsec()); + assertEquals("Wrong value for SocketTimeout", 5000, ldapSettings.getSocketTimeoutMsec()); + } + + /** + * Verify that a missing required LDAP element should stop loading and fail. + */ + public void testLoadLdapSettingsOldConfig() { + reloadNewRaspConfigurationFile("test/resources/RaspConfiguration_oldFormat.xml"); + ConfigurationHandler handler = ConfigurationHandler.getInstance(true); + try { + handler.loadLdapSettings(); + fail("Expected exception not thrown."); + } catch (NoSuchElementException e) { + // OK + } } - private void verifyRaspConfigurationByXpath(String xml) throws Exception { + private void assertRaspConfigurationByXpath(String xml, int expectedDocumentTypeCount) throws Exception { Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(xml))); // Loop over DocumentTypes XPath xPath = XPathFactory.newInstance().newXPath(); NodeList nodes = (NodeList) xPath.evaluate("//DocumentTypes/DocumentTypeConfig", dom.getDocumentElement(), XPathConstants.NODESET); - assertEquals("Wrong DocumentType config count", 36, nodes.getLength()); + assertEquals("Wrong DocumentType config count", expectedDocumentTypeCount, nodes.getLength()); for (int i = 0; i < nodes.getLength(); ++i) { - String docTypeName = ((Element) nodes.item(i)).getElementsByTagName("FriendlyName").item(0).getFirstChild().getTextContent(); + String docTypeName = ((Element) nodes.item(i)).getElementsByTagName("FriendlyName").item(0).getFirstChild().getNodeValue(); Node endpointTypeNode = ((Element) nodes.item(i)).getElementsByTagName("EndpointType").item(0); assertNotNull("No EndpointNode found for docType=" + docTypeName, endpointTypeNode); if (",0,1,".contains("," + i + ",")) { diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest_RaspConfiguration_Old.xml b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest_RaspConfiguration_Old.xml deleted file mode 100644 index 2d032feec39fe2e4b47364877fbbacfbfc1c9242..0000000000000000000000000000000000000000 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest_RaspConfiguration_Old.xml +++ /dev/null @@ -1,3424 +0,0 @@ - - - - - - 6f518cdc-5c09-45ee-b545-024eb2582e18 - Faktura v0.7 - http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ - Invoice - uddi:bc99bb01-80f9-4f52-89dc-edf7732c56f9 - Resources/schemas/OIOXML_v0.7/pieStrict.xsd - Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl - - - http://rep.oio.dk/ubl/xml/schemas/0p71/common/ - com - - - http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ - main - - - http://rep.oio.dk/ubl/xml/schemas/0p71/pie/ - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice07Interface/SubmitInvoice07Response - - /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name - - - /root:Invoice/com:SellerParty/com:PartyName/com:Name - - - /root:Invoice/com:BuyersReferenceID - - - EndpointKeyType - /root:Invoice/com:BuyersReferenceID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Invoice/com:SellerParty/com:ID - - - EndpointKeyType - /root:Invoice/com:SellerParty/com:ID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - - - - - - - Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl - /schematron/error - /schematron/error - - - - - - - - - - 395ddd86-3201-4869-a6ce-9735e8e100d6 - Kreditnota v0.7 - http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ - Invoice - uddi:3bbc9cf0-3c4c-11dc-98be-6976502198bd - Resources/schemas/OIOXML_v0.7/pcmStrict.xsd - Resources/UI/OIOXML_v0.7/StyleSheets/html.xsl - - - http://rep.oio.dk/ubl/xml/schemas/0p71/common/ - com - - - http://rep.oio.dk/ubl/xml/schemas/0p71/maindoc/ - main - - - http://rep.oio.dk/ubl/xml/schemas/0p71/pcm/ - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Request - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Creditnote07Interface/SubmitCreditNote07Response - - /root:Invoice/com:BuyerParty/com:PartyName[count(../../com:BuyerParty)=1 or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='faktura' or translate(../com:Address/com:ID, 'FAKTUREING', 'faktureing') ='fakturering']/com:Name - - - /root:Invoice/com:SellerParty/com:PartyName/com:Name - - - /root:Invoice/com:BuyersReferenceID - - - EndpointKeyType - /root:Invoice/com:BuyersReferenceID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Invoice/com:SellerParty/com:ID - - - EndpointKeyType - /root:Invoice/com:SellerParty/com:ID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - - - - - - - Resources/Schematrons/OIOXML_v0.7/ublinvoice.xsl - /schematron/error - /schematron/error - - - - - - - - - - ebad8f3a-2867-42c1-8f36-06b1a1d84498 - Applikationsmeddelse - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 - ApplicationResponse - uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5 - Resources/schemas/UBL_v2.0/maindoc/UBL-ApplicationResponse-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_ApplicationResponse.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/ApplicationResponse201Interface/SubmitApplicationResponseResponse - - /root:ApplicationResponse/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:ApplicationResponse/cac:SenderParty/cac:PartyName/cbc:Name - - - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:ApplicationResponse/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID - - - EndpointKeyType - /root:ApplicationResponse/cac:SenderParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:ApplicationResponse/cbc:ProfileID - - - - - - /root:ApplicationResponse/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_ApplicationResponse_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:ApplicationResponse/cbc:ProfileID - - - - 3996dd51-a307-40e2-a8df-c05411e4505c - Katalog - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 - Catalogue - uddi:b8a5a5d0-df9f-11dc-889a-1a827c218899 - Resources/schemas/UBL_v2.0/maindoc/UBL-Catalogue-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueResponse201Interface/SubmitCatalogueResponseRequestResponse - - /root:Catalogue/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:Catalogue/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:Catalogue/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Catalogue/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:Catalogue/cac:ProviderParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Catalogue/cbc:ProfileID - - - - - - /root:Catalogue/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_Catalogue_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:Catalogue/cbc:ProfileID - - - - 39f9630c-6e3c-41af-b189-9a713dc1f7f6 - Katalogforespørgsel - urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 - CatalogueRequest - uddi:0cb0ff80-dfa0-11dc-889a-1a827c218899 - Resources/schemas/UBL_v2.0/maindoc/UBL-CatalogueRequest-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CatalogueRequest-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueRequestResponse201Interface/SubmitCatalogueRequestResponseResponse - - /root:CatalogueRequest/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CatalogueRequest/cac:ProfileParty/cac:PartyName/cbc:Name - - - /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueRequest/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CatalogueRequest/cac:ProfileParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueRequest/cac:ProfileParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CatalogueRequest/cbc:ProfileID - - - - - - /root:CatalogueRequest/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CatalogueRequest_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:CatalogueRequest/cbc:ProfileID - - - - d3820bb8-6ddc-48e4-9103-0c4e72e86b0b - Opdatering af katalogelement - urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 - CatalogueItemSpecificationUpdate - uddi:63eab5c0-dfa0-11dc-889b-1a827c218899 - Resources/schemas/UBL_v2.0/maindoc/UBL-CatalogueItemSpecificationUpdate-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CatalogueItemSpecificationUpdate-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueItemSpecificationUpdateResponse201Interface/SubmitCatalogueItemSpecificationUpdateResponseResponse - - /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueItemSpecificationUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueItemSpecificationUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CatalogueItemSpecificationUpdate/cbc:ProfileID - - - - - - /root:CatalogueItemSpecificationUpdate/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CatalogueItemSpecificationUpdate_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:CatalogueItemSpecificationUpdate/cbc:ProfileID - - - - 268f5e81-e099-4041-bc7d-fcc2b8de01b7 - Opdatering af katalogpriser - urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 - CataloguePricingUpdate - uddi:abdb2720-dfa0-11dc-889b-1a827c218899 - Resources/schemas/UBL_v2.0/maindoc/UBL-CataloguePricingUpdate-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CataloguePricingUpdate-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CataloguePricingUpdateResponse201Interface/SubmitCataloguePricingUpdateResponseResponse - - /root:CataloguePricingUpdate/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CataloguePricingUpdate/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:CataloguePricingUpdate/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:CataloguePricingUpdate/cac:ProviderParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CataloguePricingUpdate/cbc:ProfileID - - - - - - /root:CataloguePricingUpdate/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CataloguePricingUpdate_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:CataloguePricingUpdate/cbc:ProfileID - - - - 2324a3d3-856b-4780-ada2-60e835e1f456 - Sletning af katalog - urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 - CatalogueDeletion - uddi:40e5cbd0-dfa2-11dc-889b-1a827c218899 - Resources/schemas/UBL_v2.0/maindoc/UBL-CatalogueDeletion-2.0.xsd - - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CatalogueDeletion-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CatalogueDeletionResponse201Interface/SubmitCatalogueDeletionResponseResponse - - /root:CatalogueDeletion/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:CatalogueDeletion/cac:ProviderParty/cac:PartyName/cbc:Name - - - /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueDeletion/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID - - - EndpointKeyType - /root:CatalogueDeletion/cac:ProviderParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CatalogueDeletion/cbc:ProfileID - - - - - - /root:CatalogueDeletion/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CatalogueDeletion_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:CatalogueDeletion/cbc:ProfileID - - - - eb94c401-a848-45ed-b7e1-d0c5d795c4a1 - Kreditnota - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - CreditNote - uddi:E4EC9613-4830-4bab-AFEE-C37AB1C67AEC - Resources/schemas/UBL_v2.0/maindoc/UBL-CreditNote-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_ApplicationResponse.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/CreditNote201Interface/SubmitCreditNoteResponse - - //cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - //cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - //cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - //cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - //cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - //cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:CreditNote/cbc:ProfileID - - - - - - /root:CreditNote/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_CreditNote_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:CreditNote/cbc:ProfileID - - - - cedc8dde-9067-491c-b8a8-4a0fa7f94e35 - Faktura - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - Invoice - uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47 - Resources/schemas/UBL_v2.0/maindoc/UBL-Invoice-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Invoice.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Invoice201Interface/SubmitInvoiceResponse - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Invoice/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Invoice/cbc:ProfileID - - - Resources/xslttransformstylesheets/OIOUBL_v2.0/OIOUBL_2_PCM_v01p07.xsl - - - /root:Invoice/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_Invoice_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:Invoice/cbc:ProfileID - - - - 23562c22-c632-4a6e-b63d-7c64dbf5a156 - Ordre - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - Order - uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a - Resources/schemas/UBL_v2.0/maindoc/UBL-Order-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Order.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Order-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Order201Interface/SubmitOrderResponse - - /root:Order/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Order/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Order/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Order/cbc:ProfileID - - - - - - /root:Order/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_Order_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:Order/cbc:ProfileID - - - - 1ac16dcb-c9d2-4f7e-a257-91bec9392eb7 - Ordreannulering - urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 - OrderCancellation - uddi:7ba80590-dfa1-11dc-889b-1a827c218899 - Resources/schemas/UBL_v2.0/maindoc/UBL-OrderCancellation-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderCancellation.xsls - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderCancellationResponse201Interface/SubmitOrderCancellationResponseResponse - - /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderCancellation/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderCancellation/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderCancellation/cbc:ProfileID - - - - - - /root:OrderCancellation/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_OrderCancellation_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:OrderCancellation/cbc:ProfileID - - - - 13739713-0d35-4eac-bc74-a78a59da8530 - Ordrebekræftelse - urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 - OrderResponse - uddi:ed6d3c40-dfa1-11dc-889b-1a827c218899 - Resources/schemas/UBL_v2.0/maindoc/UBL-OrderResponse-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderResponse.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseResponse201Interface/SubmitOrderResponseResponseResponse - - /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderResponse/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderResponse/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderResponse/cbc:ProfileID - - - - - - /root:OrderResponse/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_OrderResponse_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:OrderResponse/cbc:ProfileID - - - - c47a890f-9a6b-45df-9d59-268c29cae785 - Ordreændring - urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 - OrderChange - uddi:ea4bc88f-9479-4f9b-a354-4acabdb99336 - Resources/schemas/UBL_v2.0/maindoc/UBL-OrderChange-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderChange.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderChange-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderChangeResponse201Interface/SubmitOrderChangeResponseResponse - - /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderChange/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderChange/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderChange/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderChange/cbc:ProfileID - - - - - - /root:OrderChange/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/Schematrons/OIOUBL_v2.0/OIOUBL_OrderChange_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:OrderChange/cbc:ProfileID - - - - f3a3aaac-9ed6-402b-a34e-b573cdde87f9 - Simpel ordrebekræftelse - urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 - OrderResponseSimple - uddi:3B0B1309-B575-4d69-9C8F-4126C53CD7B0 - Resources/schemas/UBL_v2.0/maindoc/UBL-OrderResponseSimple-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_OrderResponseSimple.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/OrderResponseSimple201Interface/SubmitOrderResponseSimpleResponse - - /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderResponseSimple/cac:BuyerCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:OrderResponseSimple/cac:SellerSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:OrderResponseSimple/cbc:ProfileID - - - - - - /root:OrderResponseSimple/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/schematrons/OIOUBL_v2.0/OIOUBL_OrderResponseSimple_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:OrderResponseSimple/cbc:ProfileID - - - - f7970839-59a7-4c23-9dd6-b92b39a52d78 - Rykker - urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 - Reminder - uddi:4FBBBDEF-0A8E-4d5e-9B9D-23C8FD98E9CE - Resources/schemas/UBL_v2.0/maindoc/UBL-Reminder-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Reminder.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Reminder-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/Reminder201Interface/SubmitReminderResponse - - /root:Reminder/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Reminder/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Reminder/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Reminder/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Reminder/cbc:ProfileID - - - - - - /root:Reminder/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/schematrons/OIOUBL_v2.0/OIOUBL_Reminder_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:Reminder/cbc:ProfileID - - - - 7429d4d8-fd3e-4bc2-a63c-efff76d14e81 - KontoUdtog - urn:oasis:names:specification:ubl:schema:xsd:Statement-2 - Statement - uddi:4e383840-bcfc-11dc-a81b-bfc65441a808 - Resources/schemas/UBL_v2.0/maindoc/UBL-Statement-2.0.xsd - Resources/UI/OIOUBL_v2.0/Stylesheets/OIOUBL_Statement.xsl - - - urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oasis:names:specification:ubl:schema:xsd:Statement-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/StatementResponse201Interface/SubmitStatementResponseResponse - - /root:Statement/cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Statement/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name - - - /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Statement/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID - - - EndpointKeyType - /root:Statement/cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:Statement/cbc:ProfileID - - - - - - /root:Statement/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/schematrons/OIOUBL_v2.0/OIOUBL_Statement_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:Statement/cbc:ProfileID - - - - f9921c1b-ee20-4831-ab85-6975a95ed899 - Forsynings Specifikation - urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 - UtilityStatement - uddi:236f277d-a786-4724-a16e-26398b685a07 - Resources/schemas/OIOUBL_v2.1-b/maindoc/UBL-UtilityStatement-2.1.xsd - - - - urn:oioubl:names:specification:oioubl:schema:xsd:CommonAggregateComponents-2 - cac - - - urn:oioubl:names:specification:oioubl:schema:xsd:CommonBasicComponents-2 - cbc - - - urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2 - ccts - - - urn:oioubl:names:specification:oioubl:schema:xsd:SpecializedDatatypes-2 - sdt - - - urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2 - udt - - - urn:oioubl:names:specification:oioubl:schema:xsd:UtilityStatement-2 - root - - - - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementRequest - http://rep.oio.dk/oiosi.ehandel.gov.dk/xml/schemas/2007/09/01/UtilityStatement201Interface/SubmitUtilityStatementResponse - - /root:UtilityStatement/cac:ReceiverParty/cac:PartyName/cbc:Name - - - /root:UtilityStatement/cac:SenderParty/cac:PartyName/cbc:Name - - - /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID - - - EndpointKeyType - /root:UtilityStatement/cac:ReceiverParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - - - - - /root:UtilityStatement/cac:SenderParty/cbc:EndpointID - - - EndpointKeyType - /root:UtilityStatement/cac:SenderParty/cbc:EndpointID/@schemeID - - - ean - ean - - - EAN - ean - - - CVR - cvr - - - GLN - ean - - - DK:CVR - cvr - - - ISO 6523 - ovt - - - DK:P - p - - - DK:SE - se - - - DK:VANS - vans - - - IBAN - iban - - - DUNS - duns - - - CPR - cpr - - - - - - - /root:UtilityStatement/cbc:ProfileID - - - - - - /root:UtilityStatement/cbc:CustomizationID - OIOUBL-2.0(1|2) - - - - Resources/schematrons/OIOUBL_v2.0/OIOUBL_UtilityStatement_Schematron.xsl - /Schematron/Error - /Schematron/Error/Description - - - - - - /root:UtilityStatement/cbc:ProfileID - - - - - - - - urn:www.nesubl.eu:profiles:profile5:ver2.0 - uddi:aee8b6de-298f-4cbc-a96d-9ae8aed0ac31 - - - urn:www.nesubl.eu:profiles:profile5:ver1.0 - uddi:AEE8B6DE-298F-4cbc-A96D-9AE8AED0AC31 - - - urn:www.nesubl.eu:profiles:profile8:ver2.0 - uddi:fa858460-1145-11dd-a56f-32872391a563 - - - Procurement-BilSim-1.0 - uddi:362229ac-b657-452a-b8f8-c93e62c670ff - - - Procurement-OrdSimR-BilSim-1.0 - uddi:EBABEE8B-A5D3-4dc9-B976-3AAFF9A4E855 - - - Catalogue-CatBas-1.0 - uddi:4697A391-741F-4534-A21E-8F0A460013BB - - - OIOXML Elektronisk Regning - uddi:CD8A1434-AE29-4f6d-A26D-F0F25F2D3DA6 - - - OIOXML Elektronisk Kreditnota - uddi:45533597-5A1A-4c15-BEA1-FF3E9EBE5C29 - - - urn:www.nesubl.eu:profiles:profile1:ver2.0 - uddi:FC1D4A1C-1538-4bdb-A718-2EFD712256C5 - - - urn:www.nesubl.eu:profiles:profile2:ver2.0 - uddi:3A3BFE67-AD35-43f0-9AE7-CDF268AE221D - - - urn:www.nesubl.eu:profiles:profile3:ver2.0 - uddi:F5231EDB-FBB4-4a3b-A46C-3BCF1B3C3F35 - - - urn:www.nesubl.eu:profiles:profile4:ver2.0 - uddi:80BAAA62-4F27-40a5-A434-B3578F5AA424 - - - urn:www.nesubl.eu:profiles:profile6:ver2.0 - uddi:ACE3E6E7-8702-40fa-9A5D-1926122AE215 - - - urn:www.nesubl.eu:profiles:profile7:ver2.0 - uddi:BB0B4FD4-F6AF-489f-98D9-7130424E7F8D - - - Procurement-BilSimR-1.0 - uddi:98070e14-ee30-4b10-84ef-986cde3b8116 - - - Procurement-PayBas-1.0 - uddi:E5D505C0-4B52-4485-8169-4AB5343559A5 - - - Procurement-PayBasR-1.0 - uddi:FED5F809-64EC-4523-BC57-4A57D5680DA9 - - - Procurement-OrdSim-BilSim-1.0 - uddi:142C4188-3D53-440d-A64F-68D7C3B9A59B - - - Procurement-OrdSimR-BilSimR-1.0 - uddi:1e1b209e-7b8d-4f1e-8f2a-f3d9a94d1086 - - - Procurement-OrdSim-BilSimR-1.0 - uddi:7A638D35-3E08-432e-B558-74CB85889905 - - - Procurement-OrdAdv-BilSim-1.0 - uddi:88FBD6D5-6A25-4c08-91CC-5344C73C4D69 - - - Procurement-OrdAdvR-BilSimR-1.0 - uddi:b23940b1-d571-4640-8830-9b7f34809fbc - - - Procurement-OrdAdv-BilSimR-1.0 - uddi:76897296-08aa-4848-a933-ae068b4c604e - - - Procurement-OrdAdvR-BilSim-1.0 - uddi:1d01dd98-a302-4897-92d8-fd501447c450 - - - Procurement-OrdSel-BilSim-1.0 - uddi:46D94D6B-E835-4916-BBB5-F27DC655876A - - - Procurement-OrdSelR-BilSimR-1.0 - uddi:34CD4205-D7CF-47f6-87D4-DF4F8DB2AEFD - - - Procurement-OrdSel-BilSimR-1.0 - uddi:42AD3EDE-BBD4-434d-AAE6-044CE3EF8D1F - - - Procurement-OrdSelR-BilSim-1.0 - uddi:ACED2BA9-5B9F-44d6-9698-FB55C3DED1A9 - - - Catalogue-CatBasR-1.0 - uddi:03717C45-27A8-453f-833C-BD4D8AAB9675 - - - Catalogue-CatSim-1.0 - uddi:BE9F86E6-03C0-4d00-A3EE-44FC29EB3882 - - - Catalogue-CatSimR-1.0 - uddi:48277C4B-489F-498d-8246-303A9867C081 - - - Catalogue-CatExt-1.0 - uddi:1C8E9102-6711-42e8-A35A-997C56A35BFE - - - Catalogue-CatExtR-1.0 - uddi:0B864A5A-5E1E-47da-AD3B-A3932F82DA37 - - - Catalogue-CatAdv-1.0 - uddi:7B7909C1-5DE4-4630-A741-C74A9DDDC6AB - - - Catalogue-CatAdvR-1.0 - uddi:EE7F4AEA-BFDC-4886-8C5E-319596E46DA5 - - - NS OIOXML Elektronisk Regning - uddi:367e54f0-a24e-11dc-a80b-bfc65441a808 - - - NS OIOXML Elektronisk Kreditnota - uddi:2c33e6e0-a24e-11dc-a80b-bfc65441a808 - - - NS Procurement-BilSimR-1.0 - uddi:47a2e980-a24e-11dc-a80b-bfc65441a808 - - - NS Procurement-OrdAdvR-BilSimR-1.0 - uddi:5197bd80-a24e-11dc-a80b-bfc65441a808 - - - NS NS Procurement-PayBasR-1.0 - uddi:4d2dadf0-e05a-11dc-889b-1a827c218899 - - - NKS 2.0 - uddi:fbc05a80-bde5-11dc-a81d-bfc65441a808 - - - DOIP Order - uddi:1a967cf0-bde6-11dc-a81d-bfc65441a808 - - - OIOXML elektronisk handel - uddi:c001daa0-8ba3-11dd-894e-770465b08940 - - - OIOXML elektronisk handel - læs ind - uddi:cac79330-8ba3-11dd-894e-770465b08940 - - - Reference-Utility-1.0 - uddi:570b3009-3f9f-46d2-b533-31d0bb4a37a0 - - - Reference-UtilityR-1.0 - uddi:1bfd82e6-0eca-47df-9230-37b97c9788c6 - - - - - dk.gov.oiosi.security.ldap.LdapCertificateLookup - dk.gov.oiosi.RaspLibrary - - - crtdir.certifikat.dk - 389 - 5000 - 5000 - 5000 - 1 - - - dk.gov.oiosi.security.revocation.crl.CrlLookup - dk.gov.oiosi.library - - - 5000 - - - dk.gov.oiosi.uddi.RegistryLookupClient - - - dk.gov.oiosi.uddi.UddiLookupClient - - - - http://oio.dk/profiles/OIOSI/1.0/UDDI/registrationModel/1.1/ - 15 - noMoreThanOneSetOrFail - - - - - http://discoverypublic.nemhandel.dk/uddi/services/inquiry - http://discoverybackup.nemhandel-backup.dk/uddi/services/inquiry - - - - - - - - 2 - - - ./keys/certs.jks - BLABLA - caprod - - - - PID - - - RID - - - UID - - - FID - - - - nh/conf/policy.xml - nh/conf/axis2.xml - nh/repository - - - - - false - 60000 - 2 - - - - - - - true - 5000 - 5 - - - - - - diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest.java index 77a70eca0ce0f9b7493c12a14dc343999aa80a6e..a3d2ba7cfb9f3422a7642e6fd2599e50e1326b81 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest.java @@ -1,6 +1,7 @@ package dk.gov.oiosi.configuration; import dk.gov.oiosi.TestConstants; +import dk.gov.oiosi.common.RaspLibraryException; import junit.framework.TestCase; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -19,7 +20,7 @@ public class ConfigurationLoaderUtilTest extends TestCase { assertEquals("Wrong error text found", "Failed to locate OIORASP configuration file 'RaspConfiguration.xml', tried to check next locations: classpath, '" + curFolder + "/RaspConfiguration.xml', '" + curFolderParent + "/RaspConfiguration.xml'", s); } - public void testLoadXMLConfiguration() { + public void testLoadXMLConfigurationWithUnexistingFileAndNullLogger() { // Check with null logger try { ConfigurationLoaderUtil.loadXMLConfiguration("RaspConfigUnavailable.xml", null); @@ -27,24 +28,33 @@ public class ConfigurationLoaderUtilTest extends TestCase { } catch (IllegalArgumentException e) { // OK } + } + public void testLoadXMLConfigurationWithUnexistingFile() { // Check with non null logger: Log log = LogFactory.getLog(ConfigurationLoaderUtilTest.class); try { ConfigurationLoaderUtil.loadXMLConfiguration("RaspConfigUnavailable.xml", log); - } catch (RuntimeException e) { - assertTrue("Wrong exception message text: " + e.getMessage(), e.getMessage().startsWith("OIORASP cannot load configuration xml [RaspConfigUnavailable.xml]")); + fail("Expected exception not thrown."); + } catch (RaspLibraryException e) { + assertEquals("Wrong exception message text", "E-RSP11041: OIORASP cannot load configuration xml [RaspConfigUnavailable.xml]", e.getMessage().substring(0, e.getMessage().indexOf("]") + 1)); } + } + + public void testLoadXMLConfigurationWithInvalidXmlFile() { + // Check with non null logger: + Log log = LogFactory.getLog(ConfigurationLoaderUtilTest.class); // Check damaged XML try { - ConfigurationLoaderUtil.loadXMLConfiguration("test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest_Damaged_Rasp.xml", log); - } catch (RuntimeException e) { - assertTrue("Wrong exception message text: " + e.getMessage(), e.getMessage().startsWith("OIORASP cannot load configuration xml [test/src/dk/gov/oiosi/configuration/ConfigurationLoaderUtilTest_Damaged_Rasp.xml]")); + ConfigurationLoaderUtil.loadXMLConfiguration("test/resources/RaspConfiguration_damagedFile.xml", log); + fail("Expected exception not thrown."); + } catch (RaspLibraryException e) { + assertEquals("Wrong exception message text", "E-RSP11041: OIORASP cannot load configuration xml [test/resources/RaspConfiguration_damagedFile.xml]", e.getMessage().substring(0, e.getMessage().indexOf("]") + 1)); } assertNotNull(ConfigurationLoaderUtil.loadXMLConfiguration(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION, log)); assertNotNull(ConfigurationLoaderUtil.loadXMLConfiguration(TestConstants.PATH_RASPCONFIGURATION_TEST, log)); - assertNotNull(ConfigurationLoaderUtil.loadXMLConfiguration("test/src/dk/gov/oiosi/configuration/ConfigurationHandlerTest_RaspConfiguration_Old.xml", log)); + assertNotNull(ConfigurationLoaderUtil.loadXMLConfiguration("test/resources/RaspConfiguration_oldFormat.xml", log)); } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/VersionTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/VersionTest.java index 619d08d749e909ad8f109a88b0cecc0e912a26d9..a433c42a40845e6c0c6dfe7432a60cc27de7caa8 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/VersionTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/configuration/VersionTest.java @@ -13,7 +13,7 @@ public class VersionTest extends TestCase { ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); ConfigurationHandler.getInstance(true); // Use getVersionNumber() to avoid the (dynamic) SVN part on build server. - assertEquals("2.1.1", Version.getVersionNumber()); + assertEquals("3.0.0", Version.getVersionNumber()); ConfigurationHandler.clear(); } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapCertificateLookupProdTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapCertificateLookupProdTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5dce03d3a0e809bdcf28c328bb6a06b1171ccb3d --- /dev/null +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapCertificateLookupProdTest.java @@ -0,0 +1,150 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this + * file except in compliance with the License. You may obtain + * a copy of the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an + * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express + * or implied. See the License for the specific language governing + * rights and limitations under the License. + * + * + * The Original Code is Java RASP toolkit. + * + * The Initial Developer of the Original Code is Lenio. Portions + * created by Lenio are Copyright (C) 2007 Danish National IT and + * Telecom Agency (http://www.itst.dk). All Rights Reserved. + */ + +package dk.gov.oiosi.security.ldap; + +import dk.gov.oiosi.AbstractTestCase; +import dk.gov.oiosi.TestConstants; +import dk.gov.oiosi.common.DateUtil; +import dk.gov.oiosi.configuration.ConfigurationHandler; +import dk.gov.oiosi.security.CertificateSubject; +import dk.gov.oiosi.security.lookup.CertificateLookupException; + +import java.math.BigInteger; +import java.security.cert.X509Certificate; + +/** + * Collection of LDAP Lookup tests configured for LDAP Prod environments. + */ +public class LdapCertificateLookupProdTest extends AbstractTestCase { + + private LdapCertificateLookup ldapCertificateLookup; + + @Override + protected void setUp() throws Exception { + super.setUp(); + + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); + + LdapSettings ldapProdSettings = new LdapSettings(); + ldapProdSettings.setHostPortForNemId("crtdir.certifikat.dk:389"); + ldapProdSettings.setHostPortForMitId("ldap.ca1.cti-gov.dk:389"); + + ldapCertificateLookup = new LdapCertificateLookup(ldapProdSettings); + } + + public void testGetCertificateProdFoces2() throws Exception { +// Logger.getLogger(LdapCertificateLookup.class).setLevel(Level.TRACE); + String certSubject = "CN = Fakturablanket afsender 2020 (funktionscertifikat) + SERIALNUMBER = CVR:10150817-FID:98954812, O = Erhvervsstyrelsen // CVR:10150817, C = DK"; + X509Certificate result = ldapCertificateLookup.getCertificateFromLDAP(new CertificateSubject(certSubject)); +// System.err.println(result); + result.checkValidity(); + assertEquals("Wrong cert. found...", BigInteger.valueOf(1574014257), result.getSerialNumber()); + assertEquals("Wrong expire date found...", "2023-08-06T05:51:53 UTC", DateUtil.formatDate(result.getNotAfter())); + } + + public void testGetCertificate_nonExistingSubject() throws Exception { + String certSubject = "CN=Y (funktionscertifikat) + OID.2.5.4.5=CVR:11111111-FID:2222222222222, O=X, C=DK"; + try { + ldapCertificateLookup.getCertificateFromLDAP(new CertificateSubject(certSubject)); + fail("Exception not thrown - as expected"); + } catch (LdapCertificateNotFoundException e) { + assertEquals("Exception changed", "E-RSP19104: " + certSubject, e.getMessage()); + } + } + + /** + * https://bugs.softwareborsen.dk/show_bug.cgi?id=508 + */ + public void testLdapErrorHandling_nonExistingHostname() throws CertificateLookupException { + LdapSettings setting = new LdapSettings(); + CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_FUNCTION); + + // Test non-existing host + setting.setHostPortForNemId("www.WrongLdapServer.dk"); + LdapCertificateLookup ldapLookup = new LdapCertificateLookup(setting); + try { + X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); + fail("This test should fail, but found: " + result); + } catch (ConnectingToLdapServerFailedException e) { + // OK case! + } + } + + /** + * Verify that code can timeout a LDAP connection. + *

+ * https://bugs.softwareborsen.dk/show_bug.cgi?id=508 + */ + public void testLdapErrorHandling_hostWithTimeout() throws CertificateLookupException { + CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_FUNCTION); + + // Test invalid host with timeout: + LdapSettings setting = new LdapSettings(); + setting.setHostPortForNemId("www.google.com:81"); + setting.setConnectionTimeoutMsec(100); +// setting.setSearchClientTimeoutMsec(1); + LdapCertificateLookup ldapLookup = new LdapCertificateLookup(setting); + + try { + X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); + fail("This test should fail, but found result: " + result); + } catch (LdapCertificateLookupInitializationFailedException e) { + // OK case triggered in unit tests! + } catch (ConnectingToLdapServerFailedException e) { + // OK case triggered on build server! + } + + + // Test valid host with normal connect timeout, but ultra short connection timeout: + setting = new LdapSettings(); + setting.setHostPortForNemId("crtdir.certifikat.dk:389"); + setting.setConnectionTimeoutMsec(5000); + setting.setSocketTimeoutMsec(1); + ldapLookup = new LdapCertificateLookup(setting); + + try { + X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); + fail("This test should fail, but found result: " + result); + } catch (LdapCertificateLookupInitializationFailedException e) { + // OK case triggered in unit tests! + } catch (ConnectingToLdapServerFailedException e) { + // OK case triggered on build server! + } + } + + /** + * https://bugs.softwareborsen.dk/show_bug.cgi?id=508 + */ + public void testLdapErrorHandling_wrongHostname() throws CertificateLookupException { + LdapSettings setting = new LdapSettings(); + // Make fake subject, matching the NemID syntax: + CertificateSubject certSubject = new CertificateSubject("CN=Y (funktionscertifikat) + OID.2.5.4.5=CVR:11111111-FID:2222222222222, O=X, C=DK"); + + // Test wrong host + setting.setHostPortForNemId("www.nemhandel.dk:80"); + LdapCertificateLookup ldapLookup = new LdapCertificateLookup(setting); + try { + X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); + fail("This test should fail, but found: " + result); + } catch (LdapCertificateLookupInitializationFailedException e) { + // OK case! + } + } +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapCertificateLookupTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapCertificateLookupTest.java index f901574914f8e7125b737465fe0a5f57685e626b..3183c7ace46aa6c3a232024c7c62d097fa33a94f 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapCertificateLookupTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapCertificateLookupTest.java @@ -19,22 +19,20 @@ package dk.gov.oiosi.security.ldap; +import dk.gov.oiosi.AbstractTestCase; import dk.gov.oiosi.TestConstants; import dk.gov.oiosi.common.DateUtil; import dk.gov.oiosi.configuration.ConfigurationHandler; import dk.gov.oiosi.security.CertificateSubject; import dk.gov.oiosi.security.lookup.CertificateLookupException; -import junit.framework.TestCase; -import org.apache.log4j.Level; -import org.apache.log4j.Logger; import java.math.BigInteger; import java.security.cert.X509Certificate; /** - * http://www.nets.eu/dk-da/Service/kundeservice/nemid-tu/NemID-tjenesteudbyderpakken-okt-2014/Documents/Specifikationsdokument%20for%20LDAP%20API.pdf + * Collection of LDAP Lookup tests configured for LDAP Test environments. */ -public class LdapCertificateLookupTest extends TestCase { +public class LdapCertificateLookupTest extends AbstractTestCase { private LdapCertificateLookup ldapCertificateLookup; @@ -44,21 +42,11 @@ public class LdapCertificateLookupTest extends TestCase { ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); - LdapSettings ldapProdSettings = new LdapSettings(); - ldapProdSettings.setHost("crtdir.certifikat.dk"); - ldapProdSettings.setPort(389); +// LdapSettings ldapProdSettings = new LdapSettings(); +// ldapProdSettings.setHostPortForNemId("crtdir.certifikat.dk:389"); +// ldapProdSettings.setHostPortForMitId("ldap.ca1.cti-gov.dk:389"); - ldapCertificateLookup = new LdapCertificateLookup(ldapProdSettings); - } - - public void testGetCertificate_foces2() throws Exception { - Logger.getLogger(LdapCertificateLookup.class).setLevel(Level.TRACE); - String certSubject = "CN = Fakturablanket afsender 2020 (funktionscertifikat) + SERIALNUMBER = CVR:10150817-FID:98954812, O = Erhvervsstyrelsen // CVR:10150817, C = DK"; - X509Certificate result = ldapCertificateLookup.getCertificateFromLDAP(new CertificateSubject(certSubject)); - System.err.println(result); - result.checkValidity(); - assertEquals("Wrong cert. found...", BigInteger.valueOf(1574014257), result.getSerialNumber()); - assertEquals("Wrong expire date found...", "2023-08-06T05:51:53 UTC", DateUtil.formatDate(result.getNotAfter())); + ldapCertificateLookup = new LdapCertificateLookup(); } public void testGetCertificate_nonExistingSubject() throws Exception { @@ -67,17 +55,7 @@ public class LdapCertificateLookupTest extends TestCase { ldapCertificateLookup.getCertificateFromLDAP(new CertificateSubject(certSubject)); fail("Exception not thrown - as expected"); } catch (LdapCertificateNotFoundException e) { - assertEquals("Exception changed", certSubject, e.getMessage()); - } - } - - public void testGetCertificate_expired() throws Exception { - String certSubject = "CN=TU GENEREL FOCES udl?bet PremExp1d1h (funktionscertifikat) + OID.2.5.4.5=CVR:30808460-FID:50912949, O=NETS DANID A/S // CVR:30808460, C=DK"; - try { - ldapCertificateLookup.getCertificate(new CertificateSubject(certSubject)); - fail("Exception not thrown - as expected"); - } catch (LdapCertificateNotFoundException e) { - assertEquals("Exception changed", certSubject, e.getMessage()); + assertEquals("Exception changed", "E-RSP19104: " + certSubject, e.getMessage()); } } @@ -86,10 +64,10 @@ public class LdapCertificateLookupTest extends TestCase { */ public void testLdapErrorHandling_nonExistingHostname() throws CertificateLookupException { LdapSettings setting = new LdapSettings(); - CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_COMPANY); + CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_FUNCTION); // Test non-existing host - setting.setHost("www.WrongLdapServer.dk"); + setting.setHostPortForNemId("www.WrongLdapServer.dk"); LdapCertificateLookup ldapLookup = new LdapCertificateLookup(setting); try { X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); @@ -100,20 +78,40 @@ public class LdapCertificateLookupTest extends TestCase { } /** + * Verify that code can timeout a LDAP connection. + *

* https://bugs.softwareborsen.dk/show_bug.cgi?id=508 */ public void testLdapErrorHandling_hostWithTimeout() throws CertificateLookupException { - CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_COMPANY); + CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_FUNCTION); - // Test host with timeout + // Test invalid host with timeout: LdapSettings setting = new LdapSettings(); - setting.setHost("www.google.com"); - setting.setPort(81); + setting.setHostPortForNemId("www.google.com:81"); + setting.setConnectionTimeoutMsec(100); +// setting.setSearchClientTimeoutMsec(1); LdapCertificateLookup ldapLookup = new LdapCertificateLookup(setting); try { X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); - fail("This test should fail, but found: " + result); + fail("This test should fail, but found result: " + result); + } catch (LdapCertificateLookupInitializationFailedException e) { + // OK case triggered in unit tests! + } catch (ConnectingToLdapServerFailedException e) { + // OK case triggered on build server! + } + + + // Test valid host with normal connect timeout, but ultra short connection timeout: + setting = new LdapSettings(); + setting.setHostPortForNemId("crtdir.certifikat.dk:389"); + setting.setConnectionTimeoutMsec(5000); + setting.setSocketTimeoutMsec(1); + ldapLookup = new LdapCertificateLookup(setting); + + try { + X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); + fail("This test should fail, but found result: " + result); } catch (LdapCertificateLookupInitializationFailedException e) { // OK case triggered in unit tests! } catch (ConnectingToLdapServerFailedException e) { @@ -126,11 +124,10 @@ public class LdapCertificateLookupTest extends TestCase { */ public void testLdapErrorHandling_wrongHostname() throws CertificateLookupException { LdapSettings setting = new LdapSettings(); - CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_COMPANY); + CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_FUNCTION); // Test wrong host - setting.setHost("www.nemhandel.dk"); - setting.setPort(80); + setting.setHostPortForNemId("www.nemhandel.dk:80"); LdapCertificateLookup ldapLookup = new LdapCertificateLookup(setting); try { X509Certificate result = ldapLookup.getCertificateFromLDAP(certSubject); @@ -140,12 +137,20 @@ public class LdapCertificateLookupTest extends TestCase { } } - public void testLdapTestServer() throws Exception { - LdapCertificateLookup ldapLookup = LdapTestUtil.getLdapCertificateLookup_TEST(); - + public void testLdapTestServerFoces2Subject() throws Exception { CertificateSubject certSubject = new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_FUNCTION); - X509Certificate cert = ldapLookup.getCertificate(certSubject); + X509Certificate cert = ldapCertificateLookup.getCertificate(certSubject); assertEquals("Wrong cert. found...", BigInteger.valueOf(1538079514), cert.getSerialNumber()); assertEquals("Wrong end date found...", "2022-12-16T14:31:07 UTC", DateUtil.formatDate(cert.getNotAfter())); } + + public void testGetMitIdCertificateFromTestLdap() throws Exception { +// Logger.getLogger(LdapCertificateLookup.class).setLevel(Level.DEBUG); + String certSubject = "C=DK, 2.5.4.97=NTRDK-90146280, O=Testorganisation nr. 90146280, SERIALNUMBER=UI:DK-O:G:5c171e62-2ea8-4fbe-9e8b-115b84ae4543, CN=Nemhandel-DEV-OCES-cert-20210426"; + X509Certificate result = ldapCertificateLookup.getCertificateFromLDAP(new CertificateSubject(certSubject)); +// System.err.println(result); + result.checkValidity(); + assertEquals("Wrong cert. found...", "13767885220365794854391128163688578852867017704", result.getSerialNumber().toString()); + assertEquals("Wrong expire date found...", "2024-04-25T08:51:27 UTC", DateUtil.formatDate(result.getNotAfter())); + } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapTestUtil.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapTestUtil.java index 6769ed89e432e2d0be899342ecaedb2b18008069..5243c261ff18ea98548b464663ec03a377ce14b8 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapTestUtil.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/ldap/LdapTestUtil.java @@ -7,17 +7,15 @@ public class LdapTestUtil { public static LdapCertificateLookup getLdapCertificateLookup_PROD() { LdapSettings ldapProdSettings = new LdapSettings(); - ldapProdSettings.setHost("crtdir.certifikat.dk"); - ldapProdSettings.setPort(389); + ldapProdSettings.setHostPortForNemId("crtdir.certifikat.dk:389"); return new LdapCertificateLookup(ldapProdSettings); } public static LdapCertificateLookup getLdapCertificateLookup_TEST() { LdapSettings ldapProdSettings = new LdapSettings(); - ldapProdSettings.setHost("crtdir.pp.certifikat.dk"); - ldapProdSettings.setPort(389); + ldapProdSettings.setHostPortForNemId("crtdir.pp.certifikat.dk:389"); return new LdapCertificateLookup(ldapProdSettings); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/CertificateUtilTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/CertificateUtilTest.java index 2ed1ae08838a82b36d75b7066e5fdaa9c6d9db3c..e0a6307e60a6947a536a87d58d6bc8468c722f60 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/CertificateUtilTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/CertificateUtilTest.java @@ -52,14 +52,14 @@ public class CertificateUtilTest extends TestCase { } public void testGetIssuerUrls() throws Exception { - String certSubject = "SERIALNUMBER=CVR:33955871-FID:84806321 + CN=NavidocInvoiceManagement1 (funktionscertifikat), O=NAVIDOC ApS // CVR:33955871, C=DK"; + String certSubject = "CN = Fakturablanket afsender 2020 (funktionscertifikat) + SERIALNUMBER = CVR:10150817-FID:98954812, O = Erhvervsstyrelsen // CVR:10150817, C = DK"; X509Certificate cert = LdapTestUtil.getLdapCertificateLookup_PROD().getCertificateFromLDAP(new CertificateSubject(certSubject)); assertNotNull("Certificate not found", cert); List urlList = certificateUtil.getIssuerUrls(cert); assertNotNull("List is null", urlList); assertEquals("List size wrong", 1, urlList.size()); - assertEquals("Wrong content", "http://f.aia.ica02.trust2408.com/oces-issuing02-ca.cer", urlList.get(0).toString()); + assertEquals("Wrong content", "http://f.aia.ica04.trust2408.com/oces-issuing04-ca.cer", urlList.get(0).toString()); } public void testGetCrlURLs_PROD() throws Exception { @@ -74,8 +74,7 @@ public class CertificateUtilTest extends TestCase { } public void testGetCrlURLs_TEST() throws Exception { - String certSubject = "SERIALNUMBER = CVR:30808460-RID:45490598 + CN = TU GENEREL MOCES gyldig, O = NETS DANID A/S // CVR:30808460, C = DK"; - X509Certificate cert = LdapTestUtil.getLdapCertificateLookup_TEST().getCertificateFromLDAP(new CertificateSubject(certSubject)); + X509Certificate cert = LdapTestUtil.getLdapCertificateLookup_TEST().getCertificateFromLDAP(new CertificateSubject(TestConstants.TEST_CERTIFICATE_SUBJECT_FUNCTION)); assertNotNull("Certificate not found", cert); List urlList = certificateUtil.getCrlURLs(cert); diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/OcesX509CertificateTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/OcesX509CertificateTest.java index 3a5865be0e7f3e82031df7d4d2b5eeca199cfb0d..d347bdb89e73e95066412383c357be9b215ae778 100755 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/OcesX509CertificateTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/oces/OcesX509CertificateTest.java @@ -49,28 +49,9 @@ public class OcesX509CertificateTest extends TestCase { ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); } - public void testEmployeeType() throws Exception { - X509Certificate certificate = loadCertificate(TestConstants.PATH_MOCES1_VALID); - OcesX509Certificate ocesCertificate = new OcesX509Certificate(certificate); - assertEquals("Wrong cert. type", OcesCertificateType.OcesEmployee, ocesCertificate.getOcesCertificateType().getType()); - } - - public void testOrganisationType() throws Exception { - X509Certificate certificate = loadCertificate(TestConstants.PATH_VOCES1_TEST); - OcesX509Certificate ocesCertificate = new OcesX509Certificate(certificate); - assertEquals("Wrong type found", OcesCertificateType.OcesOrganisation, ocesCertificate.getOcesCertificateType().getType()); - } - public void testFunctionType() throws Exception { X509Certificate certificate = loadCertificate(TestConstants.PATH_FOCES2_VALID); - OcesX509Certificate ocesCertificate = new OcesX509Certificate(certificate); - assertEquals("Wrong type", OcesCertificateType.OcesDevice, ocesCertificate.getOcesCertificateType().getType()); - } - - public void testPersonType() throws Exception { - X509Certificate certificate = loadCertificate(TestConstants.PATH_CERTIFICATE_PERSON); - OcesX509Certificate ocesCertificate = new OcesX509Certificate(certificate); - assertTrue(OcesCertificateType.OcesPersonal == ocesCertificate.getOcesCertificateType().getType()); + assertEquals("Wrong type", OcesCertificateType.OcesDevice, OcesX509Certificate.getOcesCertificateType(certificate).getType()); } /** @@ -87,22 +68,22 @@ public class OcesX509CertificateTest extends TestCase { } public void testTryGetCvrOk() throws Exception { - X509Certificate certificate = loadCertificate(TestConstants.PATH_MOCES1_VALID); + X509Certificate certificate = loadCertificate(TestConstants.PATH_FOCES2_VALID); OcesX509Certificate ocesCertificate = new OcesX509Certificate(certificate); - OutVariable cvrNumberString = new OutVariable(); - boolean success = ocesCertificate.TryGetCvrNumberString(cvrNumberString); - assertTrue(success); + OutVariable cvrNumberString = new OutVariable<>(); + assertTrue(ocesCertificate.TryGetCvrNumberString(cvrNumberString)); assertEquals("30808460", cvrNumberString.getVariable()); } public void testTryGetCvrFail() throws Exception { X509Certificate certificate = loadCertificate(TestConstants.PATH_CERTIFICATE_PERSON); - OcesX509Certificate ocesCertificate = new OcesX509Certificate(certificate); - - OutVariable cvrNumberString = new OutVariable(); - boolean success = ocesCertificate.TryGetCvrNumberString(cvrNumberString); - assertFalse(success); + try { + new OcesX509Certificate(certificate); + fail("Exception should have been thrown here..."); + } catch (InvalidOcesCertificateException e) { + // OK. + } } /** @@ -110,7 +91,6 @@ public class OcesX509CertificateTest extends TestCase { * * @param file filename * @return certificate - * @throws Exception On error... */ private X509Certificate loadCertificate(String file) throws Exception { CertificateFactory factory = CertificateFactory.getInstance("X509"); diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlInstanceTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlInstanceTest.java index 6ade42e776f28149092a119211ec93d409c90ca2..c8961b80c36f006ee1032cf3f82e767534e27e2d 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlInstanceTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlInstanceTest.java @@ -60,7 +60,7 @@ public class CrlInstanceTest extends AbstractTestCase { try { CrlInstance.loadData(new URL("http://www.nemhandel.dk/xyz"), CertificateFactory.getInstance("X.509")); } catch (CheckCertificateRevokedUnexpectedException e) { - assertEquals("Wrong exception", "Unexpected exception during access to url=http://www.nemhandel.dk/xyz", e.getMessage()); + assertEquals("Wrong exception", "E-RSP19402: CRL-data could not be downloaded from url=http://www.nemhandel.dk/xyz: Moved Permanently", e.getMessage()); } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlLookupTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlLookupTest.java index 2f63827ee3c1e44de9002204622318f93d1f6d01..d0f13ebd7ea2acccdbef8308f948ffc7e31ad5d8 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlLookupTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/crl/CrlLookupTest.java @@ -35,10 +35,7 @@ import java.io.FileInputStream; import java.net.URL; import java.security.KeyStore; import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Random; +import java.util.*; /** * jUnit test class for testing certificate revocation against crl. @@ -81,8 +78,7 @@ public class CrlLookupTest extends AbstractTestCase { */ public void testRealCertificateFromSubject() throws Exception { LdapSettings ldapProdSettings = new LdapSettings(); - ldapProdSettings.setHost("crtdir.certifikat.dk"); - ldapProdSettings.setPort(389); + ldapProdSettings.setHostPortForNemId("crtdir.certifikat.dk:389"); LdapCertificateLookup ldapCertificateLookup = new LdapCertificateLookup(ldapProdSettings); String certSubject = "OID.2.5.4.5=CVR:34051178-FID:55310689 + CN=Digst Demo Endpoint Foces2 (funktionscertifikat), O=Digitaliseringsstyrelsen // CVR:34051178, C=DK"; @@ -136,8 +132,21 @@ public class CrlLookupTest extends AbstractTestCase { assertTrue("Cert. is revoked, even though ", response.isValid()); } + public void testMitID_valid() throws Exception { + KeyStore p12 = KeyStore.getInstance("pkcs12"); + p12.load(new FileInputStream(TestConstants.PATH_MITID_ORG_TEST), "?3ngCR4,gq86".toCharArray()); + Enumeration e = p12.aliases(); + assertTrue("No elements found", e.hasMoreElements()); + String alias = e.nextElement(); + X509Certificate cert = (X509Certificate) p12.getCertificate(alias); + assertTrue("This valid cert. has expired: " + cert.getNotAfter(), cert.getNotAfter().after(new Date())); + + RevocationResponse response = crlLookup.checkCertificate(cert); + assertTrue("Cert. [FOCES_gyldig_2022] should be valid...", response.isValid()); + } + public void testLookTestMultiThread() throws InterruptedException { - List threads = new ArrayList(); + List threads = new ArrayList<>(); for (int i = 0; i < 32; i++) { Runnable runnable = new ThreadCertificateCheck(); Thread thread = new Thread(runnable); diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfigTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfigTest.java index e04bbd82344e584ee00c445b62e4547788c760b9..5a3c367a779c2c6973dbbb52809cc39b1362ca77 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfigTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspConfigTest.java @@ -49,8 +49,8 @@ public class OcspConfigTest extends AbstractTestCase { ConfigurationHandler.getInstance(); OcspConfig ocspConfig = new OcspConfig(); - List certList = ocspConfig.getDefaultOcesRootCertificateCollectionFromStore(); - assertNotNull("Returned certList should not be null", certList); - assertEquals("List count wrong", 4, certList.size()); + List rootCertList = ocspConfig.getDefaultOcesRootCertificateCollectionFromStore(); + assertNotNull("Returned certList should not be null", rootCertList); + assertEquals("Root cert. list count wrong", 6, rootCertList.size()); } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookupTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookupTest.java index dce511c1d08f249bd3b51dfd639d9c92edc8864e..834009f862bbb6561b8528feaefb256691ab3177 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookupTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/revocation/ocsp/OcspLookupTest.java @@ -21,7 +21,6 @@ package dk.gov.oiosi.security.revocation.ocsp; import dk.gov.oiosi.AbstractTestCase; import dk.gov.oiosi.TestConstants; -import dk.gov.oiosi.configuration.ConfigurationException; import dk.gov.oiosi.configuration.ConfigurationHandler; import dk.gov.oiosi.configuration.ConfigurationHandlerCleaner; import dk.gov.oiosi.security.CertificateSubject; @@ -29,10 +28,12 @@ import dk.gov.oiosi.security.ldap.LdapCertificateLookup; import dk.gov.oiosi.security.ldap.LdapCertificateNotFoundException; import dk.gov.oiosi.security.ldap.LdapSettings; import dk.gov.oiosi.security.lookup.CertificateLookupException; +import dk.gov.oiosi.security.oces.CertificateUtil; import dk.gov.oiosi.security.revocation.RevocationException; import dk.gov.oiosi.security.revocation.RevocationResponse; +import org.bouncycastle.cert.ocsp.OCSPReq; +import org.junit.Test; -import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.security.KeyStore; @@ -64,12 +65,13 @@ public class OcspLookupTest extends AbstractTestCase { /** * Test OCSP for revoked certificate. */ + @Test public void testFoces2_ok_fromRealSubject() throws Exception { X509Certificate x509Certificate = getX509CertificateFromLDAP("OID.2.5.4.5=CVR:10150817-FID:73995930 + CN=demo.nemhandel.dk_modtager_2020 (funktionscertifikat), O=Erhvervsstyrelsen // CVR:10150817, C=DK"); assertNotNull("Certificate not found", x509Certificate); RevocationResponse revocationResponse = ocspLookup.checkCertificate(x509Certificate); - assertTrue("Certificate should be OCSP valid...", revocationResponse.isValid()); + assertTrue("Certificate should be OCSP valid, but is NOT!", revocationResponse.isValid()); } /** @@ -90,30 +92,37 @@ public class OcspLookupTest extends AbstractTestCase { assertFalse("Revoked Foces2 is evaluated as valid..!", response.isValid()); } +// /** +// * Special case using a really old FOCES, where the issuing cert. also is too old... creating an exception. +// */ +// public void testFoces2_expiredVeryOld() throws Exception { +// // Use TEST RASP, to get the test root certificates. +// ConfigurationHandlerCleaner.clear(); +// ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); +// ocspLookup = new OcspLookup(); +// +// X509Certificate cert = getCertificate("FOCES_udloebet"); +// assertEquals("Wrong serial number... wrong cert.?", "1276276245", cert.getSerialNumber().toString()); +// try { +// ocspLookup.revocationResponseOnline(cert); +// fail("Exception not thrown as expected"); +// } catch (IllegalStateException e) { +// assertEquals("Wrong error found","E-RSP19449: OCSP issuing/signing certificate is not valid", e.getMessage()); +// } +// } + /** - * A revoked certificate cannot be found from LDAP. + * Normal case using a (newer) expired FOCES. */ - public void testFoces2_revoked_fromSubject() throws Exception { - try { - getX509CertificateFromLDAP("CN = TU GENEREL FOCES sp�rret (funktionscertifikat) + SERIALNUMBER = CVR:30808460-FID:45327473, O = NETS DANID A/S // CVR:30808460, C = DK"); - } catch (LdapCertificateNotFoundException e) { - // ok - } -// assertNotNull("Certificate not found", cert); - -// RevocationResponse response = ocspLookup.checkCertificate(cert); -// assertFalse("Revoked Foces2 is evaluated as valid..!", response.isValid()); - } - - public void testFoces2_expired() throws Exception { + public void testFoces2_expiredNormal() throws Exception { // Use TEST RASP, to get the test root certificates. - ConfigurationHandlerCleaner.clear(); - ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); +// ConfigurationHandlerCleaner.clear(); +// ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); ocspLookup = new OcspLookup(); - - X509Certificate cert = getCertificate("FOCES_udloebet"); - RevocationResponse response = ocspLookup.checkCertificate(cert); + X509Certificate cert = getCertificate("DIGST_PROD_expire_2020"); + assertEquals("Wrong serial number... wrong cert.?", "1466083949", cert.getSerialNumber().toString()); + RevocationResponse response = ocspLookup.revocationResponseOnline(cert); // NOTE - the certificate is not revoked, even though it is expired assertTrue("Expired, but not revoked, so it should be OK...", response.isValid()); @@ -135,7 +144,7 @@ public class OcspLookupTest extends AbstractTestCase { } public void testLookTestMultiThread() throws InterruptedException { - List threads = new ArrayList(); + List threads = new ArrayList<>(); for (int i = 0; i < 32; i++) { Runnable runnable = new ThreadCertificateCheck(); Thread thread = new Thread(runnable); @@ -165,7 +174,7 @@ public class OcspLookupTest extends AbstractTestCase { * * @param keyLabel Key on the certificate to load from JKS. * @return X509Certificate - * @throws Exception On error... + * @throws Exception On error. */ private X509Certificate getCertificate(String keyLabel) throws Exception { // define receiver certificate @@ -181,9 +190,11 @@ public class OcspLookupTest extends AbstractTestCase { public void testWrongUrl() throws Exception { X509Certificate cert = getCertificate("FOCES_gyldig_2022"); try { - ocspLookup.revocationResponseOnline(cert, cert, "http://www.nemhandel.dk/unknownUrl"); + OCSPReq req = ocspLookup.generateOcspRequest(cert, cert.getSerialNumber()); + + ocspLookup.getOnlineBinaryHttpResponse(req, "http://www.nemhandel.dk/unknownUrl"); } catch (RevocationException e) { - assertTrue("Wrong exception text:\n" + e.getMessage(), e.getMessage().startsWith("HTTP response code from OCSP request to [http://www.nemhandel.dk/unknownUrl] was:")); + assertEquals("Wrong exception text:", "E-RSP19450: HTTP response code from OCSP request to [http://www.nemhandel.dk/unknownUrl] was: 301", e.getMessage().substring(0, e.getMessage().indexOf("301") + 3)); } } @@ -194,26 +205,26 @@ public class OcspLookupTest extends AbstractTestCase { OcspLookup ocspLookup = new OcspLookup(ocspConfig); X509Certificate cert = getCertificate("client_person"); - assertEquals("http://test.ocsp.certifikat.dk/ocsp/status", ocspLookup.GetServerUriFromCertificate(cert)); + assertEquals("http://test.ocsp.certifikat.dk/ocsp/status", ocspLookup.getServerUriFromCertificate(cert)); } public void testGetServerUriFromCertificateWithRootCert() throws Exception { - OcspConfig ocspConfig = new OcspConfig(); - ocspConfig.setDefaultTimeoutMsec(10000); InputStream inStream = new FileInputStream(TestConstants.PATH_CERTIFICATE_ROOT); CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate rootCert = (X509Certificate) cf.generateCertificate(inStream); + OcspConfig ocspConfig = new OcspConfig(); + ocspConfig.setDefaultTimeoutMsec(10000); OcspLookup ocspLookup = new OcspLookup(ocspConfig, rootCert); X509Certificate cert = getCertificate("client_person"); - assertEquals("http://test.ocsp.certifikat.dk/ocsp/status", ocspLookup.GetServerUriFromCertificate(cert)); + assertEquals("http://test.ocsp.certifikat.dk/ocsp/status", ocspLookup.getServerUriFromCertificate(cert)); } public void testFoces2_ok_fromPkcs12File() throws Exception { String p12FilePath = TestConstants.PATH_COMMON + "Certificates/Test/Funktionscertifikat/FOCES_gyldig_2022.p12"; KeyStore p12 = KeyStore.getInstance("pkcs12"); - p12.load(new FileInputStream(new File(p12FilePath)), "Test1234".toCharArray()); + p12.load(new FileInputStream(p12FilePath), "Test1234".toCharArray()); Enumeration e = p12.aliases(); assertTrue("No elements found", e.hasMoreElements()); String alias = e.nextElement(); @@ -224,10 +235,47 @@ public class OcspLookupTest extends AbstractTestCase { assertTrue("Certificate should be OCSP valid...", revocationResponse.isValid()); } + public void testMitIdTestCertificate() throws Exception { + KeyStore p12 = KeyStore.getInstance("pkcs12"); + p12.load(new FileInputStream(TestConstants.PATH_MITID_ORG_TEST), "?3ngCR4,gq86".toCharArray()); + Enumeration e = p12.aliases(); + assertTrue("No elements found", e.hasMoreElements()); + String alias = e.nextElement(); + X509Certificate certificate = (X509Certificate) p12.getCertificate(alias); + assertEquals("Wrong cert. subject found", "C=DK, OID.2.5.4.97=NTRDK-90146280, O=Testorganisation nr. 90146280, SERIALNUMBER=UI:DK-O:G:3c0f8cbc-4abe-4c6b-b40f-7236a2f39c7c, CN=Nemhandel-DEV-OCES-cert-20210422", certificate.getSubjectDN().toString()); + + RevocationResponse revocationResponse = ocspLookup.revocationResponseOnline(certificate); + assertTrue("Certificate should be OCSP valid...", revocationResponse.isValid()); + } + + /** + * Verify that our self-signed check functionality works. + */ + public void testMitIdTestCertificateRoot() throws Exception { + KeyStore p12 = KeyStore.getInstance("pkcs12"); + p12.load(new FileInputStream(TestConstants.PATH_MITID_ORG_TEST), "?3ngCR4,gq86".toCharArray()); + Enumeration e = p12.aliases(); + assertTrue("No elements found", e.hasMoreElements()); + String alias = e.nextElement(); + X509Certificate certificate = (X509Certificate) p12.getCertificate(alias); + X509Certificate issuerCertificate = new CertificateUtil().downloadIssuerCert(certificate); + assertEquals("Wrong issuer cert. found", "C=DK, O=Den Danske Stat, OU=Test - cti, CN=Den Danske Stat OCES udstedende-CA 1", issuerCertificate.getSubjectDN().toString()); + + X509Certificate rootCertificate = new CertificateUtil().downloadIssuerCert(issuerCertificate); + assertEquals("Wrong root cert. found", "C=DK, O=Den Danske Stat, OU=Test - cti, CN=Den Danske Stat OCES rod-CA", rootCertificate.getSubjectDN().toString()); + + try { + ocspLookup.revocationResponseOnline(rootCertificate); + fail("Exception not thrown - as expected"); + } catch (RevocationException ex) { + assertEquals("Wrong error", "E-RSP19442: Certificate not trusted, as the certificate is self-signed", ex.getMessage()); + } + } + public void testFoces2_revoked_fromPkcs12File() throws Exception { String p12FilePath = TestConstants.PATH_COMMON + "Certificates/Test/Funktionscertifikat/FOCES_spaerret_2022.p12"; KeyStore p12 = KeyStore.getInstance("pkcs12"); - p12.load(new FileInputStream(new File(p12FilePath)), "Test1234".toCharArray()); + p12.load(new FileInputStream(p12FilePath), "Test1234".toCharArray()); Enumeration e = p12.aliases(); assertTrue("No elements found", e.hasMoreElements()); String alias = e.nextElement(); @@ -248,15 +296,13 @@ public class OcspLookupTest extends AbstractTestCase { // assertTrue(response.isValid()); // } - private X509Certificate getX509CertificateFromLDAP(String certSubject) throws ConfigurationException, CertificateLookupException { + private X509Certificate getX509CertificateFromLDAP(String certSubject) throws CertificateLookupException { // Use PROD RASP, to get the real root certificates. ConfigurationHandlerCleaner.clear(); ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION); - ocspLookup = new OcspLookup(); LdapSettings ldapProdSettings = new LdapSettings(); - ldapProdSettings.setHost("crtdir.certifikat.dk"); - ldapProdSettings.setPort(389); + ldapProdSettings.setHostPortForNemId("crtdir.certifikat.dk:389"); LdapCertificateLookup ldapCertificateLookup = new LdapCertificateLookup(ldapProdSettings); X509Certificate cert = ldapCertificateLookup.getCertificateFromLDAP(new CertificateSubject(certSubject)); diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/validation/CertificateValidatorTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/validation/CertificateValidatorTest.java index 67c4369c4eaed8aa019bc4be5be2618bb80abe84..32ce4a521129bc9e23bdae7f0fa7f995130e458f 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/validation/CertificateValidatorTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/security/validation/CertificateValidatorTest.java @@ -49,9 +49,9 @@ public class CertificateValidatorTest extends TestCase { } } - public void testCompanyCertificate() throws Exception { - assertCertificateOK(TestConstants.TEST_CERTIFICATE_SUBJECT_COMPANY); - } +// public void testCompanyCertificate() throws Exception { +// assertCertificateOK(TestConstants.TEST_CERTIFICATE_SUBJECT_COMPANY); +// } /** * Get company certificate. diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/service/OiosiServiceReceiverFault.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/service/OiosiServiceReceiverFault.java index a7a5598941181e78a015d5b44f3bc0e5db39de97..3cb303b61d8ac52a5f87bbfdeda2c1784efeec06 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/service/OiosiServiceReceiverFault.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/service/OiosiServiceReceiverFault.java @@ -41,16 +41,16 @@ public class OiosiServiceReceiverFault extends OiosiService { * @see dk.gov.oiosi.test.service.OiosiService#requestRespond(dk.gov.oiosi.communication.OiosiMessage) */ public OiosiMessage requestRespond(OiosiMessage message) throws MainException { - log.error("OIOSI Receiver Fault Start"); + log.error("OIORASP Receiver Fault Start"); OMElement document = message.getMessageXml().getOMDocument(); String messageId = message.getMessageIdentifier(); invokeCounter++; if (document == null) { - log.error("OIOSI Receiver Fault - Test Service Received empty document : total/confirm/timeout/cancel/abort = " + log.error("OIORASP Receiver Fault - Test Service Received empty document : total/confirm/timeout/cancel/abort = " + invokeCounter + "/" + confirmCounter + "/" + timeoutCounter + "/" + faultedCounter + " : " + messageId); } else { - log.error("OIOSI Receiver Fault - Test Service received DOCUMENT : total/confirm/timeout/cancel/abort = " + log.error("OIORASP Receiver Fault - Test Service received DOCUMENT : total/confirm/timeout/cancel/abort = " + invokeCounter + "/" + confirmCounter + "/" + timeoutCounter + "/" + faultedCounter + " : " + messageId + " :: " + document.getLocalName()); } @@ -61,4 +61,4 @@ public class OiosiServiceReceiverFault extends OiosiService { throw e; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/AdvancedUddiDummyClient.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/AdvancedUddiDummyClient.java index d751119d0118580a1950154fde590e425f26b924..5455b0f2671bf311c998d289ab4d788c6be97151 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/AdvancedUddiDummyClient.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/AdvancedUddiDummyClient.java @@ -1,7 +1,6 @@ package dk.gov.oiosi.test.unit.uddi; import dk.gov.oiosi.addressing.EndpointAddress; -import dk.gov.oiosi.addressing.EndpointAddressHttp; import dk.gov.oiosi.addressing.Identifier; import dk.gov.oiosi.communication.Uri; import dk.gov.oiosi.exception.MainException; @@ -11,89 +10,73 @@ import dk.gov.oiosi.uddi.*; import java.util.*; public class AdvancedUddiDummyClient implements IUddiLookupClient { - private AdvancedUddiDummyClientConfig configuration; - private Uri _address; - public AdvancedUddiDummyClient(Uri address){ - _address = address; - this.configuration = AdvancedUddiDummyClientConfig.getInstance(); - } + private final Uri address; + private final AdvancedUddiDummyClientConfig configuration; - public AdvancedUddiDummyClientConfig getAdvancedUddiDummyClientConfig() { - return configuration; - } - - public void setAdvancedUddiDummyClientConfig(AdvancedUddiDummyClientConfig configuration) { - this.configuration = configuration; - } - + public AdvancedUddiDummyClient(Uri address, int uddiLookupTimeoutSeconds) { + this.address = address; + this.configuration = AdvancedUddiDummyClientConfig.getInstance(); + } public List lookup(LookupParameters parameters) throws MainException { - if (configuration._erroneousEndpoints.contains(_address)) { - System.out.println("Dummy UDDI throwing on register " + _address); - throw new UddiException(parameters.getIdentifier().getAsString(), new Exception("Error error")); - } - if (configuration.getNonExistingRegistrations().containsKey(_address) && configuration.getNonExistingRegistrations().get(_address).contains(parameters.getIdentifier())) { - System.out.println("Dummy UDDI returning empty from register " + _address); - return new ArrayList(); - } - System.out.println("Dummy UDDI returning " + parameters.getIdentifier().getAsString() + " from " + _address); - ArrayList responses = new ArrayList(); - Identifier endpointIdentifierActual = parameters.getIdentifier(); - EndpointAddress endpointAddress = new EndpointAddressHttp(_address); - Calendar calendar = Calendar.getInstance(); - calendar.set(2006, 9, 01, 8, 30); - Date activationDate = calendar.getTime(); - calendar.set(2056, 9, 01, 8, 30); - Date expirationDate = calendar.getTime(); - CertificateSubject subject = new CertificateSubject("SERIALNUMBER=CVR:25767535-UID:1100080130597 + CN=TDC TOTALLØSNINGER A/S - TDC Test, O=TDC TOTALLØSNINGER A/S // CVR:25767535, C=DK"); - List processesRoles = new ArrayList(); - UddiLookupResponse response = new UddiLookupResponse(endpointIdentifierActual, endpointAddress, activationDate, expirationDate, subject, null, null, processesRoles); - responses.add(response); - return responses; + if (configuration._erroneousEndpoints.contains(address)) { + System.out.println("Dummy UDDI throwing on register " + address); + throw new UddiException(parameters.getIdentifier().getAsString(), new Exception("Error error")); + } + if (configuration.getNonExistingRegistrations().containsKey(address) && configuration.getNonExistingRegistrations().get(address).contains(parameters.getIdentifier())) { + System.out.println("Dummy UDDI returning empty from register " + address); + return new ArrayList<>(); + } + System.out.println("Dummy UDDI returning " + parameters.getIdentifier().getAsString() + " from " + address); + ArrayList responses = new ArrayList<>(); + Identifier endpointIdentifierActual = parameters.getIdentifier(); + EndpointAddress endpointAddress = new EndpointAddress(address); + Calendar calendar = Calendar.getInstance(); + calendar.set(2006, Calendar.OCTOBER, 1, 8, 30); + Date activationDate = calendar.getTime(); + calendar.set(2056, Calendar.OCTOBER, 1, 8, 30); + Date expirationDate = calendar.getTime(); + CertificateSubject subject = new CertificateSubject("SERIALNUMBER=CVR:25767535-UID:1100080130597 + CN=TDC TOTALLØSNINGER A/S - TDC Test, O=TDC TOTALLØSNINGER A/S // CVR:25767535, C=DK"); + List processesRoles = new ArrayList<>(); + UddiLookupResponse response = new UddiLookupResponse(endpointIdentifierActual, endpointAddress, activationDate, expirationDate, subject, null, null, processesRoles); + responses.add(response); + return responses; } - - @Override - public List getProcessDefinitions( - List processDefinitionIds) throws MainException { - // Currently this is not used in tests - return null; - } - + + @Override + public List getProcessDefinitions(List processDefinitionIds) { + // Currently this is not used in tests + return null; + } + public static class AdvancedUddiDummyClientConfig { - private List _erroneousEndpoints = new ArrayList(); - private Map> _nonExistingRegistrations = new HashMap>(); + + private static final Object _lock = new Object(); private static AdvancedUddiDummyClientConfig _instance = null; - private static Object _lock = new Object(); - + private List _erroneousEndpoints = new ArrayList<>(); + private Map> _nonExistingRegistrations = new HashMap<>(); + public AdvancedUddiDummyClientConfig() { - System.out.println("AdvancedUddiDummyClientConfig()"); + System.out.println("AdvancedUddiDummyClientConfig()"); } - + public static AdvancedUddiDummyClientConfig getInstance() { - synchronized (_lock) { - if (_instance == null) { - _instance = new AdvancedUddiDummyClientConfig(); - } - return _instance; - } - } - - - public List getErroneousEndpoints() { - return _erroneousEndpoints; + synchronized (_lock) { + if (_instance == null) { + _instance = new AdvancedUddiDummyClientConfig(); + } + return _instance; + } } - public void setErroneousEndpoints(List erroneousEndpoints) { - _erroneousEndpoints = erroneousEndpoints; + + public List getErroneousEndpoints() { + return _erroneousEndpoints; } public Map> getNonExistingRegistrations() { return _nonExistingRegistrations; } - - public void setNonExistingRegistrations(Map> NonExistingRegistrations) { - _nonExistingRegistrations = NonExistingRegistrations; - } } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/RegistryLookupClientFactoryTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/RegistryLookupClientFactoryTest.java index 8fd14d86beb3e633d3f395a9d5ed8de4e3d3ff58..5a23bebfa4b4913a5dbc237f71cc620ba82041e6 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/RegistryLookupClientFactoryTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/RegistryLookupClientFactoryTest.java @@ -15,6 +15,14 @@ import java.util.List; public class RegistryLookupClientFactoryTest extends TestCase { + static { + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); + } + + private final Identifier endpointInNoRegistry = new Identifier("EAN", "5700000000000"); + private final Identifier endpointInFirstRegistry = new Identifier("EAN", "5700000000001"); + private final Identifier endpointInSecondRegistry = new Identifier("EAN", "5700000000002"); + private final Identifier endpointInFourthRegistry = new Identifier("EAN", "5700000000004"); private Uri firstRegistryUri; private Uri firstFallbackUri; private Uri secondRegistryUri; @@ -24,15 +32,6 @@ public class RegistryLookupClientFactoryTest extends TestCase { private Uri fourthFallbackUri1; private Uri fourthFallbackUri2; - private Identifier endpointInNoRegistry = new Identifier("EAN", "5700000000000"); - private Identifier endpointInFirstRegistry = new Identifier("EAN", "5700000000001"); - private Identifier endpointInSecondRegistry = new Identifier("EAN", "5700000000002"); - private Identifier endpointInFourthRegistry = new Identifier("EAN", "5700000000004"); - - static { - ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); - } - @Override public void setUp() throws Exception { firstRegistryUri = new Uri("http://test1.com"); @@ -48,7 +47,7 @@ public class RegistryLookupClientFactoryTest extends TestCase { } public void test_01_SuccessfulOnFirstLookup() throws MainException { - GetClearDummyConfig(); + getClearDummyConfig(); IUddiLookupClient client = RegistryLookupClientFactory.getRegistryLookupClient(); List result = client.lookup(CreateParams(endpointInFirstRegistry)); @@ -58,7 +57,7 @@ public class RegistryLookupClientFactoryTest extends TestCase { } public void test_02_SuccessfulOnFirstFallback() throws MainException { - AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = GetClearDummyConfig(); + AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = getClearDummyConfig(); config.getErroneousEndpoints().add(firstRegistryUri); IUddiLookupClient client = RegistryLookupClientFactory.getRegistryLookupClient(); List result = client.lookup(CreateParams(endpointInFirstRegistry)); @@ -68,7 +67,7 @@ public class RegistryLookupClientFactoryTest extends TestCase { } public void test_03_FailureOnFirstRegistry() throws MainException { - AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = GetClearDummyConfig(); + AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = getClearDummyConfig(); config.getErroneousEndpoints().add(firstRegistryUri); config.getErroneousEndpoints().add(firstFallbackUri); IUddiLookupClient client = RegistryLookupClientFactory.getRegistryLookupClient(); @@ -81,8 +80,8 @@ public class RegistryLookupClientFactoryTest extends TestCase { } public void test_04_SuccessfulOnSecondRegistry() throws MainException { - AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = GetClearDummyConfig(); - List endpointIdentifier = new ArrayList(); + AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = getClearDummyConfig(); + List endpointIdentifier = new ArrayList<>(); endpointIdentifier.add(endpointInSecondRegistry); config.getNonExistingRegistrations().put(firstRegistryUri, endpointIdentifier); IUddiLookupClient client = RegistryLookupClientFactory.getRegistryLookupClient(); @@ -93,9 +92,9 @@ public class RegistryLookupClientFactoryTest extends TestCase { } public void test_05_SuccessfulOnLastFallback() throws MainException { - AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = GetClearDummyConfig(); + AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = getClearDummyConfig(); - List endpointIdentifier = new ArrayList(); + List endpointIdentifier = new ArrayList<>(); endpointIdentifier.add(endpointInFourthRegistry); config.getNonExistingRegistrations().put(firstRegistryUri, endpointIdentifier); @@ -112,9 +111,9 @@ public class RegistryLookupClientFactoryTest extends TestCase { } public void test_06_UnsuccessfulOnAllRegistries() throws MainException { - AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = GetClearDummyConfig(); + AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig config = getClearDummyConfig(); - List endpointIdentifier = new ArrayList(); + List endpointIdentifier = new ArrayList<>(); endpointIdentifier.add(endpointInNoRegistry); config.getNonExistingRegistrations().put(firstRegistryUri, endpointIdentifier); @@ -135,11 +134,9 @@ public class RegistryLookupClientFactoryTest extends TestCase { null); } - private AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig GetClearDummyConfig() { + private AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig getClearDummyConfig() { // Clears the dummy so that all calls return a result AdvancedUddiDummyClient.AdvancedUddiDummyClientConfig dummyConfig = AdvancedUddiDummyClientConfig.getInstance(); - //dummyConfig.setErroneousEndpoints(new ArrayList()); - //dummyConfig.setNonExistingRegistrations(new HashMap>()); dummyConfig.getNonExistingRegistrations().clear(); dummyConfig.getErroneousEndpoints().clear(); return dummyConfig; @@ -149,27 +146,26 @@ public class RegistryLookupClientFactoryTest extends TestCase { // Configures fallback sequence ConfigurationHandler handler = ConfigurationHandler.getInstance(); UddiConfig uddiConfig = handler.getUddiConfig(); - uddiConfig.setFallbackTimeoutMinutes(1); LookupRegistryFallbackConfig lookupRegistryFallbackConfig = new LookupRegistryFallbackConfig(); uddiConfig.setLookupRegistryFallbackConfig(lookupRegistryFallbackConfig); - ArrayList registries = new ArrayList(); + ArrayList registries = new ArrayList<>(); - List firstRegistryList = new ArrayList(); + List firstRegistryList = new ArrayList<>(); firstRegistryList.add(firstRegistryUri); firstRegistryList.add(firstFallbackUri); registries.add(new Registry(firstRegistryList)); - List secondRegistryList = new ArrayList(); + List secondRegistryList = new ArrayList<>(); secondRegistryList.add(secondRegistryUri); secondRegistryList.add(secondFallbackUri); registries.add(new Registry(secondRegistryList)); - List thirdRegistryList = new ArrayList(); + List thirdRegistryList = new ArrayList<>(); thirdRegistryList.add(thirdRegistryUri); registries.add(new Registry(thirdRegistryList)); - List fourthRegistryList = new ArrayList(); + List fourthRegistryList = new ArrayList<>(); fourthRegistryList.add(fourthRegistryUri); fourthRegistryList.add(fourthFallbackUri1); fourthRegistryList.add(fourthFallbackUri2); @@ -184,6 +180,6 @@ public class RegistryLookupClientFactoryTest extends TestCase { UddiLookupClientFactoryConfig uddiLookupClientFactoryConfig = handler.getUddiLookupClientFactoryConfig(); uddiLookupClientFactoryConfig.setImplementationNamespaceClass("dk.gov.oiosi.test.unit.uddi.AdvancedUddiDummyClient"); - uddiLookupClientFactoryConfig.setImplementationAssembly("AdvancedUddiDummyClient).Assembly.FullName"); +// uddiLookupClientFactoryConfig.setImplementationAssembly("AdvancedUddiDummyClient).Assembly.FullName"); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/UddiConfigTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/UddiConfigTest.java index b5ec1b049e0e3544a01d2c55875137cd222a01fb..00b3bd370e94a7a4d88366b315494cd7553644e5 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/UddiConfigTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/unit/uddi/UddiConfigTest.java @@ -22,8 +22,6 @@ public class UddiConfigTest extends AbstractTestCase { private final String _registry2Endpoint1 = "http://test2.com"; private final String _registry2Endpoint2 = "http://fallback2.com"; - private final int _fallbackTimeout = 15; - public void setUp() throws Exception { super.setUp(); resetRaspConfigurationToDefaultTest(); @@ -46,7 +44,6 @@ public class UddiConfigTest extends AbstractTestCase { ConfigurationHandler handler = ConfigurationHandler.getInstance(); UddiConfig config = handler.getUddiConfig(); - config.setFallbackTimeoutMinutes(_fallbackTimeout); LookupRegistryFallbackConfig lookupRegistryFallbackConfig = new LookupRegistryFallbackConfig(); ArrayList registries = new ArrayList(); @@ -74,7 +71,6 @@ public class UddiConfigTest extends AbstractTestCase { ConfigurationHandler handler = ConfigurationHandler.getInstance(); UddiConfig config = handler.getUddiConfig(); - assertEquals(_fallbackTimeout, config.getFallbackTimeoutMinutes()); LookupRegistryFallbackConfig lookupRegistryFallbackConfig = config.getLookupRegistryFallbackConfig(); assertNotNull("No fallback config found", lookupRegistryFallbackConfig); diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/util/TickTock.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/util/TickTock.java index a08ce765da5dd81a0d4e3e03460fb40d2ee4483f..3868dcfff6109783e8a05fe08f252aa277ed83b6 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/util/TickTock.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/test/util/TickTock.java @@ -10,7 +10,6 @@ import java.util.*; * If tock(text) is called several times for the same text, it calculates * average duration.
* - * @author Dmitriy Lapko, TrueLink A/S * @since OIORASP 1.3.0 */ public class TickTock implements Serializable { diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/LookupParametersTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/LookupParametersTest.java index 703c0ac33633e03b0d13467832b8e87c2f9059d6..297cdbcc66f824bebf90487383fd9deb96447f10 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/LookupParametersTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/LookupParametersTest.java @@ -32,4 +32,4 @@ public class LookupParametersTest extends TestCase { assertNotNull("Should NOT be null", lookupParameters.getAcceptedTransportProtocols()); assertEquals("Wrong size", 1, lookupParameters.getAcceptedTransportProtocols().size()); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiFallbackClientTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiFallbackClientTest.java index bcc9d4a1292c8df61e5bae4e0f3f41faea56c0dd..acddb6f1816544415e330ab1e5eb52555ae7eff0 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiFallbackClientTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiFallbackClientTest.java @@ -23,7 +23,6 @@ import dk.gov.oiosi.AbstractTestCase; import dk.gov.oiosi.TestConstants; import dk.gov.oiosi.communication.Uri; import dk.gov.oiosi.configuration.ConfigurationHandler; -import junit.framework.TestCase; public class UddiFallbackClientTest extends AbstractTestCase { @@ -34,7 +33,7 @@ public class UddiFallbackClientTest extends AbstractTestCase { super.setUp(); ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION); - uddiFallbackClient = new UddiFallbackClient(null); + uddiFallbackClient = new UddiFallbackClient(null, 0); } @Override diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiLookupClientTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiLookupClientTest.java index f5fe3e4e7942797e75684f6f14f27c06c85ff5cd..902bec202919c5351691fc961cc9b0c8a1af144f 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiLookupClientTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/uddi/UddiLookupClientTest.java @@ -13,8 +13,10 @@ import dk.gov.oiosi.exception.MainException; import dk.gov.oiosi.security.CertificateSubject; import dk.gov.oiosi.xml.XmlDocument; import dk.gov.oiosi.xml.documenttype.DocumentTypeConfigSearcher; +import dk.itst.uddi.client.exceptions.UDDIException; import java.io.File; +import java.net.URISyntaxException; import java.util.*; /** @@ -24,13 +26,11 @@ import java.util.*; */ public class UddiLookupClientTest extends AbstractTestCase { - private final Identifier eanIdentifier = new Identifier("EAN", "5798009811578"); + private final Identifier dotNetEndpoint = new Identifier("EAN", "5798009811561"); private final UddiId documentId_nonExisting = new UddiGuidId("uddi:xyz-0123456789", true); private final UddiId serviceId_order = new UddiGuidId("uddi:b138dc71-d301-42d1-8c2e-2c3a26faf56a", true); private final UddiId documentId_invoice = new UddiGuidId("uddi:2e0b402a-7a5e-476b-8686-b33f54fd1f47", true); private final UddiId profile_nonExistingProfileId = new UddiGuidId("uddi:88fbd6d5-6a25-4c08-91cc-5344c73c1111", true); - // private final UddiId documentId_applicationResponse = new UddiGuidId("uddi:42F92342-C3ED-46ff-8A8A-6518F55D5CD5", true); -// private final UddiId documentId_creditNote = new UddiGuidId("uddi:e4ec9613-4830-4bab-afee-c37ab1c67aec", true); private final UddiId profile_NES_5 = new UddiGuidId("uddi:AEE8B6DE-298F-4cbc-A96D-9AE8AED0AC31", true); private final UddiId profile_BilSim = new UddiGuidId("uddi:362229ac-b657-452a-b8f8-c93e62c670ff", true); private final UddiId profile_OrdAdvBilSim = new UddiGuidId("uddi:88fbd6d5-6a25-4c08-91cc-5344c73c4d69", true); @@ -40,19 +40,18 @@ public class UddiLookupClientTest extends AbstractTestCase { public void setUp() throws Exception { super.setUp(); -// ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_PRODUCTION); resetRaspConfigurationToDefaultTest(); UddiConfig config = ConfigurationHandler.getInstance().getUddiConfig(true); - Uri NHRServerUrl = config.getLookupRegistryFallbackConfig().getRegistries().iterator().next().getEndpoints().iterator().next(); - lookupClient = new UddiLookupClient(NHRServerUrl); + Uri NHRServerUrl = config.getLookupRegistryFallbackConfig().getRegistries().get(0).getEndpoints().iterator().next(); + lookupClient = new UddiLookupClient(NHRServerUrl, 30); } public void testLookup_existingServiceMustReturnResponseWithValidProperties() throws Exception { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_OrdAdvBilSim); - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, serviceId_order, profileIds, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, serviceId_order, profileIds, acceptHttpProtocol); List lookupResponses = performLookup(lookupParameters); assertNotNull("Response object must exist", lookupResponses); assertEquals("Exactly 1 endpoint expected -", 1, lookupResponses.size()); @@ -62,10 +61,11 @@ public class UddiLookupClientTest extends AbstractTestCase { } public void testLookingUpExistingServiceMustReturnCertificateSubjectString() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_OrdAdvBilSim); - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, serviceId_order, profileIds, acceptHttpProtocol); +// LookupParameters lookupParameters = new LookupParameters(eanIdentifier, serviceId_order, profileIds, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(new Identifier("GLN", "5798009811547"), serviceId_order, profileIds, acceptHttpProtocol); List lookupResponses = performLookup(lookupParameters); assertTrue(lookupResponses.size() > 0); @@ -76,70 +76,71 @@ public class UddiLookupClientTest extends AbstractTestCase { } public void testLookingUpNonExistingServiceShouldReturnEmptyResponse() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_OrdAdvBilSim); - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, documentId_nonExisting, profileIds, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, documentId_nonExisting, profileIds, acceptHttpProtocol); List lookupResponses = lookupClient.lookup(lookupParameters); assertEquals("Wrong number of returned responses", 0, lookupResponses.size()); } public void testLookingUpExistingServiceProvidingNonExistingRoleMustReturnEmptyResponseList() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_nonExistingProfileId); - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, serviceId_order, profileIds, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, serviceId_order, profileIds, acceptHttpProtocol); List lookupResponses = performLookup(lookupParameters); assertEquals(0, lookupResponses.size()); } public void testLookingUpServiceProvidingExistingRoleMustReturnResponse() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_OrdAdvBilSim); String sellerPartyRoleIdentifier = "SellerParty"; - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, serviceId_order, profileIds, acceptHttpProtocol, sellerPartyRoleIdentifier); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, serviceId_order, profileIds, acceptHttpProtocol, sellerPartyRoleIdentifier); List lookupResponses = performLookup(lookupParameters); assertEquals(1, lookupResponses.size()); } public void testLookingUpExistingServiceWithoutRoleMustReturnEmptyResponseList() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_OrdAdvBilSim); String nonExistingRoleIdentifier = "NonExistingSellerParty"; - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, serviceId_order, profileIds, acceptHttpProtocol, nonExistingRoleIdentifier); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, serviceId_order, profileIds, acceptHttpProtocol, nonExistingRoleIdentifier); List lookupResponses = performLookup(lookupParameters); assertEquals(0, lookupResponses.size()); } public void testLookingUpExistingServiceTwoProfilesBothExistingMustReturnResponse() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_OrdAdvBilSim); profileIds.add(profile_NES_5); - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, documentId_invoice, profileIds, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, documentId_invoice, profileIds, acceptHttpProtocol); List lookupResponses = performLookup(lookupParameters); assertEquals(1, lookupResponses.size()); } public void testLookingUpServiceProvidingNoProfilesWhereServiceHasProfileMustReturnResponse() throws MainException { - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, documentId_invoice, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, documentId_invoice, acceptHttpProtocol); List lookupResponses = performLookup(lookupParameters); assertEquals(1, lookupResponses.size()); } public void testLookingUpExistingServiceTwoProfilesOneExistingMustReturnResponse() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_nonExistingProfileId); profileIds.add(profile_NES_5); - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, documentId_invoice, profileIds, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, documentId_invoice, profileIds, acceptHttpProtocol); List lookupResponses = performLookup(lookupParameters); assertEquals(1, lookupResponses.size()); } + // 2021-07-06: No DUNS entries exists in NHR at the moment. /* public void LookingUpExistingServiceWithDunsIdentifierShouldReturnResponse() { List profileIds = new LinkedList(); @@ -151,13 +152,13 @@ public class UddiLookupClientTest extends AbstractTestCase { } */ public void testLookingUpAllRegistrationsOnEanNumber() throws MainException { - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, acceptHttpProtocol); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, acceptHttpProtocol); List lookupResponses = performLookup(lookupParameters); assertTrue(lookupResponses.size() > 0); } public void testLookupWithoutProtocol() throws MainException { - LookupParameters lookupParameters = new LookupParameters(eanIdentifier); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint); List lookupResponses = performLookup(lookupParameters); assertTrue(lookupResponses.size() > 0); } @@ -196,23 +197,16 @@ public class UddiLookupClientTest extends AbstractTestCase { } /** - * Reference to lookup page: https://registration.nemhandel.dk/NemHandelRegisterWeb/public/participant/info?keytype=GLN&key=5798002570595 + * Reference to lookup page: https://registration.nemhandel.dk/NemHandelRegisterWeb/public/participant/info?keytype=GLN&key=5798009811578 */ public void testNHRUddiInquiryInterface() throws Exception { -// String url = "http://discoverypublic.nemhandel.dk/uddi/services/inquiry"; -// String url = "http://127.0.0.1:8080/uddi/services/inquiry"; -// if (!NHRServerUrl.getAbsoluteUri().equalsIgnoreCase(url)) { -// NHRServerUrl = new Uri(url); -// lookupClient = new UddiLookupClient(NHRServerUrl); -// } - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_BilSim); - Identifier ean = new Identifier("EAN", "5798009811578"); // DIGST demo EAN + Identifier ean = new Identifier("GLN", "5798009811578"); // Nemhandel demo GLN LookupParameters lookupParameters = new LookupParameters(ean, documentId_invoice, profileIds, acceptHttpProtocol); // LookupParameters lookupParameters = new LookupParameters(ean, acceptHttpProtocol); // LookupParameters lookupParameters = new LookupParameters(ean); -// long start = new Date().getTime(); List lookupResponses = performLookup(lookupParameters); // printUddiLookupResponses(lookupResponses); assertNotNull("Response object must exist", lookupResponses); @@ -223,7 +217,7 @@ public class UddiLookupClientTest extends AbstractTestCase { * NHR Test Case 01.04.06: Verify logging from UDDI Inquiry adapter in Splunk key-value format. */ public void testNHR_TestCase_01_04_06() throws Exception { - List profileIdList = new ArrayList(); + List profileIdList = new ArrayList<>(); profileIdList.add(profile_BilSim); // Using an existing EAN (random number) @@ -263,10 +257,10 @@ public class UddiLookupClientTest extends AbstractTestCase { } public void testLookup_registrationWithOneProfileInTwoRoles() throws MainException { - List profileIds = new ArrayList(); + List profileIds = new ArrayList<>(); profileIds.add(profile_BilSim); - LookupParameters lookupParameters = new LookupParameters(eanIdentifier, documentId_invoice, profileIds, acceptHttpProtocol, "BuyerParty"); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, documentId_invoice, profileIds, acceptHttpProtocol, "BuyerParty"); List lookupResponses = performLookup(lookupParameters); assertEquals(1, lookupResponses.size()); } @@ -278,14 +272,14 @@ public class UddiLookupClientTest extends AbstractTestCase { * Useful info when a NHR load should be reproduced. */ public void testLookupPerformance() throws UddiEmptyGuidException { - List profileIdList = new ArrayList(); + List profileIdList = new ArrayList<>(); profileIdList.add(new UddiGuidId("aee8b6de-298f-4cbc-a96d-9ae8aed0ac31")); // NES5 - acceptHttpProtocol = new ArrayList(); + acceptHttpProtocol = new ArrayList<>(); acceptHttpProtocol.add(EndpointAddressTypeCode.http); - List lookupParametersList = new ArrayList(); - lookupParametersList.add(new LookupParameters(eanIdentifier, acceptHttpProtocol)); + List lookupParametersList = new ArrayList<>(); + lookupParametersList.add(new LookupParameters(dotNetEndpoint, acceptHttpProtocol)); lookupParametersList.add(new LookupParameters(new Identifier("EAN", "5790002133718"), acceptHttpProtocol)); lookupParametersList.add(new LookupParameters(new Identifier("EAN", "5790002130144"), acceptHttpProtocol)); lookupParametersList.add(new LookupParameters(new Identifier("EAN", "5790002128080"), acceptHttpProtocol)); @@ -314,6 +308,25 @@ public class UddiLookupClientTest extends AbstractTestCase { // System.err.println("total request count=" + (i * lookupParametersList.size())); } + /** + * Verify the scenario where NHR UDDI is slow or hanging in response. + */ + public void testLookupTimeoutSetup() throws URISyntaxException, MainException { + // Configure URL to timeout after 5 sec, but configure lookupClient to timeout after 2 sec. + lookupClient = new UddiLookupClient(new Uri("https://httpstat.us/200?sleep=5000"), 2); + + acceptHttpProtocol = new ArrayList<>(); + acceptHttpProtocol.add(EndpointAddressTypeCode.http); + LookupParameters lookupParameters = new LookupParameters(dotNetEndpoint, acceptHttpProtocol); + + try { + lookupClient.getUddiResponses_noCache(lookupParameters.getIdentifier(), lookupParameters.getServiceId(), lookupParameters.getProfileConformanceClaim()); + fail("Exception not thrown as expected"); + } catch (UDDIException e) { + assertEquals("Unexpected exception", "org.apache.axis2.AxisFault: Read timed out", e.getMessage()); + } + } + // Not a normal runnable unit test @SuppressWarnings("UnusedDeclaration") public void lookupBasedOnDocument() throws Exception { @@ -343,7 +356,7 @@ public class UddiLookupClientTest extends AbstractTestCase { UddiId profileUddiId = Utilities.getProfileId(xmlDocument, documentTypeConfig, profileMappingConfig); System.err.println("Profile UddiId: " + profileUddiId); System.err.println("ServiceContract UddiId: " + documentTypeConfig.getServiceContractTModel()); - List profileDefinitionIds = new ArrayList(); + List profileDefinitionIds = new ArrayList<>(); profileDefinitionIds.add(profileUddiId); parameters = new LookupParameters( endpointID, @@ -396,9 +409,9 @@ public class UddiLookupClientTest extends AbstractTestCase { ); } else { UddiId profileUddiId = Utilities.getProfileId(xmlDocument, documentTypeConfig, profileMappingConfig); - System.err.println("Profile UddiId: " + profileUddiId); - System.err.println("ServiceContract UddiId: " + documentTypeConfig.getServiceContractTModel()); - List profileDefinitionIds = new ArrayList(); +// System.err.println("Profile UddiId: " + profileUddiId); +// System.err.println("ServiceContract UddiId: " + documentTypeConfig.getServiceContractTModel()); + List profileDefinitionIds = new ArrayList<>(); profileDefinitionIds.add(profileUddiId); parameters = new LookupParameters( endpointID, @@ -410,10 +423,10 @@ public class UddiLookupClientTest extends AbstractTestCase { // Look it up... IUddiLookupClient uddiClient = RegistryLookupClientFactory.getRegistryLookupClient(); - List uddiResult = uddiClient.lookup(parameters); - assertEquals("Wrong result size", 1, uddiResult.size()); + List uddiResultList = uddiClient.lookup(parameters); + assertEquals("Wrong result size", 1, uddiResultList.size()); - UddiLookupResponse uddiResponse = uddiResult.get(0); + UddiLookupResponse uddiResponse = uddiResultList.get(0); assertEquals("Wrong endpoint.URL found", "http://demo.nemhandel.dk/RaspNet/2.1.0/TestService.svc", uddiResponse.getEndpointAddress().toString()); } @@ -492,7 +505,7 @@ public class UddiLookupClientTest extends AbstractTestCase { assertEquals("Wrong date found", "Sat Jan 01 00:00:00 CET 2000", response.getActivationDate().toString()); assertEquals("Wrong endpoint URL found", "http://demo.nemhandel.dk/RaspNet/2.1.0/TestService.svc", response.getEndpointAddress().getAsUri().getAbsoluteUri()); - assertEquals("5798009811578", response.getEndpointIdentifierActual().getAsString()); + assertEquals("5798009811561", response.getEndpointIdentifierActual().getAsString()); Date expectedExpirationDate = new GregorianCalendar(2039, Calendar.DECEMBER, 31).getTime(); assertEquals(expectedExpirationDate, response.getExpirationDate()); @@ -500,21 +513,22 @@ public class UddiLookupClientTest extends AbstractTestCase { assertFalse(response.hasNewerVersion()); assertNull(response.getNewerVersionReference()); - // Verify first entry in list - assertEquals("Procurement-OrdAdv-BilSim-1.0 SellerParty", response.getProcessRoles().get(0).getName()); -// for (ProcessRoleDefinition processRoleDefinition : response.getProcessRoles()) { -// assertEquals("Procurement-OrdAdv-BilSim-1.0 SellerParty", processRoleDefinition.getName()); -// break; -// } + for (ProcessRoleDefinition processRole : response.getProcessRoles()) { + assertTrue("Unexpected ProcessRole found: " + processRole.getName(), + ("Procurement-OrdSim-1.0 SellerParty" + + "Procurement-OrdSim-BilSim-1.0 SellerParty" + + "Procurement-OrdAdv-BilSim-1.0 SellerParty" + ).contains(processRole.getName())); + } assertEquals("Wrong email on registration", "teknisk-support@nemhandel.dk", response.getServiceContactEmail().toString()); } public void testLookup() throws Exception { - List processDefinitionTModelsList = new ArrayList(); + List processDefinitionTModelsList = new ArrayList<>(); processDefinitionTModelsList.add(profile_NES_5); - LookupParameters uddiLookupParams = new LookupParameters(eanIdentifier, documentId_invoice, processDefinitionTModelsList, null); + LookupParameters uddiLookupParams = new LookupParameters(dotNetEndpoint, documentId_invoice, processDefinitionTModelsList, null); List lookupResponseList = lookupClient.lookup(uddiLookupParams); assertFalse("List should have elements", lookupResponseList.isEmpty()); assertEquals("List should have elements", 1, lookupResponseList.size()); diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcherTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcherTest.java index 54d394da863c8f950a19aa5c188e2809cf4791f0..2cb97648770cd3c291b0fd00e7cc2d43dccb493a 100755 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcherTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/documenttype/DocumentTypeConfigSearcherTest.java @@ -20,19 +20,13 @@ public class DocumentTypeConfigSearcherTest extends TestCase { @Override public void setUp() throws Exception { super.setUp(); - ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); + + // Reset local cache in class: + DocumentTypeConfigSearcher.clearDocumentTypeConfig(); + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST_EXTENDED); searcher = new DocumentTypeConfigSearcher(); } - /* - * test init searcher. - * - * @throws ConfigurationException - */ - /*public void testDocumentTypeConfigSearcher() throws ConfigurationException { - searcher = new DocumentTypeConfigSearcher(); - }*/ - /** * Searches for the application response 2.01 document type */ @@ -151,4 +145,4 @@ public class DocumentTypeConfigSearcherTest extends TestCase { DocumentTypeConfig documentType = searchForDocument(documentPath); assertEquals("Wrong value found for friendlyName", friendlyName, documentType.getFriendlyName()); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schema/SchemaValidatorTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schema/SchemaValidatorTest.java index 745a7552782a46b29c6b512327a2e6e5b67a15f5..3cd08358b73589d19b420ebf8a958bbfe9e40013 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schema/SchemaValidatorTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schema/SchemaValidatorTest.java @@ -14,17 +14,18 @@ import java.util.Arrays; import java.util.List; /** - * Perform schema validation tests on all oioubl documents. + * Perform schema validation tests on all OIOUBL documents. */ public class SchemaValidatorTest extends TestCase { private static DocumentTypeConfigSearcher docSearcher; - private SchemaValidator validator = new SchemaValidator(); + private final SchemaValidator validator = new SchemaValidator(); @Override public void setUp() throws Exception { super.setUp(); - ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST_EXTENDED); + ConfigurationHandler.getInstance(true); if (docSearcher == null) { docSearcher = new DocumentTypeConfigSearcher(); @@ -32,102 +33,100 @@ public class SchemaValidatorTest extends TestCase { } public void testApplicationResponseValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_APPLICATIONRESPONSE_201); + assertSchemaValidateDocument(TestConstants.PATH_APPLICATIONRESPONSE_201); } public void testCatalogueValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_CATALOGUE); + assertSchemaValidateDocument(TestConstants.PATH_CATALOGUE); } public void testCatalogueDeletionValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_CATALOGUEDELETION); + assertSchemaValidateDocument(TestConstants.PATH_CATALOGUEDELETION); } public void testCatalogueItemSpecificationUpdateValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_CATALOGUEITEMSPECIFICATIONUPDATE); + assertSchemaValidateDocument(TestConstants.PATH_CATALOGUEITEMSPECIFICATIONUPDATE); } public void testCataloguePricingUpdateValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_CATALOGUEPRICINGUPDATE); + assertSchemaValidateDocument(TestConstants.PATH_CATALOGUEPRICINGUPDATE); } public void testCatalogueRequestValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_CATALOGUEREQUEST); + assertSchemaValidateDocument(TestConstants.PATH_CATALOGUEREQUEST); } public void testCreditNoteValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_CREDITNOTE); + assertSchemaValidateDocument(TestConstants.PATH_CREDITNOTE); } public void testInvoiceValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_INVOICE); + assertSchemaValidateDocument(TestConstants.PATH_INVOICE); } public void testOrderValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_ORDER); + assertSchemaValidateDocument(TestConstants.PATH_ORDER); } public void testOrderCancellationValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_ORDERCANCELLATION); + assertSchemaValidateDocument(TestConstants.PATH_ORDERCANCELLATION); } public void testOrderChangeValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_ORDERCHANGE); + assertSchemaValidateDocument(TestConstants.PATH_ORDERCHANGE); } public void testOrderResponseValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_ORDERRESPONSE); + assertSchemaValidateDocument(TestConstants.PATH_ORDERRESPONSE); } public void testOrderResponseSimpleValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_ORDERRESPONSESIMPLE); + assertSchemaValidateDocument(TestConstants.PATH_ORDERRESPONSESIMPLE); } public void testReminderValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_REMINDER); + assertSchemaValidateDocument(TestConstants.PATH_REMINDER); } public void testStatementValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_STATEMENT); + assertSchemaValidateDocument(TestConstants.PATH_STATEMENT); } public void testUtilityStatementValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_UTILITYSTATEMENT_XML); + assertSchemaValidateDocument(TestConstants.PATH_UTILITYSTATEMENT_XML); } public void testInvoice07Validation() throws Exception { - schemaValidateDocument(TestConstants.PATH_INVOICE_PIE); + assertSchemaValidateDocument(TestConstants.PATH_INVOICE_PIE); } public void testCreditNote07Validation() throws Exception { - schemaValidateDocument(TestConstants.PATH_CREDITNOTE07_XML); + assertSchemaValidateDocument(TestConstants.PATH_CREDITNOTE07_XML); } public void testNemKontoOrderValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_NKS_PAYMENT_ORDER); + assertSchemaValidateDocument(TestConstants.PATH_NKS_PAYMENT_ORDER); } public void testNemKontoResponseValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_NKS_RESPONSE_2); + assertSchemaValidateDocument(TestConstants.PATH_NKS_RESPONSE_2); } public void testNemKontoPU_RequestValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_NKS_PU_REQUEST); + assertSchemaValidateDocument(TestConstants.PATH_NKS_PU_REQUEST); } public void testNemKontoPU_ResponseValidation() throws Exception { - schemaValidateDocument(TestConstants.PATH_NKS_PU_RESPONSE); + assertSchemaValidateDocument(TestConstants.PATH_NKS_PU_RESPONSE); } public void testInvoiceValidation_wrongNamespace() throws Exception { try { String xmlPath = TestConstants.PATH_INVOICE_WRONG_NAME_SPACE; String schemaPath = TestConstants.PATH_INVOICE_XSD; - schemaValidateDocument(xmlPath, schemaPath); + assertSchemaValidateDocument(xmlPath, schemaPath); fail("Exception should have been thrown..."); - } catch (SchemaValidationFailedException e) { - // OK - } catch (UnexpectedNamespaceException e) { + } catch (SchemaValidationFailedException | UnexpectedNamespaceException e) { // OK } } @@ -136,7 +135,7 @@ public class SchemaValidatorTest extends TestCase { try { String xmlPath = TestConstants.PATH_INVOICE_WRONG_ELEMENT; String schemaPath = TestConstants.PATH_INVOICE_XSD; - schemaValidateDocument(xmlPath, schemaPath); + assertSchemaValidateDocument(xmlPath, schemaPath); fail("Exception should have been thrown..."); } catch (SchemaValidationFailedException e) { // OK @@ -153,7 +152,7 @@ public class SchemaValidatorTest extends TestCase { if (avoidList.contains(file.getName())) { continue; } - schemaValidateDocument(file.getAbsolutePath()); + assertSchemaValidateDocument(file.getAbsolutePath()); } catch (Exception e) { fail("Unable to Schema validate document [" + TestConstants.PATH_EXAMPLES_OK + file.getName() + "]: " + e.getMessage()); } @@ -165,12 +164,12 @@ public class SchemaValidatorTest extends TestCase { */ public void testReminderValidation_invalidSchemaReference() throws Exception { // TODO: Test should fail due to invalid schema reference. - schemaValidateDocument("test/resources/OIOUBL-testfiles/OIOUBL_Reminder_BZ1809.xml"); + assertSchemaValidateDocument("test/resources/OIOUBL-testfiles/OIOUBL_Reminder_BZ1809.xml"); } // Helper methods - private void schemaValidateDocument(String xmlDocumentPath) throws Exception { + private void assertSchemaValidateDocument(String xmlDocumentPath) throws Exception { XmlDocument document = new XmlDocument(); document.load(xmlDocumentPath); @@ -178,11 +177,11 @@ public class SchemaValidatorTest extends TestCase { validator.schemaValidateXmlDocument(document, documentTypeConfig); } - private void schemaValidateDocument(String xmlDocumentPath, String xmlSchemaPath) throws Exception { + private void assertSchemaValidateDocument(String xmlDocumentPath, String xmlSchemaPath) throws Exception { XmlDocument document = new XmlDocument(); document.load(xmlDocumentPath); XmlSchema schema = new XmlSchema(xmlSchemaPath); validator.schemaValidateXmlDocument(document, schema); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfigTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfigTest.java index 6276ad74ae6146767c1be9aebc11fafbbfb21d34..ac26ab35286dbe35c91a48e7ea3135015ae385ff 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfigTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationConfigTest.java @@ -27,4 +27,4 @@ public class SchematronValidationConfigTest extends TestCase { assertEquals("Empty string should be legal", "", SchematronValidationConfig.modifyValueForUnitTests("")); assertNull("Null string should be legal", SchematronValidationConfig.modifyValueForUnitTests(null)); } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationTest.java index 4bd306a30eae3e1ebd21c1af9b6b66c2e410c394..64a4cb9711f48f769b3f7b4c880993c66efb7c4d 100755 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/SchematronValidationTest.java @@ -39,7 +39,7 @@ public class SchematronValidationTest extends TestCase { @Override public void setUp() throws Exception { super.setUp(); - ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST_EXTENDED); } /** @@ -122,7 +122,7 @@ public class SchematronValidationTest extends TestCase { assertSchematronValidationOK(TestConstants.PATH_CREDITNOTE07_XML); } - public void testPeppolDespatchAdvoce() throws Exception { + public void testPeppolDespatchAdvice() throws Exception { assertSchematronValidationOK(TestConstants.PATH_DESPATCH_ADVICE); } @@ -149,7 +149,7 @@ public class SchematronValidationTest extends TestCase { assertSchematronValidationOK(TestConstants.PATH_DESPATCH_ADVICE_BZ1366); fail("testDespatchAdvice_invalid_BZ1366 should give error"); } catch (SchematronErrorException e) { - assertEquals("Wrong error found", "[BII2-T16-R013]-Each despatch advice line MUST have a despatch line identifier that is unique within the despatch advice", e.getMessage()); + assertEquals("Wrong error found", "E-RSP15325: [BII2-T16-R013]-Each despatch advice line MUST have a despatch line identifier that is unique within the despatch advice", e.getMessage()); } } @@ -157,6 +157,7 @@ public class SchematronValidationTest extends TestCase { * Verify that it's possible to schematron validate all the example files located in "Resources\Documents\Examples". */ public void testSchematronValidateAllTestFiles() { + // Ignore the old OIOXML documents + AttachedDocument: List avoidList = Arrays.asList("OIOUBL_AttachedDocument_v2p2.xml", "OIOXML_PIP_Invoice.xml", "OIOXML_PCP_CreditNote.xml"); for (File file : TestUtil.getOkExampleDocumentPaths()) { try { diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/MultipleTransformerVsSingleResearchTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/MultipleTransformerVsSingleResearchTest.java index a8c6d2cfc5d63d39c61fd44e1ba3822a6b05ae90..ba4e088936a667c93eaa24f5e15213c6e6f97093 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/MultipleTransformerVsSingleResearchTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/MultipleTransformerVsSingleResearchTest.java @@ -209,7 +209,7 @@ public class MultipleTransformerVsSingleResearchTest extends TestCase { xmlStylesheet.load(path); return xsltUtility.precompiledStyleSheet(xmlStylesheet); } catch (Exception ex) { - throw new FailedToLoadSchematronStylesheetException(path, ex); + throw new FailedToLoadSchematronStylesheetException(path, ex, "TEST"); } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/SchematronComparatorBulkResearchTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/SchematronComparatorBulkResearchTest.java index cc648842cfde04ed1e1b71e1dc3843851860e2db..fbd46a2d2dc436ac142f3e496b6b801369604e13 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/SchematronComparatorBulkResearchTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/SchematronComparatorBulkResearchTest.java @@ -1,27 +1,23 @@ package dk.gov.oiosi.xml.schematron.research; import dk.gov.oiosi.TestConstants; -import dk.gov.oiosi.communication.configuration.DocumentTypeConfig; import dk.gov.oiosi.configuration.ConfigurationHandler; -import dk.gov.oiosi.xml.XmlDocument; -import dk.gov.oiosi.xml.documenttype.DocumentTypeConfigSearcher; -import dk.gov.oiosi.xml.schematron.research.bulk.*; +import dk.gov.oiosi.xml.schematron.research.bulk.DifferentWayTransformationExecutor; +import dk.gov.oiosi.xml.schematron.research.bulk.ErrorMessageTextHandler; +import dk.gov.oiosi.xml.schematron.research.bulk.IFileListener; +import dk.gov.oiosi.xml.schematron.research.bulk.IFolderListener; import junit.framework.TestCase; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMXMLParserWrapper; import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory; -import org.apache.log4j.Level; import org.apache.log4j.Logger; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; import java.io.ByteArrayInputStream; -import java.io.File; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -109,8 +105,8 @@ public class SchematronComparatorBulkResearchTest extends TestCase { public static String PATH_TEST_FOLDER = "D:/temp/32"; - private Map fileSchematronErrorMap = new HashMap(); - private Map fileSchemaErrorMap = new HashMap(); + private Map fileSchematronErrorMap = new HashMap<>(); + private Map fileSchemaErrorMap = new HashMap<>(); private DifferentWayTransformationExecutor transformExecutor; @@ -121,29 +117,29 @@ public class SchematronComparatorBulkResearchTest extends TestCase { transformExecutor = new DifferentWayTransformationExecutor(); } - public void test() throws Exception { - checkFolder(PATH_TEST_FOLDER); - } - - public void checkFolder(String path) throws Exception { - File testFolder = new File(path); - if (!testFolder.exists() || !testFolder.isDirectory()) { - return; - } - - FileSystemCrowler.log.setLevel(Level.INFO); - List fileListenerList = new ArrayList(); - XmlFileListener xmlListener = new XmlFileListener(); - fileListenerList.add(xmlListener); - fileListenerList.add(new ErrorFileListener()); - fileListenerList.add(new GZipFileListener()); - List folderListenerList = new ArrayList(); - folderListenerList.add(new MapCleanerListener()); - - FileSystemCrowler fsc = new FileSystemCrowler(fileListenerList, folderListenerList); - fsc.processFolder(testFolder); - System.out.println(xmlListener.toStatus()); - } +// public void test() throws Exception { +// checkFolder(PATH_TEST_FOLDER); +// } + +// public void checkFolder(String path) throws Exception { +// File testFolder = new File(path); +// if (!testFolder.exists() || !testFolder.isDirectory()) { +// return; +// } +// +// FileSystemCrowler.log.setLevel(Level.INFO); +// List fileListenerList = new ArrayList(); +// XmlFileListener xmlListener = new XmlFileListener(); +// fileListenerList.add(xmlListener); +// fileListenerList.add(new ErrorFileListener()); +// fileListenerList.add(new GZipFileListener()); +// List folderListenerList = new ArrayList(); +// folderListenerList.add(new MapCleanerListener()); +// +// FileSystemCrowler fsc = new FileSystemCrowler(fileListenerList, folderListenerList); +// fsc.processFolder(testFolder); +// System.out.println(xmlListener.toStatus()); +// } protected String buildFileNameKey(String name) { String fileKey = name.trim(); @@ -178,6 +174,7 @@ public class SchematronComparatorBulkResearchTest extends TestCase { } public class MapCleanerListener implements IFolderListener { + public void apply(String folderName) { if (folderName.equals("rejected")) { clearFileErrorMaps(); @@ -185,6 +182,7 @@ public class SchematronComparatorBulkResearchTest extends TestCase { } } + private class GZipFileListener implements IFileListener { public void apply(String fileName, byte[] data) { @@ -198,180 +196,176 @@ public class SchematronComparatorBulkResearchTest extends TestCase { } } - private class XmlFileListener implements IFileListener { - - private int totalCount = 0; - - private int countError; - private int countOk; - - private long totalNewOk; - private long totalOldOk; - private long totalNew2Ok; - - private long totalNewError; - private long totalOldError; - private long totalNew2Error; - - private static final boolean SHOW_RESULT = false; - - public boolean isMatch(String fileName) { - return fileName.indexOf(".xml") > 0 && !fileName.contains("_desc.xml"); - } - - public void apply(String name, byte[] xmlData) throws Exception { - if (SHOW_RESULT) { - log.info(name + ":" + xmlData.length); - } - - totalCount++; - - XmlDocument xd = new XmlDocument(); - xd.setDocument(loadAxiomBuild(xmlData)); - - DocumentTypeConfigSearcher dts = new DocumentTypeConfigSearcher(); - DocumentTypeConfig documentType = dts.findUniqueDocumentType(xd); - if (SHOW_RESULT) { - System.out.println(documentType.getFriendlyName()); - } - long start; - - start = System.currentTimeMillis(); - String axiomXmlTransformerSaxResult = transformExecutor.version124Way(documentType, xd); - long durationAxiomXmlTransformerSax = (System.currentTimeMillis() - start); - if (SHOW_RESULT) { - System.out.println(axiomXmlTransformerSaxResult); - } - - start = System.currentTimeMillis(); - String axiomXmlTransformerDomResult = transformExecutor.version123Way(documentType, xd); - long durationAxiomXmlTransformerDom = System.currentTimeMillis() - start; - if (SHOW_RESULT) { - System.out.println(axiomXmlTransformerDomResult); - } - - start = System.currentTimeMillis(); - String byteArrayXmlTransformerSaxResult = transformExecutor.byteArrayXmlTransformerSax(documentType, xmlData); - long durationByteArrayXmlTransformerSax = System.currentTimeMillis() - start; - if (SHOW_RESULT) { - System.out.println(byteArrayXmlTransformerSaxResult); - } - - if (axiomXmlTransformerSaxResult == null) { - totalNewOk += durationAxiomXmlTransformerSax; - totalOldOk += durationAxiomXmlTransformerDom; - totalNew2Ok += durationByteArrayXmlTransformerSax; - - countOk++; - } else { - totalNewError += durationAxiomXmlTransformerSax; - totalOldError += durationAxiomXmlTransformerDom; - totalNew2Error += durationByteArrayXmlTransformerSax; - - countError++; - } - - if (axiomXmlTransformerSaxResult == null && axiomXmlTransformerDomResult != null) { - System.out.println("KO\t" + name + ": new way is null, old way returned\n" + axiomXmlTransformerDomResult); - } else { - if (axiomXmlTransformerSaxResult != null && axiomXmlTransformerDomResult == null) { - System.out.println("KO\t" + name + ": old way is null, new way returned\n" + axiomXmlTransformerSaxResult); - } else { - if (axiomXmlTransformerSaxResult != null && axiomXmlTransformerDomResult != null) { - if (!axiomXmlTransformerSaxResult.equals(axiomXmlTransformerDomResult)) { - System.out.println("KO\t" + name + ", new way and old way are not equal, new way\n" + axiomXmlTransformerSaxResult + "\noldWay:\n" + axiomXmlTransformerDomResult); - } else { - if (SHOW_RESULT) { - System.out.println("OK\t" + name + " both returned equal ERROR"); - } - } - } else { - if (SHOW_RESULT) { - System.out.println("OK\t" + name + " both returned OK"); - } - } - } - } - - if (byteArrayXmlTransformerSaxResult == null && axiomXmlTransformerDomResult != null) { - System.out.println("KO\t" + name + ": new2 way is null, old way returned\n" + axiomXmlTransformerDomResult); - } else { - if (byteArrayXmlTransformerSaxResult != null && axiomXmlTransformerDomResult == null) { - System.out.println("KO\t" + name + ": old way is null, new2 way returned\n" + byteArrayXmlTransformerSaxResult); - } else { - if (byteArrayXmlTransformerSaxResult != null && axiomXmlTransformerDomResult != null) { - if (!byteArrayXmlTransformerSaxResult.equals(axiomXmlTransformerDomResult)) { - System.out.println("KO\t" + name + ", new2 way and old way are not equal, new2 way\n" + byteArrayXmlTransformerSaxResult + "\noldWay:\n" + axiomXmlTransformerDomResult); - } else { - if (SHOW_RESULT) { - System.out.println("OK\t" + name + " both returned equal ERROR"); - } - } - } else { - if (SHOW_RESULT) { - System.out.println("OK\t" + name + " both returned OK"); - } - } - } - } - - if (totalCount % 100 == 0) { - System.out.println(toStatus()); - } - } - - public String toStatus() { - StringBuffer sb = new StringBuffer(); - long diffOk = totalOldOk - totalNewOk; - long diff2Ok = totalOldOk - totalNew2Ok; - long diffError = totalOldError - totalNewError; - long diff2Error = totalOldError - totalNew2Error; - - sb.append("total\t"); - sb.append(totalCount); - sb.append("\tok\t" + countOk + "\tok diff\t"); - sb.append((diffOk)); - sb.append("\tok diff ratio\t"); - if (totalOldOk == 0) { - sb.append("unknown"); - } else { - sb.append((diffOk / (double) totalOldOk)); - } - - sb.append("\terror\t" + countError + "\terror diff\t"); - sb.append((diffError)); - sb.append("\terror diff ratio\t"); - if (totalOldError == 0) { - sb.append("unknown"); - } else { - sb.append((diffError / (double) totalOldError)); - } - - sb.append("\tok2 diff\t"); - sb.append((diff2Ok)); - sb.append("\tok2 diff ratio\t"); - if (totalOldOk == 0) { - sb.append("unknown"); - } else { - sb.append((diff2Ok / (double) totalOldOk)); - } - - sb.append("\terror diff\t"); - sb.append((diff2Error)); - sb.append("\terror2 diff ratio\t"); - if (totalOldError == 0) { - sb.append("unknown"); - } else { - sb.append((diff2Error / (double) totalOldError)); - } - - return sb.toString(); - } - } +// private class XmlFileListener implements IFileListener { +// +// private static final boolean SHOW_RESULT = false; +// private int totalCount = 0; +// private int countError; +// private int countOk; +// private long totalNewOk; +// private long totalOldOk; +// private long totalNew2Ok; +// private long totalNewError; +// private long totalOldError; +// private long totalNew2Error; +// +// public boolean isMatch(String fileName) { +// return fileName.indexOf(".xml") > 0 && !fileName.contains("_desc.xml"); +// } +// +//// public void apply(String name, byte[] xmlData) throws Exception { +//// if (SHOW_RESULT) { +//// log.info(name + ":" + xmlData.length); +//// } +//// +//// totalCount++; +//// +//// XmlDocument xd = new XmlDocument(); +//// xd.setDocument(loadAxiomBuild(xmlData)); +//// +//// DocumentTypeConfigSearcher dts = new DocumentTypeConfigSearcher(); +//// DocumentTypeConfig documentType = dts.findUniqueDocumentType(xd); +//// if (SHOW_RESULT) { +//// System.out.println(documentType.getFriendlyName()); +//// } +//// long start; +//// +//// start = System.currentTimeMillis(); +//// String axiomXmlTransformerSaxResult = transformExecutor.version124Way(documentType, xd); +//// long durationAxiomXmlTransformerSax = (System.currentTimeMillis() - start); +//// if (SHOW_RESULT) { +//// System.out.println(axiomXmlTransformerSaxResult); +//// } +//// +//// start = System.currentTimeMillis(); +//// String axiomXmlTransformerDomResult = transformExecutor.version123Way(documentType, xd); +//// long durationAxiomXmlTransformerDom = System.currentTimeMillis() - start; +//// if (SHOW_RESULT) { +//// System.out.println(axiomXmlTransformerDomResult); +//// } +//// +//// start = System.currentTimeMillis(); +//// String byteArrayXmlTransformerSaxResult = transformExecutor.byteArrayXmlTransformerSax(documentType, xmlData); +//// long durationByteArrayXmlTransformerSax = System.currentTimeMillis() - start; +//// if (SHOW_RESULT) { +//// System.out.println(byteArrayXmlTransformerSaxResult); +//// } +//// +//// if (axiomXmlTransformerSaxResult == null) { +//// totalNewOk += durationAxiomXmlTransformerSax; +//// totalOldOk += durationAxiomXmlTransformerDom; +//// totalNew2Ok += durationByteArrayXmlTransformerSax; +//// +//// countOk++; +//// } else { +//// totalNewError += durationAxiomXmlTransformerSax; +//// totalOldError += durationAxiomXmlTransformerDom; +//// totalNew2Error += durationByteArrayXmlTransformerSax; +//// +//// countError++; +//// } +//// +//// if (axiomXmlTransformerSaxResult == null && axiomXmlTransformerDomResult != null) { +//// System.out.println("KO\t" + name + ": new way is null, old way returned\n" + axiomXmlTransformerDomResult); +//// } else { +//// if (axiomXmlTransformerSaxResult != null && axiomXmlTransformerDomResult == null) { +//// System.out.println("KO\t" + name + ": old way is null, new way returned\n" + axiomXmlTransformerSaxResult); +//// } else { +//// if (axiomXmlTransformerSaxResult != null && axiomXmlTransformerDomResult != null) { +//// if (!axiomXmlTransformerSaxResult.equals(axiomXmlTransformerDomResult)) { +//// System.out.println("KO\t" + name + ", new way and old way are not equal, new way\n" + axiomXmlTransformerSaxResult + "\noldWay:\n" + axiomXmlTransformerDomResult); +//// } else { +//// if (SHOW_RESULT) { +//// System.out.println("OK\t" + name + " both returned equal ERROR"); +//// } +//// } +//// } else { +//// if (SHOW_RESULT) { +//// System.out.println("OK\t" + name + " both returned OK"); +//// } +//// } +//// } +//// } +//// +//// if (byteArrayXmlTransformerSaxResult == null && axiomXmlTransformerDomResult != null) { +//// System.out.println("KO\t" + name + ": new2 way is null, old way returned\n" + axiomXmlTransformerDomResult); +//// } else { +//// if (byteArrayXmlTransformerSaxResult != null && axiomXmlTransformerDomResult == null) { +//// System.out.println("KO\t" + name + ": old way is null, new2 way returned\n" + byteArrayXmlTransformerSaxResult); +//// } else { +//// if (byteArrayXmlTransformerSaxResult != null && axiomXmlTransformerDomResult != null) { +//// if (!byteArrayXmlTransformerSaxResult.equals(axiomXmlTransformerDomResult)) { +//// System.out.println("KO\t" + name + ", new2 way and old way are not equal, new2 way\n" + byteArrayXmlTransformerSaxResult + "\noldWay:\n" + axiomXmlTransformerDomResult); +//// } else { +//// if (SHOW_RESULT) { +//// System.out.println("OK\t" + name + " both returned equal ERROR"); +//// } +//// } +//// } else { +//// if (SHOW_RESULT) { +//// System.out.println("OK\t" + name + " both returned OK"); +//// } +//// } +//// } +//// } +//// +//// if (totalCount % 100 == 0) { +//// System.out.println(toStatus()); +//// } +//// } +// +// public String toStatus() { +// StringBuffer sb = new StringBuffer(); +// long diffOk = totalOldOk - totalNewOk; +// long diff2Ok = totalOldOk - totalNew2Ok; +// long diffError = totalOldError - totalNewError; +// long diff2Error = totalOldError - totalNew2Error; +// +// sb.append("total\t"); +// sb.append(totalCount); +// sb.append("\tok\t" + countOk + "\tok diff\t"); +// sb.append((diffOk)); +// sb.append("\tok diff ratio\t"); +// if (totalOldOk == 0) { +// sb.append("unknown"); +// } else { +// sb.append((diffOk / (double) totalOldOk)); +// } +// +// sb.append("\terror\t" + countError + "\terror diff\t"); +// sb.append((diffError)); +// sb.append("\terror diff ratio\t"); +// if (totalOldError == 0) { +// sb.append("unknown"); +// } else { +// sb.append((diffError / (double) totalOldError)); +// } +// +// sb.append("\tok2 diff\t"); +// sb.append((diff2Ok)); +// sb.append("\tok2 diff ratio\t"); +// if (totalOldOk == 0) { +// sb.append("unknown"); +// } else { +// sb.append((diff2Ok / (double) totalOldOk)); +// } +// +// sb.append("\terror diff\t"); +// sb.append((diff2Error)); +// sb.append("\terror2 diff ratio\t"); +// if (totalOldError == 0) { +// sb.append("unknown"); +// } else { +// sb.append((diff2Error / (double) totalOldError)); +// } +// +// return sb.toString(); +// } +// } /* - * Not used in this test actually - */ + * Not used in this test actually + */ private class ErrorFileListener implements IFileListener { public boolean isMatch(String fileName) { diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/DifferentWayTransformationExecutor.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/DifferentWayTransformationExecutor.java index 38f200ff50b3f29f565bd5401e231c95822ce79a..82d93e37111d124debf2ae4229aefa9513541edd 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/DifferentWayTransformationExecutor.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/DifferentWayTransformationExecutor.java @@ -1,36 +1,18 @@ package dk.gov.oiosi.xml.schematron.research.bulk; -import dk.gov.oiosi.communication.configuration.DocumentTypeConfig; import dk.gov.oiosi.xml.XmlDocument; import dk.gov.oiosi.xml.XmlDocumentException; -import dk.gov.oiosi.xml.XmlException; -import dk.gov.oiosi.xml.schematron.FailedToLoadSchematronStylesheetException; -import dk.gov.oiosi.xml.schematron.SchematronErrorException; -import dk.gov.oiosi.xml.schematron.SchematronValidationConfig; import dk.gov.oiosi.xml.schematron.research.SchematronComparatorBulkResearchTest; -import dk.gov.oiosi.xml.schematron.sax.SchematronValidatorSAXUtil; -import dk.gov.oiosi.xml.xpath.DocumentXPathResolver; -import dk.gov.oiosi.xml.xpath.PrefixedNamespace; -import dk.gov.oiosi.xml.xslt.XsltUtility; import org.apache.axiom.om.impl.builder.StAXOMBuilder; -import org.apache.commons.configuration.ConfigurationUtils; -import org.xml.sax.InputSource; import javax.xml.stream.XMLStreamException; -import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamResult; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.FileInputStream; import java.io.InputStream; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; /** * Helper class for {@link SchematronComparatorBulkResearchTest} @@ -39,53 +21,37 @@ import java.util.Map; */ public class DifferentWayTransformationExecutor { - private Map transformer124Map = new HashMap(10); +// private Map transformer124Map = new HashMap(10); - private Map transformer123Map = new HashMap(10); +// private Map transformer123Map = new HashMap(10); - public String version124Way(DocumentTypeConfig documentType, XmlDocument xd) throws Exception { - for (SchematronValidationConfig config : documentType.getSchematronValidationConfigList()) { - try { - Transformer transformer = getNewTransformer(config.getSchematronDocumentPath()); - SchematronValidatorSAXUtil.schematronValidateXmlDocument(xd.getTransformationSource(), transformer, config.getSaxHandlerConfig()); - } catch (SchematronErrorException e) { - return e.getMessage(); - } - } - return null; - } +// public String version124Way(DocumentTypeConfig documentType, XmlDocument xd) throws Exception { +// for (SchematronValidationConfig config : documentType.getSchematronValidationConfigList()) { +// try { +// Transformer transformer = getNewTransformer(config.getSchematronDocumentPath()); +// SchematronValidatorSAXUtil.schematronValidateXmlDocument(xd.getTransformationSource(), transformer, config.getSaxHandlerConfig()); +// } catch (SchematronErrorException e) { +// return e.getMessage(); +// } +// } +// return null; +// } - /* - * Let's also compare when just byte array is passed to transformer instead - * of built AXIOM document - */ - public String byteArrayXmlTransformerSax(DocumentTypeConfig documentType, byte[] data) throws Exception { - for (SchematronValidationConfig config : documentType.getSchematronValidationConfigList()) { - try { - Transformer transformer = getNewTransformer(config.getSchematronDocumentPath()); - SchematronValidatorSAXUtil.schematronValidateXmlDocument(new SAXSource(new InputSource(new ByteArrayInputStream(data))), transformer, config.getSaxHandlerConfig()); - } catch (SchematronErrorException e) { - return e.getMessage(); - } - } - return null; - } - - public String version123Way(DocumentTypeConfig documentType, XmlDocument xd) throws Exception { - for (SchematronValidationConfig svc : documentType.getSchematronValidationConfigList()) { - try { - Transformer transformer = getOldTransformer(svc.getSchematronDocumentPath()); - /* - * Do not use optimized SaxHandler which stops on first error - */ - XmlDocument oldTransformXml = oldTransformXml(xd, transformer); - oldValidateResult(oldTransformXml, svc.getErrorXPath(), svc.getErrorMessageXPath()); - } catch (SchematronErrorException e) { - return e.getMessage(); - } - } - return null; - } +// /* +// * Let's also compare when just byte array is passed to transformer instead +// * of built AXIOM document +// */ +// public String byteArrayXmlTransformerSax(DocumentTypeConfig documentType, byte[] data) throws Exception { +// for (SchematronValidationConfig config : documentType.getSchematronValidationConfigList()) { +// try { +// Transformer transformer = getNewTransformer(config.getSchematronDocumentPath()); +// SchematronValidatorSAXUtil.schematronValidateXmlDocument(new SAXSource(new InputSource(new ByteArrayInputStream(data))), transformer, config.getSaxHandlerConfig()); +// } catch (SchematronErrorException e) { +// return e.getMessage(); +// } +// } +// return null; +// } /** * Copied from XsltUtility OIORASP 1.2.3 @@ -102,62 +68,28 @@ public class DifferentWayTransformationExecutor { return new XmlDocument(builder.getDocumentElement()); } - /** - * Copied from SchematronValidator 1.2.3 - */ - private void oldValidateResult(XmlDocument result, String errorXPath, String errorMessageXPath) throws XmlException { - PrefixedNamespace[] prefixedNamespaces = new PrefixedNamespace[0]; - boolean hasAnyErrors = DocumentXPathResolver.hasAnyElementsByXpath(result, errorXPath, prefixedNamespaces); - if (hasAnyErrors) { - String firstErrorMessage = DocumentXPathResolver.getFirstElementValueByXPath(result, errorMessageXPath, - prefixedNamespaces); - throw new SchematronErrorException(result, firstErrorMessage); - } - } - - /* - * In version 1.2.3 OIORASP transformers were loaded as AXIOM documents and - * then converted to DOM for DOMSource - */ - private Transformer getOldTransformer(String path) throws FailedToLoadSchematronStylesheetException { - Transformer transformer = transformer123Map.get(path); - if (transformer == null) { - XmlDocument xd = new XmlDocument(); - try { - xd.load(path); - Source xsltSource = new DOMSource(xd.getW3Document()); - TransformerFactory transFact = XsltUtility.getTransformerFactory(); - transformer = transFact.newTransformer(xsltSource); - transformer123Map.put(path, transformer); - } catch (Exception ex) { - throw new FailedToLoadSchematronStylesheetException(path, ex); - } - } - return transformer; - } - - /* - * In version 1.3.0 it is proposed to use SAXSource without unnecessary conversion to DOM - */ - private Transformer getNewTransformer(String path) throws FailedToLoadSchematronStylesheetException { - Transformer transformer = transformer124Map.get(path); - if (transformer == null) { - try { - InputStream is; - try { - URL url = ConfigurationUtils.locate(path); - is = url.openStream(); - } catch (Exception e) { - is = new FileInputStream(path); - } - Source xsltSource = new SAXSource(new InputSource(is)); - TransformerFactory transFact = XsltUtility.getTransformerFactory(); - transformer = transFact.newTransformer(xsltSource); - transformer124Map.put(path, transformer); - } catch (Exception ex) { - throw new FailedToLoadSchematronStylesheetException(path, ex); - } - } - return transformer; - } +// /* +// * In version 1.3.0 it is proposed to use SAXSource without unnecessary conversion to DOM +// */ +// private Transformer getNewTransformer(String path) throws FailedToLoadSchematronStylesheetException { +// Transformer transformer = transformer124Map.get(path); +// if (transformer == null) { +// try { +// InputStream is; +// try { +// URL url = ConfigurationUtils.locate(path); +// is = url.openStream(); +// } catch (Exception e) { +// is = new FileInputStream(path); +// } +// Source xsltSource = new SAXSource(new InputSource(is)); +// TransformerFactory transFact = XsltUtility.getTransformerFactory(); +// transformer = transFact.newTransformer(xsltSource); +// transformer124Map.put(path, transformer); +// } catch (Exception ex) { +// throw new FailedToLoadSchematronStylesheetException(path, ex); +// } +// } +// return transformer; +// } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFileListener.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFileListener.java index db40c0361066b4a93ea803bd6a0f9ec1cff87410..a9db5861b6ffb7b9e0f41599d4457417420ff7d3 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFileListener.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFileListener.java @@ -4,13 +4,10 @@ import dk.gov.oiosi.xml.schematron.research.SchematronComparatorBulkResearchTest /** * Helper class for {@link SchematronComparatorBulkResearchTest} - * - * @author Dmitriy Lapko, TrueLink A/S */ public interface IFileListener { public void apply(String fileName, byte[] data) throws Exception; public boolean isMatch(String fileName); - } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFolderListener.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFolderListener.java index c4c4196d7ffd0c42b000487a75d3912f5662e189..a667e2ef0030e0ad3fb70423320f71aecb40d7e1 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFolderListener.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/research/bulk/IFolderListener.java @@ -4,10 +4,8 @@ import dk.gov.oiosi.xml.schematron.research.SchematronComparatorBulkResearchTest /** * Helper class for {@link SchematronComparatorBulkResearchTest} - * - * @author Dmitriy Lapko, TrueLink A/S */ public interface IFolderListener { - public void apply(String folderName); + void apply(String folderName); } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfigTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfigTest.java index 6d8e17f77b3f856a7f5e82bf87a10f28d5bd6d5d..213baf61585f9756bf9f87682e4bb3b0b408c73b 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfigTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerConfigTest.java @@ -4,9 +4,8 @@ import dk.gov.oiosi.AbstractTestCase; import dk.gov.oiosi.communication.configuration.DocumentTypeCollectionConfig; import dk.gov.oiosi.communication.configuration.DocumentTypeConfig; import dk.gov.oiosi.configuration.ConfigurationHandler; -import dk.gov.oiosi.xml.schematron.SchematronErrorException; import dk.gov.oiosi.xml.schematron.SchematronValidationConfig; -import junit.framework.TestCase; +import dk.gov.oiosi.xml.schematron.SchematronValidationFailedException; /** * Test compatibility of configured document types in RaspConfiguration.xml, test correctness of parsing XPath values and their validation. @@ -45,7 +44,7 @@ public class SchematronValidatorSAXHandlerConfigTest extends AbstractTestCase { } } - public void testBuild() throws SchematronErrorException { + public void testBuild() throws SchematronValidationFailedException { SchematronValidatorSAXHandlerConfig c = SchematronValidatorSAXHandlerConfig.build("/schematron/error", "/schematron/error"); assertEquals("error", c.getErrorMessageTag()); assertEquals(1, c.getTagList().length); @@ -60,28 +59,28 @@ public class SchematronValidatorSAXHandlerConfigTest extends AbstractTestCase { try { SchematronValidatorSAXHandlerConfig.build(null, null); fail("Build method is expected to throw an exception if one of fields is not set"); - } catch (SchematronErrorException see) { + } catch (SchematronValidationFailedException e) { // OK } try { SchematronValidatorSAXHandlerConfig.build("", null); fail("Build method is expected to throw an exception if one of fields is not set"); - } catch (SchematronErrorException see) { + } catch (SchematronValidationFailedException see) { // OK } try { SchematronValidatorSAXHandlerConfig.build(null, ""); fail("Build method is expected to throw an exception if one of fields is not set"); - } catch (SchematronErrorException see) { + } catch (SchematronValidationFailedException see) { // OK } try { SchematronValidatorSAXHandlerConfig.build("/A", "/B"); fail("XPath for error should be equal or start with XPath for error description"); - } catch (SchematronErrorException see) { + } catch (SchematronValidationFailedException see) { // OK } } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerTest.java index 5f8d69f05e01b518afca2a1c7ea7856016fc7ace..e48a2d10d100da81bd419a07d1ba1f511b92b57c 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerTest.java @@ -4,7 +4,6 @@ import junit.framework.TestCase; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; -import java.io.File; import java.io.FileInputStream; import java.io.InputStream; @@ -35,7 +34,7 @@ public class SchematronValidatorSAXHandlerTest extends TestCase { } private void runCase(int index) throws Exception { - InputStream is = new FileInputStream(new File("test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerTest_Case" + index + ".xml")); + InputStream is = new FileInputStream("test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXHandlerTest_Case" + index + ".xml"); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); @@ -55,7 +54,7 @@ public class SchematronValidatorSAXHandlerTest extends TestCase { } } catch (SchematronValidatorSAXException v) { if (index < START_SUCCESS) { - assertEquals("Case " + index, "ERROR TEXT TO SHOW", v.getMessage().trim()); + assertEquals("Case " + index + " failed:", "E-RSP15325: ERROR TEXT TO SHOW", v.getMessage().trim()); } else { fail("Case " + index + ", expected to pass without errors"); } diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtilTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtilTest.java index 4e59431bea2aa3eb912cc12850e21ea3426046af..bac0df8d253fdffd65eab2a2e35d2cf39ab6628a 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtilTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/schematron/sax/SchematronValidatorSAXUtilTest.java @@ -25,44 +25,44 @@ import java.util.List; public class SchematronValidatorSAXUtilTest extends TestCase { protected void setUp() throws Exception { - ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST); - ConfigurationHandler.getInstance(); + ConfigurationHandler.setConfigurationFile(TestConstants.PATH_RASPCONFIGURATION_TEST_EXTENDED); + ConfigurationHandler.getInstance(true); } /** * Test valid and invalid OIOUBL Invoice */ public void testOIOUBLInvoice() throws Exception { - assertNull("Document should be valid", checkDocument(TestConstants.PATH_INVOICE)); - assertEquals("Wrong Schematron error text", "[F-INV009] Invalid Invoice/ID (Invoice number). Must contain a value.", checkDocument(TestConstants.PATH_INVOICE_NO_ID)); + assertNull("Document should be valid", checkDocumentAndGetError(TestConstants.PATH_INVOICE)); + assertEquals("Wrong Schematron error text", "E-RSP15325: [F-INV009] Invalid Invoice/ID (Invoice number). Must contain a value.", checkDocumentAndGetError(TestConstants.PATH_INVOICE_NO_ID)); } /** * Test valid and invalid PEPPOL Despatch Advice. */ public void testPEPPOLDespatchAdvice() throws Exception { - assertNull("Document should be valid", checkDocument(TestConstants.PATH_DESPATCH_ADVICE)); - assertEquals("Wrong Schematron error text", "[BII2-T16-R013]-Each despatch advice line MUST have a despatch line identifier that is unique within the despatch advice", checkDocument(TestConstants.PATH_DESPATCH_ADVICE_BZ1366)); + assertNull("Document should be valid", checkDocumentAndGetError(TestConstants.PATH_DESPATCH_ADVICE)); + assertEquals("Wrong Schematron error text", "E-RSP15325: [BII2-T16-R013]-Each despatch advice line MUST have a despatch line identifier that is unique within the despatch advice", checkDocumentAndGetError(TestConstants.PATH_DESPATCH_ADVICE_BZ1366)); } public void testPEPPOL_BIS3_Billing() throws Exception { - assertNull("Document should be valid", checkDocument(TestConstants.PATH_PEPPOL_BIS_BILLING_Invoice_v3)); - assertEquals("Wrong Schematron error text", "Business process MUST be provided.", checkDocument(TestConstants.PATH_PEPPOL_BIS_BILLING_Invoice_v3_INVALID)); + assertNull("Document should be valid", checkDocumentAndGetError(TestConstants.PATH_PEPPOL_BIS_BILLING_Invoice_v3)); + assertEquals("Wrong Schematron error text", "E-RSP15325: Business process MUST be provided.", checkDocumentAndGetError(TestConstants.PATH_PEPPOL_BIS_BILLING_Invoice_v3_INVALID)); } /** * Test valid and invalid OIOXML Invoice. */ public void testOIOXMLInvoice() throws Exception { - assertNull("Document should be valid", checkDocument(TestConstants.PATH_INVOICE_PIE)); - assertEquals(":\n WARNING: EAN numbers are 13 digits in length\n", checkDocument(TestConstants.PATH_INVOICE_INVALID_EAN_NUMBER)); + assertNull("Document should be valid", checkDocumentAndGetError(TestConstants.PATH_INVOICE_PIE)); + assertEquals("E-RSP15325: :\n WARNING: EAN numbers are 13 digits in length", checkDocumentAndGetError(TestConstants.PATH_INVOICE_INVALID_EAN_NUMBER)); } /** * Test all available test documents, defined in TestConstants class, where file path ends with .xml */ public void testCompareValidationResultsOnAllTestDocuments() throws Exception { - List excludedFieldList = Arrays.asList("PATH_RASPCONFIGURATION_PRODUCTION", "PATH_RASPCONFIGURATION_TEST", "PATH_NKS_PAYMENT_ORDER"); + List excludedFieldList = Arrays.asList("PATH_RASPCONFIGURATION_PRODUCTION", "PATH_RASPCONFIGURATION_TEST", "PATH_RASPCONFIGURATION_PRODUCTION_EXTENDED", "PATH_RASPCONFIGURATION_TEST_EXTENDED", "PATH_RASPCONFIGURATION_OLD_FORMAT", "PATH_NKS_PAYMENT_ORDER"); Field[] fields = TestConstants.class.getDeclaredFields(); for (Field field : fields) { if (Modifier.isPublic(field.getModifiers()) && !excludedFieldList.contains(field.getName())) { @@ -70,21 +70,21 @@ public class SchematronValidatorSAXUtilTest extends TestCase { if (value instanceof String) { String filePath = (String) value; if (filePath.endsWith(".xml") && !filePath.startsWith(TestConstants.PATH_EXAMPLES_INVALID)) { - checkDocument(filePath); + checkDocumentAndGetError(filePath); } } } } } - private String checkDocument(String path) throws Exception { + private String checkDocumentAndGetError(String path) throws Exception { XmlDocument xd = new XmlDocument(); xd.load(path); - return checkDocument(xd); + return checkDocumentAndGetError(xd); } - private String checkDocument(XmlDocument xd) throws Exception { + private String checkDocumentAndGetError(XmlDocument xd) throws Exception { DocumentTypeConfigSearcher dts = new DocumentTypeConfigSearcher(); DocumentTypeConfig documentTypeConfig = dts.findUniqueDocumentType(xd); assertNotNull(documentTypeConfig); @@ -120,4 +120,4 @@ public class SchematronValidatorSAXUtilTest extends TestCase { } return null; } -} \ No newline at end of file +} diff --git a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/xslt/XsltUtilityTest.java b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/xslt/XsltUtilityTest.java index 53208913cbac4818bafcb2c61e123ecdf1cb43c0..1318da90b9b0e4299ceeff91f283539c7bc581eb 100644 --- a/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/xslt/XsltUtilityTest.java +++ b/dk.gov.oiosi.library/test/src/dk/gov/oiosi/xml/xslt/XsltUtilityTest.java @@ -23,7 +23,6 @@ import dk.gov.oiosi.AbstractTestCase; import dk.gov.oiosi.TestConstants; import dk.gov.oiosi.configuration.ConfigurationHandler; import dk.gov.oiosi.xml.XmlDocument; -import junit.framework.TestCase; import javax.xml.transform.Transformer; diff --git a/dk.gov.oiosi.library/test/src/keys/OCES_Test.jks b/dk.gov.oiosi.library/test/src/keys/OCES_Test.jks index c7c8e8a18b70d97e23c91620221c46446873bdbe..f673b4ca9a89244102114609a43a45559ced065c 100644 Binary files a/dk.gov.oiosi.library/test/src/keys/OCES_Test.jks and b/dk.gov.oiosi.library/test/src/keys/OCES_Test.jks differ