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]