[ 
https://issues.apache.org/jira/browse/ODFTOOLKIT-400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nimarukan updated ODFTOOLKIT-400:
---------------------------------
    Attachment: 400-part3-main-OdfFileDom_initXmlDecl.patch
                400-part2-test-OdfFileDom_xmlDeclTest.patch
                400-part1-pom_xml-FromJava1_5To1_6ForStAX.patch

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)

Reply via email to