[xsl] Re: Validating uniqueness in a XML file using XSLT

Subject: [xsl] Re: Validating uniqueness in a XML file using XSLT
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Wed, 3 Sep 2003 06:45:35 +0200
Use something like this:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output omit-xml-declaration="yes" indent="yes"/>

  <xsl:key name="kattName" match="@name" use="."/>

  <xsl:template match="/">
    <xsl:for-each select="//*[key('kattName', @name)[2]]">
      <xsl:copy>
        <xsl:copy-of select="@*"/>
      </xsl:copy>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

When this transformation is applied on this source.xml:

<M name="a">
  <N> </N>
  <M name="b">
    <N name="a"> 12</N>
    <MM name="c"/>
  </M>
</M>

it produces all elements having "name" attributes with non-unique value:

<M name="a" />
<N name="a" />


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
"Dongling Ding" <dling61@xxxxxxxxx> wrote in message
news:20030903001436.28538.qmail@xxxxxxxxxxxxxxxxxxxxxxxxxx
>
> Hi,
>
> I want to XSLT to validate the uniqueness for the name
> attribute in an XML file. The result will print out
> any elements with the duplicated name attributes.
>
> Basically, XSLT needs to look at all the elements with
> name attribute and check the uniqueness for its value.
>
> Is there a good way to do that in XSLT?
>
> Thank for any input/comment.
>
>
> Dongling
>
>
> Here is the sample XML
>
> <M name="a">
>   <N></N>
>   <M name="b">
>     <N>12<N>
>     <MM name="c"/>
>   </M>
> </M>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free, easy-to-use web site design software
> http://sitebuilder.yahoo.com
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread