Author: fanningpj
Date: Sun Aug 28 12:01:53 2022
New Revision: 1903728

URL: http://svn.apache.org/viewvc?rev=1903728&view=rev
Log:
do not rely on xml namespace prefixes - use the URIs

Modified:
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/POIXMLTypeLoader.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackage.java

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/POIXMLTypeLoader.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/POIXMLTypeLoader.java?rev=1903728&r1=1903727&r2=1903728&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/POIXMLTypeLoader.java 
(original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/ooxml/POIXMLTypeLoader.java 
Sun Aug 28 12:01:53 2022
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.poi.openxml4j.opc.PackageNamespaces;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.xmlbeans.XmlOptions;
 
 public class POIXMLTypeLoader {
@@ -61,7 +62,7 @@ public class POIXMLTypeLoader {
         
map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships";, 
"r");
         
map.put("http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes";, 
"vt");
         map.put("http://schemas.openxmlformats.org/presentationml/2006/main";, 
"p");
-        
map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main";, "w");
+        map.put(XWPFDocument.NS_OOXML_WP_MAIN, "w");
         map.put("http://schemas.microsoft.com/office/word/2006/wordml";, "wne");
         map.put(MS_OFFICE_URN, "o");
         map.put(MS_EXCEL_URN, "x");

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java?rev=1903728&r1=1903727&r2=1903728&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
 Sun Aug 28 12:01:53 2022
@@ -101,6 +101,7 @@ import org.openxmlformats.schemas.wordpr
  */
 @SuppressWarnings("unused")
 public class XWPFDocument extends POIXMLDocument implements Document, IBody {
+    public static final String NS_OOXML_WP_MAIN = 
"http://schemas.openxmlformats.org/wordprocessingml/2006/main";;
     private static final Logger LOG = LogManager.getLogger(XWPFDocument.class);
 
     protected List<XWPFFooter> footers = new ArrayList<>();

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java?rev=1903728&r1=1903727&r2=1903728&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java 
(original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java 
Sun Aug 28 12:01:53 2022
@@ -63,6 +63,7 @@ import org.openxmlformats.schemas.office
 import org.openxmlformats.schemas.officeDocument.x2006.sharedTypes.STOnOff1;
 import 
org.openxmlformats.schemas.officeDocument.x2006.sharedTypes.STVerticalAlignRun;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
+import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 import org.xml.sax.InputSource;
@@ -108,7 +109,7 @@ public class XWPFRun implements ISDTCont
         pictTextObjs.addAll(Arrays.asList(r.getPictArray()));
         pictTextObjs.addAll(Arrays.asList(r.getDrawingArray()));
         for (XmlObject o : pictTextObjs) {
-            XmlObject[] ts = o.selectPath("declare namespace 
w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' .//w:t");
+            XmlObject[] ts = o.selectPath("declare namespace w='" + 
XWPFDocument.NS_OOXML_WP_MAIN + "' .//w:t");
             for (XmlObject t : ts) {
                 NodeList kids = t.getDomNode().getChildNodes();
                 for (int n = 0; n < kids.getLength(); n++) {
@@ -1351,12 +1352,15 @@ public class XWPFRun implements ISDTCont
             while (c.toNextSelection()) {
                 XmlObject o = c.getObject();
                 if (o instanceof CTRubyContent) {
-                    String tagName = o.getDomNode().getNodeName();
-                    if ("w:rt".equals(tagName)) {
-                        inRT = true;
-                    } else if ("w:rubyBase".equals(tagName)) {
-                        inRT = false;
-                        inBase = true;
+                    final Node node = o.getDomNode();
+                    if 
(XWPFDocument.NS_OOXML_WP_MAIN.equals(node.getNamespaceURI())) {
+                        final String tagName = node.getLocalName();
+                        if ("rt".equals(tagName)) {
+                            inRT = true;
+                        } else if ("rubyBase".equals(tagName)) {
+                            inRT = false;
+                            inBase = true;
+                        }
                     }
                 } else {
                     if (extractPhonetic && inRT) {
@@ -1372,11 +1376,11 @@ public class XWPFRun implements ISDTCont
     private void _getText(XmlObject o, StringBuilder text) {
 
         if (o instanceof CTText) {
-            String tagName = o.getDomNode().getNodeName();
+            final Node node = o.getDomNode();
             // Field Codes (w:instrText, defined in spec sec. 17.16.23)
             //  come up as instances of CTText, but we don't want them
             //  in the normal text output
-            if (!"w:instrText".equals(tagName)) {
+            if (!("instrText".equals(node.getLocalName()) && 
XWPFDocument.NS_OOXML_WP_MAIN.equals(node.getNamespaceURI()))) {
                 text.append(((CTText) o).getStringValue());
             }
         }
@@ -1405,15 +1409,17 @@ public class XWPFRun implements ISDTCont
             //  definitions around line 5642 of the XSDs
             // This bit works around it, and replicates the above
             //  rules for that case
-            String tagName = o.getDomNode().getNodeName();
-            if ("w:tab".equals(tagName) || "tab".equals(tagName)) {
-                text.append('\t');
-            }
-            if ("w:br".equals(tagName) || "br".equals(tagName)) {
-                text.append('\n');
-            }
-            if ("w:cr".equals(tagName) || "cr".equals(tagName)) {
-                text.append('\n');
+            final Node node = o.getDomNode();
+            if (XWPFDocument.NS_OOXML_WP_MAIN.equals(node.getNamespaceURI())) {
+                switch (node.getLocalName()) {
+                    case "tab":
+                        text.append('\t');
+                        break;
+                    case "br":
+                    case "cr":
+                        text.append('\n');
+                        break;
+                }
             }
         }
         if (o instanceof CTFtnEdnRef) {

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java?rev=1903728&r1=1903727&r2=1903728&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFSignatureLine.java
 Sun Aug 28 12:01:53 2022
@@ -29,8 +29,9 @@ import org.apache.poi.poifs.crypt.dsig.S
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPicture;
 
+import static org.apache.poi.xwpf.usermodel.XWPFDocument.NS_OOXML_WP_MAIN;
+
 public class XWPFSignatureLine extends SignatureLine {
-    static final String NS_OOXML_WP_MAIN = 
"http://schemas.openxmlformats.org/wordprocessingml/2006/main";;
     private static final String MS_VML_URN = "urn:schemas-microsoft-com:vml";
 
     private CTSignatureLine line;

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackage.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackage.java?rev=1903728&r1=1903727&r2=1903728&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackage.java 
(original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackage.java 
Sun Aug 28 12:01:53 2022
@@ -22,6 +22,7 @@ import static org.apache.poi.openxml4j.O
 import static 
org.apache.poi.openxml4j.OpenXML4JTestDataSamples.getSampleFileName;
 import static 
org.apache.poi.openxml4j.OpenXML4JTestDataSamples.openSampleStream;
 import static org.apache.poi.openxml4j.opc.PackagingURIHelper.createPartName;
+import static org.apache.poi.xwpf.usermodel.XWPFDocument.NS_OOXML_WP_MAIN;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -100,7 +101,6 @@ import org.xml.sax.SAXParseException;
 
 public final class TestPackage {
     private static final Logger LOG = LogManager.getLogger(TestPackage.class);
-    private static final String NS_OOXML_WP_MAIN = 
"http://schemas.openxmlformats.org/wordprocessingml/2006/main";;
     private static final String CONTENT_EXT_PROPS = 
"application/vnd.openxmlformats-officedocument.extended-properties+xml";
     private static final POIDataSamples xlsSamples = 
POIDataSamples.getSpreadSheetInstance();
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to