Aw: Re: New XSLT NOT WORKING was Re: [xsl] XSLT to populate a SAML AttributeStatement from an XML

Subject: Aw: Re: New XSLT NOT WORKING was Re: [xsl] XSLT to populate a SAML AttributeStatement from an XML
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 22 Jan 2023 07:28:03 -0000
Yes, kind of, it matches any element node not having element node
children.

--
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail
gesendet.Am 22.01.23, 08:19 schrieb "ohaya ohaya@xxxxxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>:

  Hi,

  I was wondering if someone could explain what:

  <xsl:template match="*[not(*)]">

  does?

  Is that not(*) checking for non-empty nodes?

  Thanks,
  Jim

  On Saturday, January 21, 2023, 05:00:18 AM EST, Martin Honnen
  martin.honnen@xxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

  Am 1/21/2023 um 10:02 AM schrieb ohaya ohaya@xxxxxxxxx:
  > Hi,
  >
  > I was wondering, is it possible to add a condition to this:
  >
  > <xsl:template match="/record/adrRecord/*">
  >
  > for only if the node has no value?
  >
  > If it is possible, how to do that, and also do you all think this
  > would fix the problem that is happening?

  I am wondering if the input sample

  <record>
  <adrRecord>
  <PN_ID>1111111</PN_ID>
  <personnel>
  <ADM_ORG_CD>urn:NORM:DEPT</ADM_ORG_CD>
  <DOD_ASSOC_CD>urn:NORM:V01</DOD_ASSOC_CD>
  </personnel>
  <enterpriseUser>
  <entUserRoles>a:b:c</entUserRoles>
  </enterpriseUser>
  </adrRecord>
  </record>

  transformed by e.g.

  <?xml version="1.0" encoding="utf-8"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transf orm"
  version="2.0"
  xmlns:xs="http://www.w3.org/2001/XMLSchema";
  xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
  xmlns:xsi="http://www.w3.org/2001/XMLSc hema-instance"
  exclude-result-prefixes="xs">

  <xsl:output indent="yes"/>

  <xsl:template match="*">
  <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="text()"/>

  <xsl:template match="/">
  <saml:AttributeStatement>
  <xsl:apply-templates/>
  </saml:AttributeStatement>
  </xsl:template>

  <xsl:template match="*[not(*)]">
  <saml:Attribute Name="{name()}"
  NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <xsl:for-each select="tokenize(.,':')">
  <saml:AttributeValue
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xsi:type="xsd:string">
  <xsl:value-of select="."/>
  </saml:AttributeValue>
  </xsl:for-each>
  </saml:Attribute>
  </xsl:template>

  </xsl:stylesheet>

  into e.g.

  <saml:AttributeStatement
  xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
  xmlns:xsi="http://www.w3.org/2001/XMLSc hema-instance">
  <saml:Attribute Name="PN_ID"
  NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <saml:AttributeValue
  xsi:type="xsd:string">1111111</saml:AttributeValue>
  </saml:Attribute>
  <saml:Attribute Name="ADM_ORG_CD"
  NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <saml:AttributeValue xsi:type="xsd:string">urn</saml:AttributeValue>
  <saml:AttributeValue xsi:type="xsd:string">NORM</saml:AttributeValue>
  <saml:AttributeValue xsi:type="xsd:string">DEPT</saml:AttributeValue>
  </saml:Attribute>
  <saml:Attribute Name="DOD_ASSOC_CD"
  NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <saml:AttributeValue xsi:type="xsd:string">urn</saml:AttributeValue>
  <saml:AttributeValue xsi:type="xsd:string">NORM</saml:AttributeValue>
  <saml:AttributeValue xsi:type="xsd:string">V01</saml:AttributeValue>
  </saml:Attribute>
  <saml:Attribute Name="entUserRoles"
  NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <saml:AttributeValue xsi:type="xsd:string">a</saml:AttributeValue>
  <saml:AttributeValue xsi:type="xsd:string">b</saml:AttributeValue>
  <saml:AttributeValue xsi:type="xsd:string">c</saml:AttributeValue>
  </saml:Attribute>
  </saml:AttributeStatement>

  is perhaps all you want to output?

  But with so many posts I have lost track of what the input is and
  what
  the wanted output is.

  XSL-List info and archiveEasyUnsubscribe (by email)

XSL-List info and archiveEasyUnsubscribe (by email)

Current Thread