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 |