This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Constraint Searching in XML via XSLT


Hi everyone...

I am using XML as a kind of client-side database for the project I'm 
currently doing. I have an SQL database on the server side which generates 
XML data files, and also XML an XML index file. The XML index file contains 
an ID for each data file (in this case a Trial), and a whole lot of 
attributes. I want to transform into an HTML Search Result. I want to do 
this by setting top-level parameters in the XSLT stylesheet (these 
parameters are to be the values for the constraints).

My XML Index File looks something like this....

<?xml version="1.0"?>
<!DOCTYPE IndexFile SYSTEM "vfdindex.dtd">

<vfdindex:IndexFile
    xmlns:vfdindex='http://www.cs.mu.oz.au/SE-projects/s340gt/vfdindex/'>

     <vfdindex:TrialID value="1">
         <vfdindex:TrialName>Lentil Trial</vfdindex:Rainfall>
	   <vfdindex:Rainfall>700</vfdindex:Rainfall>
	   <vfdindex:SoilType>Some soil</vfdindex:SoilType>
	   <vfdindex:CropType>Lentils</vfdindex:CropType>
         <vfdindex:RegionName>Birchip</vfdindex:RegionName>
     </vfdindex:TrialID>
     <vfdindex:TrialID value="2">
         <vfdindex:TrialName>Wheat Trial</vfdindex:Rainfall>
	   <vfdindex:Rainfall>1400</vfdindex:Rainfall>
	   <vfdindex:SoilType>Some soil</vfdindex:SoilType>
	   <vfdindex:CropType>Wheat</vfdindex:CropType>
         <vfdindex:RegionName>Melbourne</vfdindex:RegionName>
     </vfdindex:TrialID>

</vfdindex:IndexFile>

Basically, I want to input one or more values for TrialName, Rainfall, 
SoilType, CropType, RegionName and so on. I can implement it fine for one 
constraint, where I have one top-level parameter for the value I want to 
search for. The constraint to be searched for was fixed.

However, the way I did it before was like this:

* Make a template which matches only on a TrialID whose constraint is equal 
to the value specified in the top-level parameter. (Just using 
<xsl:template> with the match attribute)

I don't think this will work for a more complex case.

So, my questions are these.

1. If a constraint is not specified, how do I get the XSLT stylesheet to 
match all elements?

2. In the case of rainfall, I want to allow users to specify a rainfall 
*range*. Is it possible to do this in XSLT? I had a look and there seem to 
be < and > operators.

3. Should I be using <xsl:choose> and <xsl:if> instead of <xsl:template> 
for this sort of stuff?

Thanks everyone!!!

Joel


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]