diff --git a/CHANGELOG.md b/CHANGELOG.md index e4fd31a8ba..30f709fb01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,37 @@ CHANGELOG ========= +Version 8.1.1 +============= + +Release date +------------ + +[ ] June 2019 + + +Contributors to this release +---------------------------- + +Jason Harrop + + +Notable Changes in Version 8.1.1 +--------------------------------- + +Bugfix: specify UTF-8 in MainDocumentPartFilterOutputStream + + +xlsx4j +------ + +Bugfix: Correct jcSML spreadsheetDrawing package name + +Support mc:alternateContent in Workbook part (ie instead of dropping it) + + + + Version 8.1.0 ============= diff --git a/docx4j-core/src/main/java/org/docx4j/jaxb/NamespacePrefixMappings.java b/docx4j-core/src/main/java/org/docx4j/jaxb/NamespacePrefixMappings.java index 6aeac29232..931d7c7590 100644 --- a/docx4j-core/src/main/java/org/docx4j/jaxb/NamespacePrefixMappings.java +++ b/docx4j-core/src/main/java/org/docx4j/jaxb/NamespacePrefixMappings.java @@ -471,7 +471,11 @@ public static String getPreferredPrefixStatic(String namespaceUri, String sugges if (namespaceUri.equals("http://schemas.microsoft.com/office/powerpoint/2016/6/main")) { return "p166"; } - + + if (namespaceUri.equals("http://schemas.microsoft.com/office/spreadsheetml/2010/11/main")) { + return "x15"; + } + return suggestion; } @@ -766,6 +770,10 @@ else if (prefix.equals("xs")) if (prefix.equals("p166")) return "http://schemas.microsoft.com/office/powerpoint/2016/6/main"; + if (prefix.equals("x15")) + return "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"; + + // Registered prefixes String result = namespaces.get(prefix); if (result==null) { diff --git a/docx4j-core/src/main/java/org/docx4j/openpackaging/parts/SpreadsheetML/WorkbookPart.java b/docx4j-core/src/main/java/org/docx4j/openpackaging/parts/SpreadsheetML/WorkbookPart.java index 6dee6cc5cf..f4a14ad46d 100644 --- a/docx4j-core/src/main/java/org/docx4j/openpackaging/parts/SpreadsheetML/WorkbookPart.java +++ b/docx4j-core/src/main/java/org/docx4j/openpackaging/parts/SpreadsheetML/WorkbookPart.java @@ -2,6 +2,7 @@ import java.util.List; +import org.docx4j.jaxb.McIgnorableNamespaceDeclarator; import org.docx4j.openpackaging.exceptions.Docx4JException; import org.docx4j.openpackaging.exceptions.InvalidFormatException; import org.docx4j.openpackaging.parts.Part; @@ -40,6 +41,19 @@ public void init() { } + @Override + protected void setMceIgnorable(McIgnorableNamespaceDeclarator namespacePrefixMapper) { + + namespacePrefixMapper.setMcIgnorable( + this.getJaxbElement().getIgnorable() ); + } + + @Override + public String getMceIgnorable() { + return this.getJaxbElement().getIgnorable(); + } + + public SharedStrings getSharedStrings() { return sharedStrings; } diff --git a/docx4j-core/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MainDocumentPartFilterOuputStream.java b/docx4j-core/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MainDocumentPartFilterOutputStream.java similarity index 100% rename from docx4j-core/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MainDocumentPartFilterOuputStream.java rename to docx4j-core/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MainDocumentPartFilterOutputStream.java diff --git a/docx4j-openxml-objects-sml/src/main/java/org/xlsx4j/sml/Workbook.java b/docx4j-openxml-objects-sml/src/main/java/org/xlsx4j/sml/Workbook.java index 9ecce25292..d8e4bffd50 100644 --- a/docx4j-openxml-objects-sml/src/main/java/org/xlsx4j/sml/Workbook.java +++ b/docx4j-openxml-objects-sml/src/main/java/org/xlsx4j/sml/Workbook.java @@ -29,6 +29,7 @@ import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; +import org.docx4j.mce.AlternateContent; import org.docx4j.sharedtypes.STConformanceClass; import org.jvnet.jaxb2_commons.ppp.Child; @@ -46,6 +47,7 @@ * <element name="fileVersion" type="{http://schemas.openxmlformats.org/spreadsheetml/2006/main}CT_FileVersion" minOccurs="0"/> * <element name="fileSharing" type="{http://schemas.openxmlformats.org/spreadsheetml/2006/main}CT_FileSharing" minOccurs="0"/> * <element name="workbookPr" type="{http://schemas.openxmlformats.org/spreadsheetml/2006/main}CT_WorkbookPr" minOccurs="0"/> + * <element ref="{http://schemas.openxmlformats.org/markup-compatibility/2006}AlternateContent"/> * <element name="workbookProtection" type="{http://schemas.openxmlformats.org/spreadsheetml/2006/main}CT_WorkbookProtection" minOccurs="0"/> * <element name="bookViews" type="{http://schemas.openxmlformats.org/spreadsheetml/2006/main}CT_BookViews" minOccurs="0"/> * <element name="sheets" type="{http://schemas.openxmlformats.org/spreadsheetml/2006/main}CT_Sheets"/> @@ -64,6 +66,7 @@ * <element name="extLst" type="{http://schemas.openxmlformats.org/spreadsheetml/2006/main}CT_ExtensionList" minOccurs="0"/> * </sequence> * <attribute name="conformance" type="{http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes}ST_ConformanceClass" /> + * <attribute ref="{http://schemas.openxmlformats.org/markup-compatibility/2006}Ignorable"/> * </restriction> * </complexContent> * </complexType> @@ -76,6 +79,7 @@ "fileVersion", "fileSharing", "workbookPr", + "alternateContent", "workbookProtection", "bookViews", "sheets", @@ -100,6 +104,8 @@ public class Workbook implements Child protected FileVersion fileVersion; protected CTFileSharing fileSharing; protected WorkbookPr workbookPr; + @XmlElement(name = "AlternateContent", namespace = "http://schemas.openxmlformats.org/markup-compatibility/2006", required = true) + protected AlternateContent alternateContent; protected CTWorkbookProtection workbookProtection; protected BookViews bookViews; @XmlElement(required = true) @@ -119,6 +125,8 @@ public class Workbook implements Child protected CTExtensionList extLst; @XmlAttribute(name = "conformance") protected STConformanceClass conformance; + @XmlAttribute(name = "Ignorable", namespace = "http://schemas.openxmlformats.org/markup-compatibility/2006") + protected String ignorable; @XmlTransient private Object parent; @@ -194,6 +202,30 @@ public void setWorkbookPr(WorkbookPr value) { this.workbookPr = value; } + /** + * Gets the value of the alternateContent property. + * + * @return + * possible object is + * {@link AlternateContent } + * + */ + public AlternateContent getAlternateContent() { + return alternateContent; + } + + /** + * Sets the value of the alternateContent property. + * + * @param value + * allowed object is + * {@link AlternateContent } + * + */ + public void setAlternateContent(AlternateContent value) { + this.alternateContent = value; + } + /** * Gets the value of the workbookProtection property. * @@ -607,6 +639,30 @@ public void setConformance(STConformanceClass value) { this.conformance = value; } + /** + * Gets the value of the ignorable property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIgnorable() { + return ignorable; + } + + /** + * Sets the value of the ignorable property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIgnorable(String value) { + this.ignorable = value; + } + /** * Gets the parent object in the object tree representing the unmarshalled xml document. * diff --git a/xsd/sml/sml_ECMA376_4ed_transitional.xsd b/xsd/sml/sml_ECMA376_4ed_transitional.xsd index 93d2fa65f4..4f44e85437 100644 --- a/xsd/sml/sml_ECMA376_4ed_transitional.xsd +++ b/xsd/sml/sml_ECMA376_4ed_transitional.xsd @@ -1,11 +1,12 @@ @@ -37,6 +38,10 @@ + + + @@ -4202,6 +4207,30 @@ + + + + + + + @@ -4224,6 +4253,7 @@ + diff --git a/xsd/sml/sml_root.xsd b/xsd/sml/sml_root.xsd index f37bbc7a43..8c4f0dd390 100644 --- a/xsd/sml/sml_root.xsd +++ b/xsd/sml/sml_root.xsd @@ -45,7 +45,10 @@ That's because there is a name collision in: org.xlsx4j.sml.CTCalculatedMember org.xlsx4j.sml.CTPCDKPI -You can use +You can use (2019) + + sh /bvols/\@Overflow/No_COW//java/jaxb-ri-2.2.11/bin/xjc.sh -classpath /bvols/\@Overflow/No_COW/java/parent-pointer-plugin-1.2.jar -Xparent-pointer sml_root.xsd -d tmp -no-header -target 2.0 + \Java\jaxb-ri-2.2.6\bin\xjc sml_root.xsd -d tmp -no-header -target 2.0 @@ -57,6 +60,7 @@ or better, you can use ppp 1.2, REVISION HISTORY +2019 06 24 - added mce to workbook 2013 01 20 - moved to ECMA 376 4ed; add parent pointer 2013 01 20 - added @xml:space in shared strings 2010 09 06 - First compiled and added to docx4j