[
https://issues.apache.org/jira/browse/ODFTOOLKIT-400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14679151#comment-14679151
]
Nimarukan edited comment on ODFTOOLKIT-400 at 8/9/15 1:55 PM:
--------------------------------------------------------------
Diagnosis: No XML declaration fields of the DOM document are currently set
because the file is parsed with a SAX parser, and SAX does not reveal the XML
declaration to SAX handlers (org.xml.sax).
Approach: Parse the beginning bytes with a StAX parser (javax.xml.stream),
which is included in Java 6 and later.
Attached are odfdom patches for
- the pom.xml java version change,
- the test case, and
- the fix.
Details
- POM: The source and target JDK versions are increased from JDK 1.5 to JDK 1.6
so that StAX (javax.xml.stream) will be available. The test case also uses
java.nio.Charset from Java 6.
- Test: The test case includes tests for the xml declaration fields:
xmlVersion, xmlEncoding, and xmlstandalone.
- Fix: Change OdfFileDom.initialize() to use a StAX parser to read the XML
declaration, and initialize the XML declaration fields.
(The XML declaration is parsed during initialization and not later because
after the DOM is created, bytes are generated from the DOM, not the original
file. For low overhead, the same internal-document byte array is used for both
the StAX parser and SAX parser input streams. The StAX parser is closed
immediately after the XML declaration fields are extracted and it does not read
the rest of the stream.)
patch -p 1 -i 400-partN-xxx.patch
(note: OdfFileDom.java currently has a mix of '\n' and '\r\n' line terminators.)
was (Author: nimarukan):
Diagnosis: No XML declaration fields of the DOM document are currently set
because the file is parsed with a SAX parser, and SAX does not reveal the XML
declaration to SAX handlers (org.xml.sax).
Approach: Parse the beginning bytes with a StAX parser (javax.xml.stream),
which is included in Java 6 and later.
Attached are odfdom patches for
- the pom.xml java version change,
- the test case, and
- the fix.
- POM: The source and target JDK versions are increased from JDK 1.5 to JDK 1.6
so that StAX (javax.xml.stream) will be available. The test case also uses
java.nio.Charset from Java 6.
- Test: The test case includes tests for the xml declaration fields:
xmlVersion, xmlEncoding, and xmlstandalone.
- Fix: Change OdfFileDom.initialize() to use a StAX parser to read the XML
declaration, and initialize the XML declaration fields.
(The XML declaration is parsed during initialization and not later because
after the DOM is created, bytes are generated from the DOM, not the original
file. For low overhead, the same internal-document byte array is used for both
the StAX parser and SAX parser input streams. The StAX parser is closed
immediately after the XML declaration fields are extracted and it does not read
the rest of the stream.)
patch -p 1 -i 400-partN-xxx.patch
(note: OdfFileDom.java currently has a mix of '\n' and '\r\n' line terminators.)
> Unable to obtain the charset encoding of an odt document
> --------------------------------------------------------
>
> Key: ODFTOOLKIT-400
> URL: https://issues.apache.org/jira/browse/ODFTOOLKIT-400
> Project: ODF Toolkit
> Issue Type: Bug
> Components: odfdom
> Environment: linux - ubuntu 14.04
> Reporter: Joshua
> Attachments: 400-part1-pom_xml-FromJava1_5To1_6ForStAX.patch,
> 400-part2-test-OdfFileDom_xmlDeclTest.patch,
> 400-part3-main-OdfFileDom_initXmlDecl.patch, testOdt.odt
>
>
> Im trying to convert odt to html. In doing the conversion Im trying to obtain
> the charset encoding of the odt document so that I can set the appropriate
> value on the html end. However I always get a 'null' value when trying to
> read the charset.
> {code}
> OdfTextDocument odfDoc = OdfTextDocument.loadDocument(is)
> System.out.println(odfDoc.getContentDom.getXmlEncoding)
> {code}
> For the test document attached I am expecting to get UTF-8 but always see
> 'null'. Happens on other docs as well,
> Is there a better way to obtain the charset encoding of an odt document?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)