Hey Michael.  

I'll look into that for sure as like you said it probably allows me to
apply the entities more easily. 

But I don't think that allows me to apply the DOCTYPE only to xincluded
documents only when the the xinclude parse type is xml.  Thats the real
problem I am facing.

Imagine a document like:
<book>
  <xi:include 
      xmlns:xi="http://www.w3.org/2001/XInclude"; 
      href="Book_Info.xml" />
  <programlisting>
    <xi:include 
        xmlns:xi="http://www.w3.org/2001/XInclude"; 
        href="exampl.xml" 
        parse="text"/>
  </programlisting>
</book>

The problem is that in the first XInclude I need the entities injected;
in the second they should not.

On Tue, 2010-08-17 at 15:29 -0400, Michael Glavassevich wrote:
> Hi Steve,
> 
> Have you tried EntityResolver2.getExternalSubset() [1]? This was
> designed for injecting a DTD external subset into an XML document
> which doesn't have one. It should be more reliable than the method
> you're using.
> 
> Thanks.
> 
> [1]
> http://xerces.apache.org/xerces2-j/javadocs/api/org/xml/sax/ext/EntityResolver2.html#getExternalSubset%28java.lang.String,%20java.lang.String%29
> 
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: mrgla...@ca.ibm.com
> E-mail: mrgla...@apache.org
> 
> Steve Ebersole <steven.ebers...@gmail.com> wrote on 08/17/2010
> 12:55:13 PM:
> 
> > I have a requirement to inject custom DOCTYPE entity declarations
> into
> > xincluded documents.  Currently I am using an
> org.xml.sax.EntityResolver
> > to accomplish this.  When my EntityResolver[1] understands a request
> it
> > creates and returns a special InputSource[2].  This however gives me
> > problems with an xinclude that is an xml file but that has specified
> > parse="text".  The EntityResolver has no idea about that fact and so
> it
> > does these injections anyway (these are docbook documentation
> examples,
> > the end result being that the "injected" doctype ends up in the
> examples
> > as well).
> > 
> > Searching around led me to find
> > org.apache.xerces.xinclude.XIncludeHandler which *seems* like it
> would
> > be a better place to tie in this processing.  So my first question
> is
> > whether that is the case; am I barking up the right tree here?
> > 
> > Assuming so, I am having difficulty understanding how to tel Xerces
> to
> > use my XIncludeHander instead of its built-in one.  All the examples
> I
> > have seen use a configuraton to completely set up the pipeline
> > (org.apache.xerces.parsers.XIncludeAwareParserConfiguration).
>  However
> > all the examples I saw do this from the command line by specifying
> -D to
> > name this configuration.  I do not have that option (easily).  So is
> > there another way to define the pipeline to use?  Ideally, is there
> a
> > way to just alter one part of the pipeline?  I have seen the
> > "http://apache.org/xml/properties/internal/xinclude-handler";
> setting,
> > but I have no idea how to leverage it.
> > 
> > Thanks.
> > 
> > [1]
> > http://github.com/sebersole/jdocbook-core/blob/master/src/main/java/
> > org/jboss/jdocbook/xslt/XIncludeEntityResolver.java
> > [2]
> > http://github.com/sebersole/jdocbook-core/blob/master/src/main/java/
> > org/jboss/jdocbook/util/FileUtils.java
> > 
> > 
> > -- 
> > Steve Ebersole <st...@hibernate.org>
> > http://hibernate.org
> > 
> > 
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org
> > For additional commands, e-mail: j-users-h...@xerces.apache.org
> 
> 

-- 
Steve Ebersole <st...@hibernate.org>
http://hibernate.org


---------------------------------------------------------------------
To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org
For additional commands, e-mail: j-users-h...@xerces.apache.org

Reply via email to