You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2019/03/14 04:49:21 UTC

svn commit: r1855483 - in /xmlbeans/trunk: src/store/org/apache/xmlbeans/impl/store/Locale.java test/src/xmlobject/xmlloader/detailed/ParseTest.java

Author: fanningpj
Date: Thu Mar 14 04:49:20 2019
New Revision: 1855483

URL: http://svn.apache.org/viewvc?rev=1855483&view=rev
Log:
[XMLBEANS-538] fix issue with parsing DOM with DTD

Modified:
    xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java
    xmlbeans/trunk/test/src/xmlobject/xmlloader/detailed/ParseTest.java

Modified: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java?rev=1855483&r1=1855482&r2=1855483&view=diff
==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java (original)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Locale.java Thu Mar 14 04:49:20 2019
@@ -1462,6 +1462,13 @@ public final class Locale
         case Node.DOCUMENT_TYPE_NODE:
         case Node.ENTITY_NODE:
         case Node.NOTATION_NODE:
+            {
+                Node next = n.getNextSibling();
+                if (next != null) {
+                    loadNode(next, context);
+                }
+                break;
+            }
         case Node.ATTRIBUTE_NODE:
             {
                 throw new RuntimeException("Unexpected node");

Modified: xmlbeans/trunk/test/src/xmlobject/xmlloader/detailed/ParseTest.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlobject/xmlloader/detailed/ParseTest.java?rev=1855483&r1=1855482&r2=1855483&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlobject/xmlloader/detailed/ParseTest.java (original)
+++ xmlbeans/trunk/test/src/xmlobject/xmlloader/detailed/ParseTest.java Thu Mar 14 04:49:20 2019
@@ -19,12 +19,18 @@ import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlOptions;
 import org.junit.Test;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
 import xmlcursor.common.BasicCursorTestCase;
 
 import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.StringReader;
 import java.util.Vector;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 public class ParseTest extends BasicCursorTestCase {
     private XmlOptions m_map = new XmlOptions();
@@ -58,5 +64,17 @@ public class ParseTest extends BasicCurs
         m_map.setErrorListener(vErrors);
         XmlObject.Factory.parse("<foo>text<foo>", m_map);  // improper end tag
     }
+
+    @Test
+    public void testParsingDOMWithDTD() throws Exception {
+        final String svgDocumentString = "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n" +
+                "\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n" +
+                "<svg />";
+        assertNotNull(XmlObject.Factory.parse(svgDocumentString));
+        final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+        final DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
+        final Document parse = documentBuilder.parse(new InputSource(new StringReader(svgDocumentString)));
+        assertNotNull(XmlObject.Factory.parse(parse));
+    }
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org