Subject: RE: Ideal XML Site tree layout
From: "John Hamman" <John@xxxxxxxxxxxxxxxxx>
Date: Wed, 21 Apr 2004 09:58:23 -0400
|
I realized I wasn't clear on my question.
What im looking for is to make a single file (xml) that list all the
Directorys and links for a medium to large site. My original thought is to
do what DMOZ did with the directory but im not sure this is the best way. I
would like to find the most efficient and possibly proven way to do this.
john
-----Original Message-----
From: Emmanuil Batsis (Manos) [mailto:mbatsis@xxxxxxxxxxx]
Sent: Wednesday, April 21, 2004 3:47 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Ideal XML Site tree layout
Although what you are after is not clear to me, Apache Cocoon's sitemap
may be very interesting to you (as a study or solution).
hth,
Manos
John Hamman wrote:
> I ask this in xsl because I need a xml file that will list an entire
> (enterprise size) site in one file and be easily sorted via xsl.
> Do anyone have any ideas on a good framework for this?
> john
>
> -----Original Message-----
> From: Robert Koberg [mailto:rob@xxxxxxxxxx]
> Sent: Sunday, April 18, 2004 10:15 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: Dmoz xml structure sort
>
> Hi,
>
> I think you are on the right track, but I would suggest changing your
> schema a bit. I would organize your topics hierarchically and have a
> unique ID and a name (names are more likely to have duplicates)
> attribute, like:
>
> <topic id="t123" name="Base">
> <Title local="en-US">Home</Title>
> <topic id="t234" name="General_Information">
> <topic id="t345" name="About_us">
>
> </
> <topic id="t346" name="Contact_us">
>
> </
> </
> </
>
> With this structure you will be able to many more things than you have
> probably thought of at this point and you do not need to list the
> //narrow elements because they are now there. This means you can move
> things around and you wont' have to edit your topics config.
>
> Now, on to some XSL:
>
> First thing to do is create a top level key:
>
> <xsl:key name="topics" match="topic" use="@id"/>
>
> Then I usually pass the 'focus' id into the transformation as a
> parameter, so if you can do that you can get your focus topic in a top
> level variable:
>
> <xsl:variable
> name="focus_topic"
> select="key('topics', $focus_topic_id)"/>
>
> <xsl:variable
> name="focus_parent"
> select="key('topics', $focus_parent_id)"/>
>
> Then you can use this variable throughout your transformation to find
> your topic context. You can ensure you always have valid links by first
> going to the linked topic nodeset and then traveling up and down the
> topic hierarchy to find the path. Say you want to create a nav thingy -
> you can do it like so:
>
> <xsl:template match="/">
> <html>
> <xsl:call-template name="head"/>
> <body>
> <div id="pageBody">
> <xsl:call-template name="banner"/>
>
> <div id="navColumn">
>
> <xsl:apply-templates
> select="$focus_parent/*"
> mode="navigation"/>
>
> </div>
>
> <div id="contentWrapper">
> <xsl:appl
> <xsl:call-template name="footer"/>
> </div>
> </body>
> </html>
> </xsl:template>
>
>
> <!-- match the children of the focus parent-->
> <xsl:template match="*" mode="navigation">
>
> <xsl:variable name="href">
> <xsl:call-template name="topic_path_builder"/>
> </
>
> <xsl:choose>
> <xsl:when test="not(@id=$focus_topic_id)">
> <div>
> <a href="{$href}">
> <xsl:value-of select="@label"/>
> </a>
> </div>
> </
> <xsl:otherwise>
> <div class="selected">
> <a href="{$href}">
> <xsl:value-of select="@label"/>
> </a>
> </div>
> </
> </
> </
>
> <xsl:template name="topic_path_builder">
> <xsl:call-template name="ancestor_path"/>
> <xsl:text>/</xsl:text>
> <xsl:value-of select="@name"/>
> </xsl:template>
>
> <!-- root relative paths,
> you could do document relative paths too-->
>
> <xsl:template name="ancestor_path">
> <xsl:for-each select="ancestor::*">
> <xsl:text>/</xsl:text>
> <xsl:value-of select="@name"/>
> </xsl:for-each>
> </xsl:template>
>
> make sense?
>
> best,
> -Rob
>
>
>
> John Hamman wrote:
>
>
>>Hi all.
>>I have a navigational site tree xml page similar to Dmoz.org.
>>And its made up like this below. I am new to xpath and am having problems
>>finding a solution to this.
>>
>>My file looks similar to this.
>>
>><Topic id="Base">
>> <tag catid="1"/>
>> <Title local="en-US">Home</Title>
>> <narrow resource="Base/General_Information"/>
>> <narrow resource="Base/StudentLife"/>
>> <narrow resource="Base/Missions"/>
>> <narrow resource="Base/Community"/>
>> <narrow resource="Base/Academics"/>
>> <narrow resource="Base/News"/>
>> </Topic>
>> <Topic id="Base/General_Information">
>> <tag catid="2"/>
>> <Title local="en-US">General Information</Title>
>> <narrow
>>resource="Base/General_Information/About_us"/>
>> <narrow
>>resource="Base/General_Information/Contact_us"/>
>> <narrow
>>resource="Base/General_Information/Directors_Letter"/>
>> <narrow
>>resource="Base/General_Information/History"/>
>> <narrow
>>resource="Base/General_Information/What_We_Beleive"/>
>> <narrow
>>resource="Base/General_Information/Staff_Directory"/>
>> </Topic>
>> <Topic id="Base/General_Information/About_us">
>> <tag catid="8"/>
>> <Title local="en-US">About Us</Title>
>> </Topic>
>> <Topic id="Base/General_Information/Contact_us">
>> <tag catid="9"/>
>> <Title local="en-US">Contact Us</Title>
>> </Topic>
>>...
>>...
>>...
>>
>>
>>And I want to acheave results like this if I had a dynamic variable like
>>"Base/General_Information/About_us"
>>
>><Topic id="Base/General_Information/About_us">
>> <tag catid="8"/>
>> <Title local="en-US">About Us</Title>
>> </Topic>
>> <Topic id="Base/General_Information/Contact_us">
>> <tag catid="9"/>
>> <Title local="en-US">Contact Us</Title>
>> </Topic>
>> <Topic id="Base/General_Information/Directors_Letter">
>> <tag catid="10"/>
>> <Title local="en-US">Letter From the
>>Director</Title>
>> </Topic>
>> <Topic id="Base/General_Information/History">
>> <tag catid="11"/>
>> <Title local="en-US">History</Title>
>> </Topic>
>> <Topic id="Base/General_Information/What_We_Beleive">
>> <tag catid="12"/>
>> <Title local="en-US">What We Beleive</Title>
>> </Topic>
>> <Topic id="Base/General_Information/Staff_Directory">
>> <tag catid="13"/>
>> <Title local="en-US">Staff Directory</Title>
>> </Topic>
>>
>>Can someone point me in the right direction?
>>john
>
>
--
Manos Batsis
_ __ __ __
/ |/ /__ / /____ __ _ ___ _____/ /_
/ / -_) __(_-</ ' Y _ `/ __/ __/
/_/|_/\__/\__/___/_/_/_|_,_/_/ \__/
http://www.netsmart.gr
mailto:mbatsisSPAM_TRAP@xxxxxxxxxxx
tel:+302103240940
http://forte.netsmart.gr/foaf/manos_foaf.rdf
|