OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-security message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Opportunity to teach about namespaces in extensions


Hi folks,

As I'm pulling this together, I thought of my own advice to students 
about creating their own UBL extensions:

   "Mimic the UBL structure by creating an apex namespace, an aggregate
    namespace, and a basic namespace.  That way you can propose your new
    constructs to the TC and they'll already be structured the same
    way as the committee's constructs and they can be slipped in easily."

So, I'm proposing that we structure our first standardized extension 
the same way, so that when people copy what we do, they will have 
followed this advice and have structured their extensions in such a 
way that they are following CCTS 2.01 and the UBL way of doing things.

I'm writing up the explanation for all of this in the revised Chapter 
5 I'm writing for Jon.

But ... I want to avoid any push-back later if Security SC members 
balk at doing this ... I'm hoping you won't object as it follows CCTS 
2.01 principles.

So, the end result is the instance fragment below, with a namespace 
for the apex element (mimicking the Document Schema), a namespace for 
signature aggregates (mimicking the Common Aggregate Schema), and a 
namespace for signature basics (mimicking the Common Basic Schema).

I'm not afraid of namespaces ... users of UBL will already be used to 
using a number of namespaces ... I think following principles is 
better than worrying about some extra typing in the apex element start tag.

Is anyone going to object to this?  I've already started writing the 
schemas, but I'll await your feedback.

If you don't accept using all these namespaces, do you accept 
violating the CCTS 2.01 principles?

Thanks!

. . . . . . . . . . Ken

...
   <ext:UBLExtensions>
    <ext:UBLExtension>
      <ext:ExtensionURI>dummy1</ext:ExtensionURI>
      <ext:ExtensionContent>
        <dummy1:AnExtension xmlns:dummy1="urn:X-dummy1">
        </dummy1:AnExtension>
      </ext:ExtensionContent>
    </ext:UBLExtension>
    <ext:UBLExtension>
      <ext:ExtensionURI>urn:oasis:names:specification:ubl:profile:dsig:signature</ext:ExtensionURI>
      <ext:ExtensionContent>
        <sig:UBLDocumentSignatures xmlns:sig=
     "urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2"
     xmlns:sac=
  "urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2"
     xmlns:sbc=
      "urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2">
          <sac:SignatureInformation>
            <cbc:ID>urn:oasis:names:specification:ubl:signatures:1</cbc:ID>
            <sbc:ReferencedSignatureID>MyParty</sbc:ReferencedSignatureID>
            <Signature xmlns="http://www.w3.org/2000/09/xmldsig#";>
              <SignedInfo>
                <CanonicalizationMethod
                   Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
                <SignatureMethod
                    Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                <Reference URI="">
                  <Transforms>
                    <Transform
                       Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116";>
                        <XPath>
                         count(ancestor-or-self::sig:UBLDocumentSignatures |
                                here()/ancestor::sig:UBLDocumentSignatures[1])  
here()/ancestor::sig:UBLDocumentSignatures[1]) >
                         count(ancestor-or-self::sig:UBLDocumentSignatures)
                        </XPath>
                      </Transform>
                    </Transforms>
                    <DigestMethod
                        Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                    <DigestValue>XXXXXXXXXXXXXXXX</DigestValue>
                  </Reference>
                </SignedInfo>
                <SignatureValue>
                  XXXXXXXXXXXXXXXX
                </SignatureValue>
                <KeyInfo>
                  <X509Data>
                    <X509SubjectName>
                      CN=My Name,O=Certification Issuing Company,C=US
                    </X509SubjectName>
                    <X509Certificate>
                      XXXXXXXXXXXXXXXX
                    </X509Certificate>
                  </X509Data>
                </KeyInfo>
              </Signature>
          </sac:SignatureInformation>
        </sig:UBLDocumentSignatures>
      </ext:ExtensionContent>
    </ext:UBLExtension>
    <ext:UBLExtension>
      <ext:ExtensionURI>dummy2</ext:ExtensionURI>
      <ext:ExtensionContent>
...

--
XSLT/XQuery training:   after http://XMLPrague.cz 2011-03-28/04-01
Vote for your XML training:   http://www.CraneSoftwrights.com/o/i/
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/o/
G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/o/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]