summaryrefslogtreecommitdiff
path: root/gnu/packages/xml.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/xml.scm')
-rw-r--r--gnu/packages/xml.scm672
1 files changed, 645 insertions, 27 deletions
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index c516f3986f..cc5e19af27 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -1,9 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
@@ -12,8 +12,8 @@
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
@@ -40,6 +40,10 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages java)
+ #:use-module (gnu packages gnuzilla)
+ #:use-module (gnu packages haskell)
+ #:use-module (gnu packages haskell-check)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages python)
@@ -53,6 +57,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
+ #:use-module (guix build-system haskell)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config))
@@ -79,21 +84,21 @@ things the parser might find in the XML document (like start tags).")
(define-public libebml
(package
(name "libebml")
- (version "1.3.4")
+ (version "1.3.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://dl.matroska.org/downloads/"
- name "/" name "-" version ".tar.bz2"))
+ name "/" name "-" version ".tar.xz"))
(sha256
(base32
- "11zka6z9ncywyjr1gfm5cnii33ln7y3w6s86kiacchip2g7kw3f5"))))
+ "005a0ipqnfbsq47zrc61zszi439jw32q5xd6dc1jyb3lc0zl266q"))))
(build-system gnu-build-system)
- (home-page "https://www.matroska.org")
- (synopsis "C++ libary to parse EBML files")
- (description "libebml is a C++ library to read and write EBML (Extensible
-Binary Meta Language) files. EBML was designed to be a simplified binary
-extension of XML for the purpose of storing and manipulating data in a
+ (home-page "https://matroska-org.github.io/libebml/")
+ (synopsis "C++ library to parse EBML files")
+ (description "libebml is a C++ library to read and write @dfn{EBML}
+(Extensible Binary Meta Language) files. EBML was designed to be a simplified
+binary extension of XML for the purpose of storing and manipulating data in a
hierarchical form with variable field lengths.")
(license license:lgpl2.1)))
@@ -128,7 +133,7 @@ project (but it is usable outside of the Gnome platform).")
(license license:x11)))
(define-public python-libxml2
- (package (inherit libxml2)
+ (package/inherit libxml2
(name "python-libxml2")
(build-system python-build-system)
(arguments
@@ -499,7 +504,7 @@ that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
(define-public perl-xml-sax
(package
(name "perl-xml-sax")
- (version "0.99")
+ (version "1.00")
(source
(origin
(method url-fetch)
@@ -507,7 +512,7 @@ that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
"XML-SAX-" version ".tar.gz"))
(sha256
(base32
- "115dypb50w1l94y3iwihv5nkixbsv1cxiqkd93y4rk5n6s74pc1j"))))
+ "1qra9k3wszjxvsgbragl55z3qba4nri0ipmjaxfib4l6xxj6bsj5"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
@@ -906,14 +911,14 @@ XSL-T processor. It also performs any necessary post-processing.")
(define-public xmlsec
(package
(name "xmlsec")
- (version "1.2.20")
+ (version "1.2.25")
(source (origin
(method url-fetch)
(uri (string-append "https://www.aleksey.com/xmlsec/download/"
name "1-" version ".tar.gz"))
(sha256
(base32
- "01bkbv2y3x8d1sf4dcln1x3y2jyj391s3208d9a2ndhglly5j89j"))))
+ "1lpwj8dxwhha54sby0v5axjk79h56jnhjjiwiasbbk15vwzahz4n"))))
(build-system gnu-build-system)
(propagated-inputs ; according to xmlsec1.pc
`(("libxml2" ,libxml2)
@@ -924,7 +929,7 @@ XSL-T processor. It also performs any necessary post-processing.")
("libltdl" ,libltdl)))
(native-inputs
`(("pkg-config" ,pkg-config)))
- (home-page "http://www.libexpat.org/")
+ (home-page "https://www.aleksey.com/xmlsec/")
(synopsis "XML Security Library")
(description
"The XML Security Library is a C library based on Libxml2. It
@@ -934,21 +939,40 @@ Libxml2).")
(license (license:x11-style "file://COPYING"
"See 'COPYING' in the distribution."))))
+(define-public xmlsec-nss
+ (package
+ (inherit xmlsec)
+ (name "xmlsec-nss")
+ (inputs
+ `(("nss" ,nss)
+ ("libltdl" ,libltdl)))
+ (synopsis "XML Security Library (using NSS instead of GnuTLS)")))
+
(define-public minixml
(package
(name "minixml")
- (version "2.10")
+ (version "2.11")
(source (origin
- (method url-fetch)
+ (method url-fetch/tarbomb)
(uri (string-append "https://github.com/michaelrsweet/mxml/"
- "releases/download/release-" version
+ "releases/download/v" version
"/mxml-" version ".tar.gz"))
(sha256
(base32
- "14bqfq4lymhb31snz6wsvzhlavy0573v1nki1lbngiyxcj5zazr6"))))
+ "13xsw8vvkxd10vca42ccdyl9rs64lcvhbfz57aknpl3xcfn8mxma"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f)) ;no "check" target
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-permissions
+ ;; FIXME: url-fetch/tarbomb resets all permissions to 555/444.
+ (lambda _
+ (for-each
+ (lambda (file)
+ (chmod file #o644))
+ (find-files "doc" "\\."))
+ #t)))
+ #:tests? #f)) ; tests are run during build
(home-page "https://michaelrsweet.github.io/mxml")
(synopsis "Small XML parsing library")
(description
@@ -1085,7 +1109,7 @@ XSLT and EXSLT.")
(define-public html-xml-utils
(package
(name "html-xml-utils")
- (version "7.4")
+ (version "7.5")
(source
(origin
(method url-fetch)
@@ -1094,7 +1118,7 @@ XSLT and EXSLT.")
version ".tar.gz"))
(sha256
(base32
- "04pgrahsfawnzd9pilvirs05pfdgsd7qwvw4dvkb42rgybhw6h95"))))
+ "0cbmqa9c4bc4ikk7vmgd65ixh2pl9mr336c4his3m8l7rgsjnh8n"))))
(build-system gnu-build-system)
(home-page "https://www.w3.org/Tools/HTML-XML-utils/")
(synopsis "Command line utilities to manipulate HTML and XML files")
@@ -1172,14 +1196,14 @@ files. It is designed to be fast and to handle large input files.")
(define-public python-defusedxml
(package
(name "python-defusedxml")
- (version "0.4.1")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "defusedxml" version))
(sha256
(base32
- "0y147zy3jqmk6ly7fbhqmzn1hf41xcb53f2vcc3m8x4ba5d1smfd"))))
+ "1x54n0h8hl92vvwyymx883fbqpqjwn2mc8fb383bcg3z9zwz5mr4"))))
(build-system python-build-system)
(home-page "https://bitbucket.org/tiran/defusedxml")
(synopsis "XML bomb protection for Python stdlib modules")
@@ -1459,3 +1483,597 @@ What it doesn't offer: full SAX support (it can export SAX, but only reads
XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
support.")
(license license:perl-license)))
+
+;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
+;; xml-apis.jar and xml-apis-1.4.01.jar.
+(define-public java-jaxp
+ (package
+ (name "java-jaxp")
+ (version "1.4.01")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/xerces/xml-commons/source/"
+ "xml-commons-external-" version "-src.tar.gz"))
+ (sha256
+ (base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "jaxp.jar"
+ #:jdk ,icedtea-8
+ #:source-dir ".."
+ #:tests? #f)); no tests
+ (home-page "http://xerces.apache.org/xml-commons/")
+ (synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
+ (description "Jaxp from the Apache XML Commons project is used by
+the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
+
+@itemize
+@item Document Object Model (DOM)
+@item Simple API for XML (SAX)
+@item Java APIs for XML Processing (JAXP)
+@item Transformation API for XML (TrAX)
+@item Document Object Model (DOM) Load and Save
+@item JSR 206 Java API for XML Processing
+@end itemize")
+ (license (list license:asl2.0
+ license:w3c ;; Files under org.w3c
+ license:public-domain)))) ;; org.xml.sax
+
+(define-public java-apache-xml-commons-resolver
+ (package
+ (name "java-apache-xml-commons-resolver")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/xerces/xml-commons/"
+ "xml-commons-resolver-" version ".tar.gz"))
+ (sha256
+ (base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file (find-files "." ".*\\.(jar|zip)"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name (string-append "xml-resolver.jar")
+ #:tests? #f)); no tests
+ (inputs
+ `(("java-junit" ,java-junit)))
+ (home-page "http://xerces.apache.org/xml-commons/")
+ (synopsis "Catalog-based entity and URI resolution")
+ (description "The resolver class implements the full semantics of OASIS Technical
+Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
+2001 Committee Specification of OASIS XML Catalogs.
+
+It also includes a framework of classes designed to read catalog files
+in a number of formats:
+
+@itemize
+@item The plain-text flavor described by TR9401.
+@item The XCatalog XML format defined by John Cowan
+@item The XML Catalog format defined by the OASIS Entity Resolution
+ Technical Committee.
+@end itemize")
+ (license license:asl2.0)))
+
+;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
+;; This package is a bootstrap version without dependencies on dom4j and xom.
+(define java-jaxen-bootstrap
+ (package
+ (name "java-jaxen-bootstrap")
+ (version "1.1.6")
+ (source (origin
+ (method url-fetch)
+ ;; No release on github
+ (uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
+ version "/jaxen-" version "-sources.jar"))
+ (sha256
+ (base32
+ "18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "jaxen.jar"
+ #:source-dir "src"
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'remove-dom4j
+ (lambda _
+ (delete-file-recursively "src/org/jaxen/dom4j")
+ (delete-file-recursively "src/org/jaxen/xom")
+ #t)))))
+ (inputs
+ `(("java-jdom" ,java-jdom)))
+ (home-page "https://github.com/jaxen-xpath/jaxen")
+ (synopsis "XPath library")
+ (description "Jaxen is an XPath library written in Java. It is adaptable
+to many different object models, including DOM, XOM, dom4j, and JDOM. It is
+also possible to write adapters that treat non-XML trees such as compiled
+Java byte code or Java beans as XML, thus enabling you to query these trees
+with XPath too.")
+ (license license:bsd-3)))
+
+(define-public java-jaxen
+ (package
+ (inherit java-jaxen-bootstrap)
+ (name "java-jaxen")
+ (inputs
+ `(("java-jdom" ,java-jdom)
+ ("java-xom" ,java-xom)
+ ("java-dom4j" ,java-dom4j)))))
+
+(define-public java-xom
+ (package
+ (name "java-xom")
+ (version "127")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/elharo/xom/archive/XOM_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "04m69db1irqja12a9rfxrac8cbn9psqa1k136wh4ls4pxfsdr5wg"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file
+ (find-files "." "\\.jar$"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "xom.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-tagsoup-dep
+ (lambda _
+ ;; FIXME: Where is tagsoup source?
+ (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
+ #t)))))
+ (inputs
+ `(("java-jdom" ,java-jdom)
+ ("java-junit" ,java-junit)
+ ("java-classpathx-servletapi" ,java-classpathx-servletapi)
+ ("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
+ ("java-xerces" ,java-xerces)))
+ (home-page "https://xom.nu/")
+ (synopsis "XML Object Model")
+ (description "XOM is a new XML Object Model for processing XML with Java
+that strives for correctness and simplicity.")
+ ;; 2.1 only
+ (license license:lgpl2.1)))
+
+(define-public java-xsdlib
+ (package
+ (name "java-xsdlib")
+ (version "2013.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/com/sun/msv/"
+ "datatype/xsd/xsdlib/" version "/xsdlib-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:jar-name "xsdlib.jar"
+ #:jdk ,icedtea-8))
+ (inputs
+ `(("java-xerces" ,java-xerces)))
+ (home-page "http://central.maven.org/maven2/com/sun/msv/datatype/xsd/xsdlib/")
+ (synopsis "Sun Multi-Schema Validator")
+ (description "Xsdlib contains an implementation of sun.com.msv, an XML
+validator.")
+ (license license:bsd-2)))
+
+(define-public java-xpp3
+ (package
+ (name "java-xpp3")
+ (version "1.1.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.extreme.indiana.edu/dist/"
+ "java-repository/xpp3/distributions/xpp3-"
+ version "_src.tgz"))
+ (sha256
+ (base32
+ "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin ;; Delete bundled jar archives.
+ (for-each delete-file (find-files "." ".*\\.jar"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:build-target "jar"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install (install-jars "build")))))
+ (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
+ (synopsis "Streaming pull XML parser")
+ (description "Xml Pull Parser (in short XPP) is a streaming pull XML
+parser and should be used when there is a need to process quickly and
+efficiently all input elements (for example in SOAP processors). This
+package is a stable XmlPull parsing engine that is based on ideas from XPP
+and in particular XPP2 but completely revised and rewritten to take the best
+advantage of JIT JVMs.")
+ (license (license:non-copyleft "file://LICENSE.txt"))))
+
+(define-public java-xmlpull2
+ (package
+ (name "java-xmlpull2")
+ (version "2.1.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.extreme.indiana.edu/xgws/xsoap/"
+ "PullParser/PullParser" version ".tgz"))
+ (sha256
+ (base32
+ "1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin ;; Delete bundled jar archives.
+ (for-each delete-file (find-files "." ".*\\.jar"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:build-target "impl"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install (install-jars "build/lib")))))
+ (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
+ (synopsis "Streaming pull XML parser")
+ (description "Xml Pull Parser (in short XPP) is a streaming pull XML
+parser and should be used when there is a need to process quickly and
+efficiently all input elements (for example in SOAP processors). This
+package is in maintenance mode.")
+ (license (license:non-copyleft "file:///LICENSE.txt"))))
+
+(define-public java-dom4j
+ (package
+ (name "java-dom4j")
+ (version "2.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/dom4j/dom4j/archive/"
+ "version-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "101drpnw6agmcvsi1jrfi0kn97r7liazrh5jbrip9vx26axn2fx9"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin ;; Delete bundled jar archives.
+ (for-each delete-file (find-files "." ".*\\.jar"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "dom4j.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/main/java"
+ ;; FIXME: Requires xalan, but xalan depends on java-cup which has a
+ ;; dependency on itself through jflex.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-jaxen-sources
+ ;; java-jaxen-bootstrap is not enough. These files have a circular
+ ;; dependency and there is no subset of dom4j that would allow
+ ;; breaking the circle.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "jaxen-sources")
+ (with-directory-excursion "jaxen-sources"
+ (system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
+ (mkdir-p "src/main/java/org/jaxen/dom4j")
+ (copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
+ "src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
+ (copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
+ "src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
+ #t))
+ (add-before 'build 'fix-old-xpp2
+ (lambda _
+ ;; This package normally depends on xpp2 2.0, but version 2.1.10
+ ;; is the only version whose source code is published.
+ (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
+ (("public void resetStartTag")
+ "public boolean removeAttributeByRawName(String name) {\n
+ return false;\n
+}\n
+public boolean removeAttributeByName(String name, String name2) {\n
+ return false;\n
+}\n\npublic void resetStartTag")
+ (("Atttribute") "Attribute"))
+ #t)))))
+ (inputs
+ `(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
+ ("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
+ ("java-xmlpull2" ,java-xmlpull2)
+ ("java-xpp3" ,java-xpp3)
+ ("java-xsdlib" ,java-xsdlib)))
+ (native-inputs
+ `(("java-testng" ,java-testng)
+ ("java-xerces" ,java-xerces)))
+ (home-page "https://dom4j.github.io/")
+ (synopsis "Flexible XML framework for Java")
+ (description "Dom4j is a flexible XML framework for Java. DOM4J works
+with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
+low memory footprint.")
+ ;; some BSD-like 5-clause license
+ (license (license:non-copyleft "file://LICENSE"))))
+
+(define-public java-kxml2
+ (package
+ (name "java-kxml2")
+ (version "2.4.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/stefanhaustein/kxml2/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17kh04qf3vll1xx6sv06xlazw2hxa8qdmzyday9r6z2191jlj74w"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "kxml2.jar"
+ #:source-dir "src/main/java"
+ #:test-include (list "TestWb.java")
+ ;; Test failure: it was expected to get an XML entity but got the
+ ;; equivalent Unicode character instead.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes"))))))
+ (inputs
+ `(("java-xpp3" ,java-xpp3)))
+ (native-inputs
+ `(("java-junit" ,java-junit)))
+ (home-page "http://kxml.org")
+ (synopsis "XML pull parser")
+ (description "kXML is a small XML pull parser, specially designed for
+constrained environments such as Applets, Personal Java or devices compliant
+with the Mobile Information Device Profile (MIDP).")
+ (license license:expat)))
+
+(define-public java-stax
+ (package
+ (name "java-stax")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
+ version "/stax-" version "-sources.jar"))
+ (sha256
+ (base32
+ "04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "stax.jar"
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-utf8
+ (lambda _
+ ;; This file is ISO-8859-1 but java expects UTF-8.
+ ;; Remove special characters in comments.
+ (with-fluids ((%default-port-encoding "ISO-8859-1"))
+ (substitute* "src/com/wutka/dtd/Scanner.java"
+ (("//.*") "\n")))
+ #t)))))
+ (home-page "https://repo1.maven.org/maven2/stax/stax/")
+ (synopsis "Streaming API for XML")
+ (description "This package provides the reference implementation of the
+@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
+and from a Java application. It provides a standard pull parser interface.")
+ (license license:asl2.0)))
+
+(define-public java-jettison
+ (package
+ (name "java-jettison")
+ (version "1.3.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus/jettison/archive/"
+ "jettison-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0rdhfyxywvga5wiwasc04iqnxyixn3rd8wj01c9ymhvwc3h6dpqg"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "jettison.jar"
+ #:source-dir "src/main/java"
+ #:test-exclude (list "**/Abstract*.java"
+ ;; Abstract classes
+ "**/DOMTest.java"
+ "**/BadgerFishDOMTest.java"
+ "**/MappedDOMTest.java")))
+ (native-inputs
+ `(("java-junit" ,java-junit)))
+ (home-page "https://github.com/codehaus/jettison")
+ (synopsis "StAX implementation for JSON")
+ (description "Jettison is a Java library for converting XML to JSON and
+vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
+implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
+@code{Mapped} and @code{BadgerFish} conventions.")
+ (license license:asl2.0)))
+
+(define-public java-jdom2
+ (package
+ (name "java-jdom")
+ (version "2.0.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/hunterhacker/jdom/archive/JDOM-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0p8n7inqq2a25wk9ljinl3ixlx1x2la9qaman8ngd75xxjb02yc1"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:build-target "package"
+ #:tests? #f; tests are run as part of the build process
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (install-jars "build")))))
+ (home-page "http://jdom.org/")
+ (synopsis "Access, manipulate, and output XML data")
+ (description "Jdom is a Java-based solution for accessing, manipulating, and
+outputting XML data from Java code.")
+ (license license:bsd-4)))
+
+(define-public java-xstream
+ (package
+ (name "java-xstream")
+ (version "1.4.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/x-stream/xstream/archive/XSTREAM_"
+ (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+ ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "10zbkam05wirxipvgrjimdwsyqrwl4a0n7lhvxbsssqpv727469g"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "xstream.jar"
+ ;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system
+ #:tests? #f
+ #:jdk ,icedtea-8
+ #:source-dir "xstream/src/java"))
+ (inputs
+ `(("java-jdom" ,java-jdom)
+ ("java-jdom2" ,java-jdom2)
+ ("java-cglib" ,java-cglib)
+ ("java-joda-time" ,java-joda-time)
+ ("java-jettison" ,java-jettison)
+ ("java-xom" ,java-xom)
+ ("java-xpp3" ,java-xpp3)
+ ("java-dom4j" ,java-dom4j)
+ ("java-stax2-api" ,java-stax2-api)
+ ("java-woodstox-core" ,java-woodstox-core)
+ ("java-kxml2" ,java-kxml2)
+ ("java-stax" ,java-stax)))
+ (home-page "https://x-stream.github.io")
+ (synopsis "XML serialization library")
+ (description "XStream is a simple library to serialize Java objects to XML
+and back again.")
+ (license license:bsd-3)))
+
+(define-public ghc-hxt-charproperties
+ (package
+ (name "ghc-hxt-charproperties")
+ (version "9.2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "hxt-charproperties/hxt-charproperties-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1mml8wglvagqq891rchgli6r8rnkwrqhgsxfl6kb5403pzb18rp4"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/UweSchmidt/hxt")
+ (synopsis "Character properties and classes for XML and Unicode")
+ (description
+ "The modules provided by this package contain predicates for Unicode
+blocks and char properties and character predicates defined by XML. The
+supported Unicode version is 7.0.0")
+ (license license:expat)))
+
+(define-public ghc-hxt-unicode
+ (package
+ (name "ghc-hxt-unicode")
+ (version "9.0.2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
+ (home-page
+ "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
+ (synopsis
+ "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
+ (description
+ "This package provides Unicode encoding and decoding functions for
+encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
+are supported. Decoding is done with lazy functions, errors may be detected or
+ignored.")
+ (license license:expat)))
+
+(define-public ghc-hxt-regex-xmlschema
+ (package
+ (name "ghc-hxt-regex-xmlschema")
+ (version "9.2.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "hxt-regex-xmlschema/hxt-regex-xmlschema-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
+ ("ghc-parsec" ,ghc-parsec)
+ ("ghc-text" ,ghc-text)
+ ("ghc-hunit" ,ghc-hunit)))
+ (home-page "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema")
+ (synopsis "Regular expression library for W3C XML Schema regular expressions")
+ (description
+ "This library supports full W3C XML Schema regular expressions inclusive
+all Unicode character sets and blocks. It is implemented by the technique of
+derivations of regular expressions.")
+ (license license:expat)))
+
+(define-public ghc-hxt
+ (package
+ (name "ghc-hxt")
+ (version "9.3.1.16")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/hxt/hxt-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1qq3ykgn355rx242xjcbqqksgvwr6k2fdj5phw4iv28qqxff6m8d"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-parsec" ,ghc-parsec)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
+ ("ghc-hxt-unicode" ,ghc-hxt-unicode)
+ ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
+ ("ghc-network-uri" ,ghc-network-uri)))
+ (home-page "https://github.com/UweSchmidt/hxt")
+ (synopsis "Collection of tools for processing XML with Haskell")
+ (description
+ "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
+introduces a more general approach for processing XML with Haskell.")
+ (license license:expat)))