* James Moore ([email protected]) [160422 17:52]: > I am implementing XML::Compile::WSS and the API I am working with expects > the header to contain a SecurityTokenReference with > X509Data/X509IssuerSerial block.
Unluckily for you, I'll go on holidays (9 days Schotland) leaving tomorrow early morning... support will be a bit limited ;-) [at least daily] > http://www.ws-i.org/Profiles/BasicSecurityProfile-1.1.html#KeyIdentifier_or_X509IssuerSerial_for_External_References > > XML::Compile::WSS::KeyInfo provides three methods for publish_token > (KEYNAME, SECTOKREF_KEYID, SECTOKREF_URI). Unfortunately, none of these > produce the KeyInfo block in the way desired. So, I have tried my hand at > creating schema->writer(s). There are over 300 algoritms in XML-WSS space :( > my $x509w = $schema->writer('ds:X509Data'); > ## works correctly > > my $x509isw = $schema->writer('ds:X509IssuerSerial'); > ## returns error: cannot find element or attribute `{ > http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial' at ds:X509IssuerSerial This is not a top-level element, so cannot be addressed this way. The 200009-dsig.xsd tells me: <element name="X509Data" type="ds:X509DataType"/> <complexType name="X509DataType"> <sequence maxOccurs="unbounded"> <choice> <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/> <element name="X509SKI" type="base64Binary"/> <element name="X509SubjectName" type="string"/> The distribution contains a dump/ directory with templates for this structure. # is a ds:X509DataType ds_X509Data => { # sequence of choice # occurs 1 <= # <= unbounded times seq_ds_X509IssuerSerial => [ { # choice of ds_X509IssuerSerial, ds_X509SKI, # ds_X509SubjectName, ds_X509Certificate, ds_X509CRL, ANY # is a ds:X509IssuerSerialType ds_X509IssuerSerial => { # sequence of ds_X509IssuerName, ds_X509SerialNumber # is a xsd:string ds_X509IssuerName => "example", # is a xsd:integer ds_X509SerialNumber => 42, }, > As this is part of the specification, I imagine it has come up before and I > am just overlooking the solution. I appreciate your feedback and a big > "Thank You" for developing this great suite of modules. As emergency trick, you can always manually create a XML::LibXML::Element, and put that as value to ds_X509Data -- Success! MarkOv ------------------------------------------------------------------------ Mark Overmeer MSc MARKOV Solutions [email protected] [email protected] http://Mark.Overmeer.net http://solutions.overmeer.net _______________________________________________ Xml-compile mailing list [email protected] http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile
