aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2021-02-15 21:05:57 +0000
committerPJ Fanning <fanningpj@apache.org>2021-02-15 21:05:57 +0000
commit0ce6ceb3ea48a1e89ad164652097f6453e196186 (patch)
treeb7f2d812f3116a9fbd19da3f08bba8117c9a6f09
parent37d2d474dc7abbd8b51d8d1004c471976f9382d8 (diff)
downloadpoi-0ce6ceb3ea48a1e89ad164652097f6453e196186.tar.gz
poi-0ce6ceb3ea48a1e89ad164652097f6453e196186.zip
add method to test for strict ooxml format
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886545 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java10
-rw-r--r--src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java14
2 files changed, 24 insertions, 0 deletions
diff --git a/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java b/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java
index 203d5c18f2..ffd764918b 100644
--- a/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java
+++ b/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java
@@ -1665,6 +1665,16 @@ public abstract class OPCPackage implements RelationshipSource, Closeable {
}
/**
+ * @return true if the package is in Strict OOXML format
+ * @since POI 5.0.1
+ */
+ public boolean isStrictOoxmlFormat() {
+ PackageRelationshipCollection coreDocRelationships = getRelationshipsByType(
+ PackageRelationshipTypes.STRICT_CORE_DOCUMENT);
+ return coreDocRelationships.size() > 0;
+ }
+
+ /**
* Has close been called already?
*/
public abstract boolean isClosed();
diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
index 07e9a17d21..0d8b8360c8 100644
--- a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
+++ b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
@@ -103,6 +103,20 @@ public final class TestPackage {
private static final String CONTENT_EXT_PROPS = "application/vnd.openxmlformats-officedocument.extended-properties+xml";
private static final POIDataSamples xlsSamples = POIDataSamples.getSpreadSheetInstance();
+ @Test
+ void isStrictOoxmlFormat() throws IOException, InvalidFormatException {
+ try (OPCPackage p = OPCPackage.open(getSampleFileName("TestPackageCommon.docx"), PackageAccess.READ)) {
+ assertFalse(p.isStrictOoxmlFormat());
+ }
+ try (OPCPackage p = OPCPackage.open(xlsSamples.getFile("sample.xlsx"), PackageAccess.READ)) {
+ assertFalse(p.isStrictOoxmlFormat());
+ }
+ try (OPCPackage p = OPCPackage.open(xlsSamples.getFile("sample.strict.xlsx"), PackageAccess.READ)) {
+ assertTrue(p.isStrictOoxmlFormat());
+ }
+ }
+
+
/**
* Test that just opening and closing the file doesn't alter the document.
*/