<< Back to previous view

[DXML-10] Support for DOCTYPE when emitting XML Created: 14/Nov/12  Updated: 05/Jul/16

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Major
Reporter: Thomas Greve Kristensen Assignee: Ryan Senior
Resolution: Unresolved Votes: 2
Labels: None

Attachments: Text File DXML-10-Add-support-for-doctype-declarations.patch     XML File web.xml    
Patch: Code and Test

 Description   

Some consumers of XML files require an explicit DOCTYPE to accept an XML file. data.xml does not currently support the specification of doctypes when emitting XML. When XML is parsed, I believe DOCTYPEs are silently ignored, so there is no representation in the data model for them. The best design is possibly an :doctype option in clojure.data.xml/emit ?

I've attached a web.xml as example.



 Comments   
Comment by Christian Egli [ 04/Jul/16 9:15 AM ]

Patch that adds support for doctype declarations when emitting XML





[DXML-13] Support for preserving whitespace between tags Created: 10/Feb/13  Updated: 09/Jan/15

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Major
Reporter: Kevin Albrecht Assignee: Ryan Senior
Resolution: Unresolved Votes: 3
Labels: None

Attachments: Text File DXML-13.patch    

 Description   

XML parsers can support preserving white space nodes, but clojure.data.xml does not seem to support this functionality.

For example, the following should be able to return true (perhaps with an option to parse-str):

Desired Behavior
(= (clojure.data.xml/element :x {}
                             (clojure.data.xml/element :a {} "foo")
                             " "
                             (clojure.data.xml/element :a {} "bar"))
   (clojure.data.xml/parse-str
     (str "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
          "<x>"
          "<a>foo</a>"
          " "
          "<a>bar</a>"
          "</x>")))
;=> true

This is the current behavior:

Current Behavior
(= (clojure.data.xml/element :x {}
                             (clojure.data.xml/element :a {} "foo")
                             (clojure.data.xml/element :a {} "bar"))
   (clojure.data.xml/parse-str
     (str "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
          "<x>"
          "<a>foo</a>"
          " "
          "<a>bar</a>"
          "</x>")))
;=> true


 Comments   
Comment by Aron Nopanen [ 18/Aug/13 3:49 PM ]

Seconded.

The issue lies with the '.isWhiteSpace' check in this section of function pull-seq:

XMLStreamConstants/CHARACTERS
(if-let [text (and (not (.isWhiteSpace sreader))
(.getText sreader))]
(cons (event :characters nil nil text)
(pull-seq sreader))
(recur))

While the 'props' argument to parse/parse-str currently only holds XMLInputFactory options, perhaps a ':maintain-whitespace' option could be added that affects this behavior? It would be straightforward to pass the props into pull-seq to conditionally perform the .isWhiteSpace check.

Comment by Aron Nopanen [ 20/Aug/13 12:47 AM ]

I have attached a patch to support a :maintain-whitespace property to parse and parse-str. If set to 'true', whitespace-only nodes will not be stripped during the parsing process.

Comment by Ryan Senior [ 10/Nov/13 10:38 PM ]

Hi Aron,

Thanks for the patch. Have sent in a contributor agreement? I didn't see you name here: http://clojure.org/contributing. Submitting patches to Clojure contrib libraries requires this.

Comment by Jason Gilman [ 08/Apr/14 6:51 AM ]

I'm running into this problem as well. Can this be fixed without using the contributed patch?

Comment by Jan-Paul Bultmann [ 15/Dec/14 5:15 PM ]

Aron Nopanen, the author of the patch is now in the contributors list after signing the agreement.
Is it still applicable or does it have to be adapted due to its age?

Comment by Jan-Paul Bultmann [ 09/Jan/15 8:28 AM ]

It seems that this is already resolved in Herwig's implementation.

So resolving DXML-4 will resolve this issue as well.





