OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: XInclude vs SAX vs validation



At 5:37 PM +0200 8/21/01, Julian Reschke wrote:
>Hi,
>
>it seems that implementing XInclude on the SAX layer is a reasonable
>approach. Not having worked a lot with SAX before, I'd approach it by
>writing a SAX filter, catching XInclude instructions and generating new SAX
>events.
>

I actually just posted a SAX filter that implements XInclude. See http://www.ibiblio.org/xml/XInclude/ 

Overall, this is doable but tricky. Handling comments correctly is a particular problem because SAX separates them into a half-supported Lexicalhandler class rather than integrating them into ContentHandler. The only API that really works well for XInclude is DOM, because the Infoset is in many ways designed around DOM and XInclude is designed around the Infoset. 

>My question is: how would this affect validation against a DTD? From my
>understanding, validation normally happens at a lower level, so it is
>already done when I receive a SAX event, right?
>

Not necessarily. Since SAX is a streaming API, the validator won't know if the document is valid until the last element has been read by which point many of your methods will have already been called. However, I'm not sure if you can easily convince the validator to wait until you've resolved an include element before checking it. It may have already tried to validate just the one element before you get it. 
-- 

+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo@metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+ 
|          The XML Bible, 2nd Edition (Hungry Minds, 2001)           |
|              http://www.ibiblio.org/xml/books/bible2/              |
|   http://www.amazon.com/exec/obidos/ISBN=0764547607/cafeaulaitA/   |
+----------------------------------+---------------------------------+
|  Read Cafe au Lait for Java News:  http://www.cafeaulait.org/      | 
|  Read Cafe con Leche for XML News: http://www.ibiblio.org/xml/     |
+----------------------------------+---------------------------------+