Hi Michael,

I just figured that out shortly after I sent the email. Just didn't get a chance to reply before you sent yours. Sorry about that. It always seems that I figure it out right after I hit the "send" button. Thanks for the references.

later,

Jake

At 10:32 PM 4/6/2006, you wrote:
>Hi Jacob,
>
><!ENTITY head SYSTEM "header.xml">
><!ENTITY foot SYSTEM "footer.xml">
><!ENTITY torso SYSTEM "body.xml">
>
>are external entity declarations [1][2]. They are reported by
>XMLDTDHandler.externalEntityDecl() in XNI and DeclHandler.
>externalEntityDecl() in SAX.
>
>Thanks.
>
>[1] http://www.w3.org/TR/2004/REC-xml-20040204/#sec-entity-decl
>[2] http://www.w3.org/TR/2004/REC-xml-20040204/#sec-external-ent
>
>Michael Glavassevich
>XML Parser Development
>IBM Toronto Lab
>E-mail: [EMAIL PROTECTED]
>E-mail: [EMAIL PROTECTED]
>
>Jacob Kjome <[EMAIL PROTECTED]> wrote on 04/06/2006 11:07:57 PM:
>
>>
>> Thanks for the tip, Elliotte.  I'll remember it
>> when I use SAX.  I'm using XNI in this case.  I
>> suppose I could use SAX, but I'm really just
>> trying to migrate from Xerces1 to Xerces2 for
>> XMLC.  XMLC already depends directly on Xerces
>> because of the custom DOM's XMLC implements.  I
>> also wanted to change as little as possible.  I
>> may make more radical changes once I've proven
>> that I can make things work properly with minimal changes.
>>
>> In any case, I think I've got the internal subset
>> stuff working, except for one thing.  Take the following document...
>>
>> <?xml version="1.0" standalone="no"?>
>> <!DOCTYPE document SYSTEM "document.dtd" [
>>    <!ENTITY head SYSTEM "header.xml">
>>    <!ENTITY foot SYSTEM "footer.xml">
>>    <!ENTITY torso SYSTEM "body.xml">
>>    <!ENTITY erh "Elliotte Rusty Harold">
>> ]>
>> <document>
>>    &head; &torso; &foot;
>> </document>
>>
>> The only part of this that ends up in the
>> internal subset is the "erh" entity.  That is,
>> the internalEntityDecl() method gets called only
>> for the "erh" entity and is not notified at all
>> for the other entities.  Then, as I build up the
>> DOM, I create EntityReference's for "&head;
>> &torso; &foot;" in the <document>.  Upon
>> serialization, they end up being there in the
>> document, but since I was never notified to
>> create the corresponding <!ENTITY> elements in
>> the internal subset, re-parsing of the serialized
>> document fails.  So, how do I get notified about
>> these so I can get them into the DOM unparsed?  I
>> want the serialized DOM to look as identical as
>> possible to the above.  I must be missing something.
>>
>>
>> Jake
>>
>>
>> At 06:41 AM 4/4/2006, you wrote:
>>  >The trick is to look for the entity name "[dtd]". XOM accomplishes
>this
>>  >thusly using pure SAX:
>>  >
>>  >
>>  >     protected boolean inExternalSubset = false;
>>  >
>>  >     // We have a problem here. Xerces gets this right,
>>  >     // but Crimson and possibly other parsers don't properly
>>  >     // report these entities, or perhaps just not tag them
>>  >     // with [dtd] like they're supposed to.
>>  >     public void startEntity(String name) {
>>  >       if (name.equals("[dtd]")) inExternalSubset = true;
>>  >     }
>>  >
>>  >
>>  >     public void endEntity(String name) {
>>  >       if (name.equals("[dtd]")) inExternalSubset = false;
>>  >     }
>>  >
>>  >You can just reverse the logic if you prefer inInternalSubset.
>>  >
>>  >--
>>  >Elliotte Rusty Harold  [EMAIL PROTECTED]
>>  >XML in a Nutshell 3rd Edition Just Published!
>>  >http://www.cafeconleche.org/books/xian3/
>> >http://www.amazon.com/exec/obidos/ISBN=0596007647/cafeaulaitA/ref=nosim
>>  >
>>  >---------------------------------------------------------------------
>>  >To unsubscribe, e-mail: [EMAIL PROTECTED]
>>  >For additional commands, e-mail: [EMAIL PROTECTED]
>>  >
>>  >
>>  >
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to