[DXML-15] data.xml can't parse own output if there's a colon in an attribute name Created: 03/Apr/13  Updated: 03/Apr/13

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Major
Reporter: ben wolfson Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: None
Environment:

data.xml 0.0.7



 Description   

Observe:

> (x/emit-str (x/element :NC {"xmlns" "http://example.com" "xmlns:xsi" "http://www.w3.org/2001/XMLSchema-instance" "xsi:schemaLocation" "http://www.example.com/schema.xsd"} (x/element :Foo {} "bar")))
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><NC xsi:schemaLocation=\"http://www.example.com/schema.xsd\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://example.com\"><Foo>bar</Foo></NC>"
> (x/parse-str *1)
#clojure.data.xml.Element{:tag :NC, :attrs {:xsi/schemaLocation "http://www.example.com/schema.xsd"}, :content (#clojure.data.xml.Element{:tag :Foo, :attrs {}, :content ("bar")})}
a> (x/emit-str *1)
XMLStreamException Prefix cannot be null com.sun.xml.internal.stream.writers.XMLStreamWriterImpl.writeAttribute (XMLStreamWriterImpl.java:574)
app.services.external.experian.internal.test-data>

(a) the xmlns and xmlns:xsi attributes have disappeared. Not the point of this issue but worth pointing out.
(b) "xsi:schemaLocation" has become :xsi/schemaLocation
(c) emitting a string blows up.






[DXML-27] Element java.util.Date throws IllegalArgumentException Created: 15/Jun/15  Updated: 15/Jun/15

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Major
Reporter: Adam Neilson Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: bug
Environment:

Clojure version 1.7
data.xml 0.8
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)



 Description   

This seems very similar to DXML-14 but given the lib has been in the wild a while I would have expected this to have been reported already. Can't find a bug report though so submitted here for the record.

I ran this the first time and it seemed fine but all subsequent executions result in this error:

