I have a XLST that reads XML from zap2it.com (via SOAP) and I declare several
keys. I was reading
their schema and it also has similar 'xsd:key', 'xsd:keyref', and 'xsd:unique'
elements. My question
is -- is my xsl:key statements redundant? And can I just phrase a "key()"
search function based on
the schema, or is the schema for documentation only?
I have read "XSL Transformations" (http://www.w3.org/TR/xslt), but they dont
mention a schema
connection.
BTW, this is a general XSLT language question ... but if it depends on
implementation I am using
xmlsoft.org (aka. Gnome) libxslt v1.1.12.
These are my xsl:key statements:
<xsl:key name="station_keyref_schedule" match="./ns1:schedules/ns1:schedule"
use="@station" />
<xsl:key name="program_key" match="./ns1:programs/ns1:program" use="@id" />
<xsl:key name="genre_keyref" match="./ns1:genres/ns1:programGenre"
use="@program" />
<xsl:key name="crew_keyref" match="./ns1:productionCrew/ns1:crew"
use="@program" />
And the relevant schema portion
(http://docs.tms.tribune.com/tech/xml/schemas/tmsxtvd.xsd):
<xsd:key name="station_key">
<xsd:selector xpath="./stations/station"/>
<xsd:field xpath="@id"/>
</xsd:key>
<xsd:keyref name="station_keyref_schedule" refer="tms:station_key">
<xsd:selector xpath="./schedules/schedule"/>
<xsd:field xpath="@station"/>
</xsd:keyref>
<xsd:unique name="program_key">
<xsd:selector xpath="./programs/program"/>
<xsd:field xpath="@id"/>
</xsd:unique>
<xsd:keyref name="crew_keyref" refer="tms:program_key">
<xsd:selector xpath="./productionCrew/crew"/>
<xsd:field xpath="@program"/>
</xsd:keyref>
<xsd:keyref name="genre_keyref" refer="tms:program_key">
<xsd:selector xpath="./genres/programGenre"/>
<xsd:field xpath="@program"/>
</xsd:keyref>
The XML outline is:
<xtvd from='2005-07-20T11:30:00Z' to='2005-07-21T00:00:00Z' schemaVersion='1.3'
xmlns='urn:
TMSWebServices' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='urn:
TMSWebServices http://docs.tms.tribune.com/tech/xml/schemas/tmsxtvd.xsd'>
...
<stations>
<station id="10398">
<callSign>KDAF</callSign><name>KDAF</name><fccChannelNumber>33</fccChannelNumber><affiliate>WB
Affiliate</affiliate>
</station>
<station id="10402">
<callSign>KDFW</callSign><name>KDFW</name><fccChannelNumber>4</fccChannelNumber><affiliate>Fox
Affiliate</affiliate>
</station>
</stations>
<schedules><schedule program="SH6948700000" station="10398"
time="2005-07-20T11:30:00Z"
duration="PT00H30M"/>
...
<schedule program="SH1966900000" station="10402" time="2005-07-20T11:00:00Z"
duration="PT01H00M"/>
...
</schedules>
<programs>
...
<program id="EP0000510180"><title>A Different World</title><subtitle>When One
Door Closes ...
<subtitle><description>A Japanese corporation woos Dwayne for his software;
Whitley is pregnant;
guests Diahann Carroll, Patti
LaBelle.</description><showType>Series</showType><series>SH000051</
series><syndicatedEpisodeNumber>9216B</syndicatedEpisodeNumber><originalAirDate>1993-05-08</
originalAirDate></program>
...
<program id="SH1966900000"><title>Good Day at
6:00AM</title><description>Henderson, Ryan.</
description><showType>Series</showType><series>SH196690</series><originalAirDate>2001-06-21</
originalAirDate></program>
...
</programs>
<productionCrew><crew
program="EP0000510180"><member><role>Actor</role><givenname>Jasmine</
givenname><surname>Guy</surname></member>
...
</crew>
...
</productionCrew>
<genres><programGenre
program="EP0000510180"><genre><class>Sitcom</class><relevance>0</relevance></
genre></programGenre>
...
</genres>
</xtvd>
Thx for any pointers ....
--
Rodman
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--