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]