santiagopg    2002/05/31 10:43:35

  Modified:    java/src/org/apache/xalan/serialize SerializerToXML.java
  Log:
  Prevent an external DTD from being inlined when using the built-in
  identity transform.
  
  Revision  Changes    Path
  1.15      +14 -2     
xml-xalan/java/src/org/apache/xalan/serialize/SerializerToXML.java
  
  Index: SerializerToXML.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/serialize/SerializerToXML.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- SerializerToXML.java      22 Mar 2002 00:33:04 -0000      1.14
  +++ SerializerToXML.java      31 May 2002 17:43:35 -0000      1.15
  @@ -323,6 +323,9 @@
     /** Indicate whether running in Debug mode */
     private static final boolean DEBUG = false;
   
  +  /** This flag is set while receiving events from the external DTD */
  +  private boolean m_inExternalDTD = false;
  +
     /**
      * Default constructor.
      */
  @@ -745,7 +748,6 @@
     public void startDTD(String name, String publicId, String systemId)
             throws org.xml.sax.SAXException
     {
  -
       m_doctypeSystem = systemId;
       m_doctypePublic = publicId;
   
  @@ -1873,6 +1875,8 @@
      */
     public void startEntity(String name) throws org.xml.sax.SAXException
     {
  +    if (name.equals("[dtd]")) 
  +      m_inExternalDTD = true;
       m_inEntityRef = true;
     }
   
  @@ -1885,6 +1889,8 @@
      */
     public void endEntity(String name) throws org.xml.sax.SAXException
     {
  +    if (name.equals("[dtd]")) 
  +      m_inExternalDTD = false;
       m_inEntityRef = false;
     }
   
  @@ -1897,7 +1903,6 @@
      */
     public void entityReference(String name) throws org.xml.sax.SAXException
     {
  -
       writeParentTagEnd();
   
       if (shouldIndent())
  @@ -1934,6 +1939,9 @@
      */
     public void elementDecl(String name, String model) throws SAXException
     {
  +    // Do not inline external DTD
  +    if (m_inExternalDTD) return; 
  +    
       try
       {
         final Writer writer = m_writer;
  @@ -1984,6 +1992,8 @@
             String eName, String aName, String type, String valueDefault, 
String value)
               throws SAXException
     {
  +    // Do not inline external DTD
  +    if (m_inExternalDTD) return; 
   
       try
       {
  @@ -2047,6 +2057,8 @@
     public void internalEntityDecl(String name, String value)
             throws SAXException
     {
  +    // Do not inline external DTD
  +    if (m_inExternalDTD) return; 
   
       try
       {
  
  
  

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

Reply via email to