|
Subject: Re: [xsl] XSLT to populate a SAML AttributeStatement from an XML From: "ohaya ohaya@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 21 Jan 2023 05:14:11 -0000 |
Hi Michael (et al),
You all might find this funny (== "ironic" or "amusing" ), but after showing
some of my colleagues what I had done, they are now telling me (a) the names
for each of the template matches ARE the same (exactly as you all ASSUMED
earlier) plus they realized that if the XSLT designed to only work with
specific names, then if the names in the source XML changed, then we would
also have to change our code every time, so I think I am going to try to to
use what you (Michael) originally suggested :)!!
Jim
On Wednesday, January 18, 2023, 01:56:45 PM EST, Michael Kay
michaelkay90@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
Are you able to use XSLT 2.0+ -- that gives you a tokenize() function which
makes this far easier.
In 2.0 it's essentially
<xsl:template match="personnel/*">
B <saml:Attribute Name="{name()}"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
B B <xsl:for-each select="tokenize(.)">
B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string"><xsl:value-of select="."/></saml:AttributeValue>
Incidentally, there are no attributes in your input XML - it's all elements.
Michael Kay
Saxonica
B
> On 18 Jan 2023, at 17:06, ohaya ohaya@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> [I originally sent this to the wrong email address... sorry!]
>
> Hi,
>
> I have an application where I am retrieving a number of attributes and
values from a web service, in the form of an XML file, and I want to create
and populate a SAML AttributeStatement from the attributes and values in that
XML file.B A couple of complications (to me):
>
> - The attribute names in the XML file are different than the corresponding
attributes in the SAML AttributeStatement.
> - Some of the attributes are multi-valued:B in the source XML file, the
values are a colon-separated string (e.g. ab:cd:ef), but in the
AttributeStatement, each value will be in separate <saml:Attribute> element.
>
> Here's an example source XML:
>
> <record>
> .
> .
> .
>B <adrRecord>
>B B <PN_ID>1111111</PN_ID>
>B B <personnel>
>B B B <ADM_ORG_CD>urn:NORM:DEPT</ADM_ORG_CD>
>B B B <DOD_ASSOC_CD>urn:NORM:V01</DOD_ASSOC_CD>
>B B </personnel>
>B </adrRecord>
> </record>
>
> and the AttributeStatement I want to transform the above to is something
like:
>
>
>B B <saml:Attribute Name="MY_PN_ID"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
>B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string">1111111</saml:AttributeValue>
>B B </saml:Attribute>
>
>
>B B <saml:Attribute Name="MY_ORG_CD"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
>B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string">DEPT</saml:AttributeValue>
>B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string">urn</saml:AttributeValue>
>B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string">NORM</saml:AttributeValue>
>B B </saml:Attribute>
>
>
>B B <saml:Attribute Name="MY_ASSOC_CD"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
>B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string">urn</saml:AttributeValue>
>B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string">NORM</saml:AttributeValue>
>B B B B <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string">V01</saml:AttributeValue>
>B B </saml:Attribute>
>
> </saml:AttributeStatement>
>
> Can someone suggest the best approach to do this?B I actually would prefer
to have a series of transforms to do this, rather than just a single XSLT,
mainly so I can be able to see how things are working (or not working).
>
> Thanks,
> Jim
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] XSLT to populate a SAML A, Michael Kay michaelk | Thread | New XSLT NOT WORKING was Re: [xsl] , ohaya ohaya@xxxxxxxx |
| Re: ALMOST WORKING was Re: [xsl] XS, Martin Honnen martin | Date | New XSLT NOT WORKING was Re: [xsl] , ohaya ohaya@xxxxxxxx |
| Month |