(emit-str (element :something {} #inst "2015-06-15T16:53:18.470-00:00"))
IllegalArgumentException No implementation of method: :gen-event of protocol: #'clojure.data.xml/EventGeneration found for class: java.util.Date  clojure.core/-cache-protocol-fn (core_deftype.clj:544)


 Comments   
Comment by Adam Neilson [ 15/Jun/15 12:18 PM ]

Actually clojure version is 1.6.0





[DXML-30] Generate inconsistent namespace prefixes for subtrees, randomly omit namespace URIs in non-prefixed elements Created: 20/Jan/16  Updated: 18/Jun/16

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Vlad Kozin Assignee: Ryan Senior
Resolution: Unresolved Votes: 1
Labels: bug


 Description   
Unable to find source-code formatter for language: clojure. Available languages are: javascript, sql, xhtml, actionscript, none, html, xml, java
(xml/indent-str (xml/parse-str "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
            <tradeDocument xmlns=\"http://www.fpml.org/FpML-5/confirmation\">
               <trade>Some trade</trade>
               <party>Party1</party>
               <party>Party2</party>
            </tradeDocument>"))

SAXParseException The prefix "b" for element "b:party" is not bound. com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse (AbstractSAXParser.java:1239)

To see clearly what's wrong:

Unable to find source-code formatter for language: clojure. Available languages are: javascript, sql, xhtml, actionscript, none, html, xml, java
(println (xml/emit-str (xml/parse-str "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
            <tradeDocument xmlns=\"http://www.fpml.org/FpML-5/confirmation\">
               <trade>Some trade</trade>
               <party>Party1</party>
               <party>Party2</party>
            </tradeDocument>")))

run through external formatter to see the problem

Unable to find source-code formatter for language: shell. Available languages are: javascript, sql, xhtml, actionscript, none, html, xml, java
$ pbpaste | xmllint --format - 
-:1: namespace error : Namespace prefix b on party is not defined
e xmlns:b="http://www.fpml.org/FpML-5/confirmation">Some trade</b:trade><b:party
                                                                               ^
-:1: namespace error : Namespace prefix b on party is not defined
l.org/FpML-5/confirmation">Some trade</b:trade><b:party>Party1</b:party><b:party
                                                                               ^
<?xml version="1.0" encoding="UTF-8"?>
<a:tradeDocument xmlns:a="http://www.fpml.org/FpML-5/confirmation" xmlns="http://www.fpml.org/FpML-5/confirmation">
  <b:trade xmlns:b="http://www.fpml.org/FpML-5/confirmation">Some trade</b:trade>
  <b:party>Party1</b:party>
  <b:party>Party2</b:party>
</a:tradeDocument>

Obvious problem here: no namespace URI is defined on <party> elements hence the error.

More general problem: input provided defines a default namespace so any non-prefixed tag is assumed to come from such namespace. I think a user can reasonably expect a roundtrip through parse/emit to not mess with that and preserve default namespace and therefore not introduce prefixes. Current behavior may not be wrong technically, but it is baffling and unexpected.






[DXML-32] data.xml fails when used with Java 9 Created: 27/May/16  Updated: 27/May/16

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Major
Reporter: Toby Crawley Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Java 9's module system (Jigsaw) appears to prevent loading of some of the XML classes. Java 9 isn't due to be released until March 2017, so there isn't a huge rush to fix this, but I wanted to make you aware. Unfortunately, I don't have enough knowledge of the module system to suggest the proper fix/workaround.

tcrawley@katahdin ~/w/c/data.xml> mvn test
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building data.xml 0.1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ data.xml ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:add-source (add-clojure-source-dirs) @ data.xml ---
[INFO] Source directory: /home/tcrawley/work/clojure/data.xml/src/main/clojure added.
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:add-resource (add-clojure-source-dirs) @ data.xml ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:add-test-source (add-clojure-test-source-dirs) @ data.xml ---
[INFO] Test Source directory: /home/tcrawley/work/clojure/data.xml/src/test/clojure added.
[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:add-test-resource (add-clojure-test-source-dirs) @ data.xml ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ data.xml ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/tcrawley/work/clojure/data.xml/src/main/resources
[INFO] Copying 13 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ data.xml ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- clojure-maven-plugin:1.3.13:compile (clojure-compile) @ data.xml ---
Compiling clojure.data.xml.name to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.node to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.jvm.name to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.jvm.emit to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.prxml to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.impl to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.tree to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.jvm.pprint to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.process to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.protocols to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.jvm.parse to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml to /tmp/classes8428993250598039353.dir
Compiling clojure.data.xml.event to /tmp/classes8428993250598039353.dir
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ data.xml ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 9 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ data.xml ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ data.xml ---
[INFO] 
[INFO] --- clojure-maven-plugin:1.3.13:test (clojure-test) @ data.xml ---
Exception in thread "main" java.lang.IllegalAccessException: class clojure.lang.Reflector cannot access class com.sun.xml.internal.stream.XMLInputFactoryImpl (in module java.xml) because module java.xml does not export com.sun.xml.internal.stream to unnamed module @1704f67f, compiling:(test_emit.clj:18)
	at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3387)
	at clojure.lang.Compiler$DefExpr.eval(Compiler.java:398)
	at clojure.lang.Compiler.eval(Compiler.java:6516)
	at clojure.lang.Compiler.load(Compiler.java:6952)
	at clojure.lang.RT.loadResourceScript(RT.java:359)
	at clojure.lang.RT.loadResourceScript(RT.java:350)
	at clojure.lang.RT.load(RT.java:429)
	at clojure.lang.RT.load(RT.java:400)
	at clojure.core$load$fn__4890.invoke(core.clj:5415)
	at clojure.core$load.doInvoke(core.clj:5414)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invoke(core.clj:5227)
	at clojure.core$load_lib.doInvoke(core.clj:5264)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invoke(core.clj:603)
	at clojure.core$load_libs.doInvoke(core.clj:5298)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invoke(core.clj:603)
	at clojure.core$require.doInvoke(core.clj:5381)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at user$eval1038.invoke(run-test9074553612640357429.clj:5)
	at clojure.lang.Compiler.eval(Compiler.java:6511)
	at clojure.lang.Compiler.load(Compiler.java:6952)
	at clojure.lang.Compiler.loadFile(Compiler.java:6912)
	at clojure.main$load_script.invoke(main.clj:283)
	at clojure.main$script_opt.invoke(main.clj:343)
	at clojure.main$main.doInvoke(main.clj:427)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.lang.Var.invoke(Var.java:415)
	at clojure.lang.AFn.applyToHelper(AFn.java:161)
	at clojure.lang.Var.applyTo(Var.java:532)
	at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalAccessException: class clojure.lang.Reflector cannot access class com.sun.xml.internal.stream.XMLInputFactoryImpl (in module java.xml) because module java.xml does not export com.sun.xml.internal.stream to unnamed module @1704f67f
	at jdk.internal.reflect.Reflection.throwIllegalAccessException(java.base@9-ea/Reflection.java:405)
	at jdk.internal.reflect.Reflection.throwIllegalAccessException(java.base@9-ea/Reflection.java:396)
	at jdk.internal.reflect.Reflection.ensureMemberAccess(java.base@9-ea/Reflection.java:98)
	at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(java.base@9-ea/AccessibleObject.java:355)
	at java.lang.reflect.AccessibleObject.checkAccess(java.base@9-ea/AccessibleObject.java:347)
	at java.lang.reflect.Method.invoke(java.base@9-ea/Method.java:525)
	at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
	at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
	at clojure.data.xml.jvm.parse$make_stream_reader.invoke(parse.clj:116)
	at clojure.data.xml$event_seq.invoke(xml.clj:57)
	at clojure.data.xml$parse.doInvoke(xml.clj:67)
	at clojure.lang.RestFn.invoke(RestFn.java:410)
	at clojure.core$comp$fn__4034.invoke(core.clj:2279)
	at clojure.lang.AFn.applyToHelper(AFn.java:161)
	at clojure.lang.RestFn.applyTo(RestFn.java:132)
	at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3382)
	... 31 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.133 s
[INFO] Finished at: 2016-05-27T17:48:41-04:00
[INFO] Final Memory: 13M/300M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.theoryinpractise:clojure-maven-plugin:1.3.13:test (clojure-test) on project data.xml: Clojure failed. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
tcrawley@katahdin ~/w/c/data.xml> java -version
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+119)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+119, mixed mode)





[DXML-33] No XML namespace attribute emitted for namespaced sibling elements Created: 18/Jun/16  Updated: 18/Jun/16

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Major
Reporter: David Bürgin Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Following namespaced sibling elements don't get an XML namespace attribute when emitting XML using data.xml.

(xml/declare-ns
  :example.a "http://example.org/a"
  :example.b "http://example.org/b")

(def example-element
  (xml/sexp-as-element
    [:example.a/outer
     [:example.b/inner-1]
     [:example.b/inner-2]]))

Emitting example-element with emit-str results in the following invalid XML (reformatted):

<?xml version="1.0" encoding="UTF-8"?>
<a:outer xmlns:a="http://example.org/a">
  <b:inner-1 xmlns:b="http://example.org/b"></b:inner-1>
  <b:inner-2></b:inner-2>
</a:outer>

This issue may be related to DXML-30.



 Comments   
Comment by David Bürgin [ 18/Jun/16 12:11 PM ]

The work-around I found is to declare the prefixes for all namespace URIs in the root element:

(def example-element
  (xml/sexp-as-element
    [:example.a/outer
     {:xmlns/ea "http://example.org/a"
      :xmlns/eb "http://example.org/b"}
     [:example.b/inner-1]
     [:example.b/inner-2]]))

Perhaps also to consider in this issue: sometimes redundant XML namespace attributes are emitted, when they could be pulled up into a parent element instead.

(xml/emit-str
  (xml/sexp-as-element
    [:example.a/outer
     [:example.b/inner-1
      [:example.c/innermost-1]]
     [:example.c/inner-2]]))
<?xml version="1.0" encoding="UTF-8"?>
<a:outer xmlns:a="http://example.org/a">
  <b:inner-1 xmlns:b="http://example.org/b">
    <c:innermost-1 xmlns:c="http://example.org/c"></c:innermost-1>
  </b:inner-1>
  <d:inner-2 xmlns:d="http://example.org/c"></d:inner-2>
</a:outer>

Though to be sure this output is valid, so perhaps this part works as designed.





[DXML-22] Adding hiccup generation function for elements Created: 24/Feb/14  Updated: 28/Mar/14

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Chris Zheng Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: None
Environment:

N/a



 Description   

This is for completeness really. See pull request https://github.com/clojure/data.xml/pull/10

I would like to:

  • generate an element using hiccup (already exists)
  • generate hiccup using an element (proposed)


 Comments   
Comment by Chris Zheng [ 28/Mar/14 7:22 AM ]

I'm hoping someone can at least give some feedback to this ticket.

Comment by Ryan Senior [ 28/Mar/14 7:53 AM ]

Hi Chris,

Thanks for the reminder on this. I'll have more time to dig in this weekend, but off the top of my head I think more will need to be done on this, both on implementation and on testing. I think what you have now won't work with comments or cdata. One way to flesh some of that out is to create round trip types of tests in src/test/clojure/clojure/data/xml/test_sexp.clj.





[DXML-25] Emit Empty Elements using EmptyElementTag Created: 09/Jul/14  Updated: 09/Jul/14

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Alexander Kiel Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: enhancement, patch
Environment:

Does not apply


Patch: Code and Test

 Description   

Currently data.xml emits empty elements (elements without content) using start and end tags. The XML spec also allows special empty tags like <foo/>.

I need to serialize XML using such special empty tags because a device, I want to communicate with, does require empty tags. The device is just not able to parse XML messages using start and end tags.

I created a branch on GitHub where I implemented empty tags in the emit function. I'm not familiar how to create a patch. So for now here is the link to the compare view.

As I wrote in my commit message we should discuss, whether a option to the emit function would be a better solution.






[DXML-29] ClojureScript support Created: 13/Nov/15  Updated: 13/Nov/15

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Artem Yarulin Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Parsing XML(and HTML) is very often task and currently it requires a lot of effort and use of different libraries and wrappers around JS libs.

We can dramatically simplify it if we migrate data.xml to ClojureScript.

I'm maintaining koh library which has proof-of-concept XML support for Node and Browsers https://github.com/artemyarulin/koh/blob/master/src/koh/xml.cljs

The general idea is that we can utilise DOMParser object in order to parse string to XML tree. It has a decent browser support https://developer.mozilla.org/en-US/docs/Web/API/DOMParser and has a NodeJS implementation which follows the same API https://github.com/jindw/xmldom

What do you think about this feature?
I can pretty much follow the same guidelines from http://dev.clojure.org/jira/browse/DZIP-5 and implement it in the same way

Thanks






[DXML-31] Parsed events cannot be emitted Created: 28/Mar/16  Updated: 28/Mar/16

Status: Open
Project: data.xml
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Trivial
Reporter: Hans Hübner Assignee: Ryan Senior
Resolution: Unresolved Votes: 0
Labels: None
Environment:

Clojure 1.7



 Description   

Events parsed with clojure.data.xml/source-seq cannot be serialized with clojure.data.xml/emit-event because the former puts characters parsed from XML elements into the `:characters` key of the events returned, but the latter expects them to be under the `:chars` key. I would propose that emit-event is changed so that it accepts both `:chars` and `:characters` as key for characters to be serialized, as that will provide the required backwards compatiblity.






Generated at Sat Jul 30 14:01:15 CDT 2016 using JIRA 4.4#649-r158309.