[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Implementing Conditional Text
Subject: Re: Implementing Conditional Text
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Tue, 12 Jun 2012 22:00:02 +0100
|
A drawback of using PIs is that it will be very hard to enforce any
rules about them, because most schema technologies simply ignore them.
Even your rule that says the PIs won't cross element boundaries will be
hard to enforce. Also I doubt that XML editors are very helpful in
assisting with creation of PIs.
I'd go for attributes, permitted on any element, including the option of
a span-like inline element used only for the purpose. In my experience
most conditional text tends to be at the paragraph level:
<p when="special">
Michael Kay
Saxonica
On 12/06/2012 21:39, Craig Sampson wrote:
Hello,
We, our publications XML support group, are being asked to support conditional text in our source documents.
We've come up with an idea but before going any further I thought I'd run it by this group to see if anyone had done this before or if anyone had a better solution.
We plan to use processing-instructions (PIs) entered by the authors that would indicate which conditions were on or off. These PIs would be inserted near the top of the documents. There would be additional PIs identifying the beginning and end of conditional text strings. We would use a XSL transform to preprocess these documents and convert the PIs into pseudo elements that could then be processed in a second XSLT preprocessor would keep or discard the strings based on the conditions set in the PIs at the top of the document. The resulting document would not have any of the PIs or pseudo elements just the content that was kept.
We want to use PIs so we don't have to dirty up our DTD with conditional elements that would be allowed everywhere. I can't think of any way to eliminate the conversion to pseudo elements which solves the problem of identifying and controlling the conditional text.
We are not allowing the conditional text to break existing element boundaries or to be nested within other conditions so the following example should represent what we're trying to do:
<topic>
<p>Mary had a little<?condStart normal:true?>lamb<?condStop normal:true?><?condStart special:true?>pony<?condStop special:true?>...</p>
In the example if the PIs at the top of the document set "normal" to "true" and "special" to "false" then Mary had a little lamb. If both conditions are set to true then Mary will have both the lamb and the pony.
Can anyone poke holes in this solution or suggest a better way to accomplish this.
Thanks,
Craig
--------------------------------------------------------------------
Craig R. Sampson SAS Institute Inc. email: craig.sampson@xxxxxxx
XML Technologies SAS Campus Drive phone: (919) 531-7417
Cary, NC. 27513 FAX: (919) 677-4444
--------------------------------------------------------------------
Please consider the environment before printing this email
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|