|
Subject: Re: [xsl] question about generate-id() From: Andrew Welch <andrew.j.welch@xxxxxxxxx> Date: Fri, 6 Aug 2010 09:56:10 +0100 |
>> > 16.6.4
>> > There is no guarantee that a generated unique identifier will be
>> > distinct from any unique IDs specified in the source document.
>> >
>> > Yuk. IMHO that's a spec weakness. More constrained, surely
>> > it's not rocket science to implement.
>>
>> You could do it yourself
>
> Which would IMHO be a kludge to work round a spec weakness.
> Yes. Lots of ways to do it as this thread has shown.
If I've followed this thread, the problem is that generate-id() might
clash with some existing id in the source? Mixing 2 ways of creating
the ids seems odd, and using a single consistent approach should make
the problem go away Ultimately though, you should be validating the
result - you could do it an embedded xsd just for this check:
<xsl:import-schema>
<xs:schema>
<xs:element name="foo">
<xs:key name="my_id">
<xs:selector xpath=". | .//*"/>
<xs:field xpath="@id"/>
</xs:key>
</xs:element>
</xs:schema>
</xsl:import-schema>
<xsl:template match="/">
<xsl:result-document validation="strict">
<foo id="a">
<bar id="b"/>
<baz id="a"/>
</foo>
</xsl:result-document>
</xsl:template>
results in a (Saxon-EE) failure message containing:
Description: Non-unique value found for constraint my_id: "a"
Start location: 22:19
URL: http://www.w3.org/TR/xslt20/#err-XTTE1555
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] question about generate-i, Dave Pawson | Thread | Re: [xsl] question about generate-i, Dave Pawson |
| Re: [xsl] question about generate-i, Dave Pawson | Date | [xsl] function returning string wit, Michael Müller-Hille |
| Month |