gnu: Use static & unversioned CPAN home pages.
[jackhill/guix/guix.git] / gnu / packages / xml.scm
CommitLineData
d0414883 1;;; GNU Guix --- Functional package management for GNU
ed4263fc 2;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
0899144f 3;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
b715dbac 4;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
10ac0f9f 5;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
5c1cf7f3 6;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
96fd87c9 7;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
0efb6452 8;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
fe9451c5 9;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
c74c7c13 10;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
e9f62e52 11;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
5eec378b 12;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
19c33040 13;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
4a78fd46 14;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
a040db6d 15;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
b4c9a317 16;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
f9f67fcb 17;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
5bc2d579 18;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
76fed2b3 19;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
3b695802 20;;; Copyright © 2017 Petter <petter@mykolab.ch>
767d24e8 21;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
d0414883
LC
22;;;
23;;; This file is part of GNU Guix.
24;;;
25;;; GNU Guix is free software; you can redistribute it and/or modify it
26;;; under the terms of the GNU General Public License as published by
27;;; the Free Software Foundation; either version 3 of the License, or (at
28;;; your option) any later version.
29;;;
30;;; GNU Guix is distributed in the hope that it will be useful, but
31;;; WITHOUT ANY WARRANTY; without even the implied warranty of
32;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33;;; GNU General Public License for more details.
34;;;
35;;; You should have received a copy of the GNU General Public License
36;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
37
1ffa7090 38(define-module (gnu packages xml)
f0444eaf 39 #:use-module (gnu packages)
0899144f 40 #:use-module (gnu packages autotools)
322cbda7 41 #:use-module (gnu packages compression)
58cc3b38 42 #:use-module (gnu packages gnupg)
1a17ca26 43 #:use-module (gnu packages java)
b4c9a317 44 #:use-module (gnu packages gnuzilla)
5c1cf7f3
RW
45 #:use-module (gnu packages haskell)
46 #:use-module (gnu packages haskell-check)
f0444eaf 47 #:use-module (gnu packages perl)
5ccde207 48 #:use-module (gnu packages perl-check)
f0444eaf 49 #:use-module (gnu packages python)
a7fd7b68 50 #:use-module (gnu packages tls)
ad871fc6 51 #:use-module (gnu packages web)
b5b73a82 52 #:use-module ((guix licenses) #:prefix license:)
d0414883
LC
53 #:use-module (guix packages)
54 #:use-module (guix download)
77d7b57c 55 #:use-module (guix build-system ant)
6ce212b8 56 #:use-module (guix build-system cmake)
2a1e82bb 57 #:use-module (guix build-system gnu)
37f9ff63 58 #:use-module (guix build-system perl)
7ce32242 59 #:use-module (guix build-system python)
5c1cf7f3 60 #:use-module (guix build-system haskell)
e4aab734
RW
61 #:use-module (gnu packages linux)
62 #:use-module (gnu packages pkg-config))
d0414883
LC
63
64(define-public expat
65 (package
66 (name "expat")
e5e33f90 67 (version "2.2.5")
d0414883
LC
68 (source (origin
69 (method url-fetch)
70 (uri (string-append "mirror://sourceforge/expat/expat/"
51514e69 71 version "/expat-" version ".tar.bz2"))
d0414883
LC
72 (sha256
73 (base32
e5e33f90 74 "1xpd78sp7m34jqrw5x13bz7kgz0n6aj15wn4zj4gfx3ypbpk5p6r"))))
d0414883 75 (build-system gnu-build-system)
e5e33f90 76 (home-page "https://libexpat.github.io/")
9e771e3b 77 (synopsis "Stream-oriented XML parser library written in C")
d0414883
LC
78 (description
79 "Expat is an XML parser library written in C. It is a
80stream-oriented parser in which an application registers handlers for
81things the parser might find in the XML document (like start tags).")
82 (license license:expat)))
f0444eaf 83
5bc2d579
GG
84(define-public libebml
85 (package
86 (name "libebml")
f3d89181 87 (version "1.3.6")
5bc2d579
GG
88 (source
89 (origin
90 (method url-fetch)
91 (uri (string-append "https://dl.matroska.org/downloads/"
a040db6d 92 name "/" name "-" version ".tar.xz"))
5bc2d579
GG
93 (sha256
94 (base32
f3d89181
TGR
95 "17iynkj22rbszaymxiaq6k02qy9w4fs1appkn1iam4y441w7lnhy"))
96 (patches
97 (list
98 (origin
99 (method url-fetch)
100 (uri
101 (string-append "https://github.com/Matroska-Org/libebml/commit/"
102 "e46906b80e7662fb78d305f576412f9fa4a22218.patch"))
103 (file-name "libebml-use-limits-not-climits.patch")
104 (sha256
105 (base32
106 "1803rcj4kzg385xij8j3fcz8h86z43ivciv512zr7jp9jwrafs58")))))))
107 (build-system cmake-build-system)
108 (arguments
109 `(#:configure-flags
110 (list "-DBUILD_SHARED_LIBS=YES")
111 #:tests? #f)) ; no test suite
a040db6d 112 (home-page "https://matroska-org.github.io/libebml/")
cb778117
TGR
113 (synopsis "C++ library to parse EBML files")
114 (description "libebml is a C++ library to read and write @dfn{EBML}
115(Extensible Binary Meta Language) files. EBML was designed to be a simplified
116binary extension of XML for the purpose of storing and manipulating data in a
5bc2d579
GG
117hierarchical form with variable field lengths.")
118 (license license:lgpl2.1)))
119
f0444eaf
AE
120(define-public libxml2
121 (package
122 (name "libxml2")
1b5292ca 123 (version "2.9.8")
f0444eaf
AE
124 (source (origin
125 (method url-fetch)
126 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
127 version ".tar.gz"))
128 (sha256
129 (base32
1b5292ca 130 "0ci7is75bwqqw2p32vxvrk6ds51ik7qgx73m920rakv5jlayax0b"))))
f0444eaf
AE
131 (build-system gnu-build-system)
132 (home-page "http://www.xmlsoft.org/")
35b9e423 133 (synopsis "C parser for XML")
c1944c92 134 (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
7ce32242 135 (native-inputs `(("perl" ,perl)))
2a8d4401
LC
136 ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
137 ;; sub-directory of any given package.
74528069
LC
138 (native-search-paths (list (search-path-specification
139 (variable "XML_CATALOG_FILES")
140 (separator " ")
141 (files '("xml"))
142 (file-pattern "^catalog\\.xml$")
143 (file-type 'regular))))
2a8d4401 144 (search-paths native-search-paths)
f0444eaf 145 (description
7c125ce0
AK
146 "Libxml2 is the XML C parser and toolkit developed for the Gnome
147project (but it is usable outside of the Gnome platform).")
f0444eaf 148 (license license:x11)))
58cc3b38 149
7ce32242 150(define-public python-libxml2
e428b2c0 151 (package/inherit libxml2
7ce32242
SB
152 (name "python-libxml2")
153 (build-system python-build-system)
154 (arguments
155 `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
156 #:tests? #f
157 #:phases
158 (modify-phases %standard-phases
159 (add-before
160 'build 'configure
161 (lambda* (#:key inputs #:allow-other-keys)
162 (chdir "python")
163 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
164 "cross-libc" "libc")))
165 (libxml2 (assoc-ref inputs "libxml2")))
166 (substitute* "setup.py"
167 ;; For 'libxml2/libxml/tree.h'.
168 (("ROOT = r'/usr'")
169 (format #f "ROOT = r'~a'" libxml2))
170 ;; For 'iconv.h'.
171 (("/opt/include")
172 (string-append glibc "/include")))))))))
173 (inputs `(("libxml2" ,libxml2)))
174 (synopsis "Python bindings for the libxml2 library")))
175
176(define-public python2-libxml2
177 (package-with-python2 python-libxml2))
178
58cc3b38
AE
179(define-public libxslt
180 (package
181 (name "libxslt")
16cc6a9d 182 (version "1.1.32")
58cc3b38
AE
183 (source (origin
184 (method url-fetch)
185 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
186 version ".tar.gz"))
187 (sha256
188 (base32
16cc6a9d 189 "0q2l6m56iv3ysxgm2walhg4c9wp7q183jb328687i9zlp85csvjj"))
28b33172 190 (patches (search-patches "libxslt-generated-ids.patch"))))
58cc3b38
AE
191 (build-system gnu-build-system)
192 (home-page "http://xmlsoft.org/XSLT/index.html")
35b9e423 193 (synopsis "C library for applying XSLT stylesheets to XML documents")
58cc3b38
AE
194 (inputs `(("libgcrypt" ,libgcrypt)
195 ("libxml2" ,libxml2)
95288fcc 196 ("python" ,python-minimal-wrapper)
11e3f107 197 ("zlib" ,zlib)))
58cc3b38 198 (description
35b9e423 199 "Libxslt is an XSLT C library developed for the GNOME project. It is
58cc3b38
AE
200based on libxml for XML parsing, tree manipulation and XPath support.")
201 (license license:x11)))
2a1e82bb 202
5eec378b
BW
203(define-public perl-graph-readwrite
204 (package
205 (name "perl-graph-readwrite")
ffbc7d65 206 (version "2.09")
5eec378b
BW
207 (source
208 (origin
209 (method url-fetch)
210 (uri (string-append
211 "mirror://cpan/authors/id/N/NE/NEILB/Graph-ReadWrite-"
212 version
213 ".tar.gz"))
214 (sha256
215 (base32
ffbc7d65 216 "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
5eec378b
BW
217 (build-system perl-build-system)
218 (propagated-inputs
219 `(("perl-graph" ,perl-graph)
220 ("perl-parse-yapp" ,perl-parse-yapp)
221 ("perl-xml-parser" ,perl-xml-parser)
222 ("perl-xml-writer" ,perl-xml-writer)))
223 (home-page "http://search.cpan.org/dist/Graph-ReadWrite")
224 (synopsis "Modules for reading and writing directed graphs")
225 (description "This is a collection of perl classes for reading and writing
226directed graphs in a variety of file formats. The graphs are represented in
227Perl using Jarkko Hietaniemi's @code{Graph} classes.
228
229There are two base classes. @code{Graph::Reader} is the base class for classes
230which read a graph file and create an instance of the Graph class.
231@code{Graph::Writer} is the base class for classes which take an instance of
232the @code{Graph} class and write it out in a specific file format.")
2f3108ad 233 (license license:perl-license)))
5eec378b 234
b2696a58 235(define-public perl-xml-atom
236 (package
237 (name "perl-xml-atom")
522f1995 238 (version "0.42")
b2696a58 239 (source (origin
240 (method url-fetch)
241 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
242 "XML-Atom-" version ".tar.gz"))
243 (sha256
244 (base32
522f1995 245 "1wa8kfy1w4mg7kzxim4whyprkn48a2il6fap0b947zywknw4c6y6"))))
b2696a58 246 (build-system perl-build-system)
522f1995
MB
247 (arguments
248 `(#:phases
249 (modify-phases %standard-phases
250 (add-before 'check 'set-perl-search-path
251 (lambda _
252 (setenv "PERL5LIB"
253 (string-append (getcwd) ":"
254 (getenv "PERL5LIB")))
255 #t)))))
b2696a58 256 (native-inputs
50632f0a
TGR
257 ;; TODO package: perl-datetime-format-atom
258 `(("perl-html-tagset" ,perl-html-tagset)
522f1995 259 ("perl-module-build-tiny" ,perl-module-build-tiny)
50632f0a
TGR
260 ("perl-module-install" ,perl-module-install)))
261 (propagated-inputs
b2696a58 262 `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
263 ("perl-datetime" ,perl-datetime)
264 ("perl-datetime-timezone" ,perl-datetime-timezone)
265 ("perl-digest-sha1" ,perl-digest-sha1)
266 ("perl-libwww" ,perl-libwww)
267 ("perl-uri" ,perl-uri)
268 ("perl-xml-libxml" ,perl-xml-libxml)
269 ("perl-xml-xpath" ,perl-xml-xpath)))
270 (home-page "http://search.cpan.org/dist/XML-Atom")
271 (synopsis "Atom feed and API implementation")
272 (description
273 "Atom is a syndication, API, and archiving format for weblogs and other data.
274@code{XML::Atom} implements the feed format as well as a client for the API.")
2f3108ad 275 (license license:perl-license)))
b2696a58 276
d66fa696
MB
277(define-public perl-xml-descent
278 (package
279 (name "perl-xml-descent")
280 (version "1.04")
281 (source (origin
282 (method url-fetch)
283 (uri (string-append "mirror://cpan/authors/id/A/AN/ANDYA/"
284 "XML-Descent-" version ".tar.gz"))
285 (sha256
286 (base32
287 "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7"))))
288 (build-system perl-build-system)
289 (native-inputs
290 `(("perl-module-build" ,perl-module-build)))
291 (propagated-inputs
292 `(("perl-test-differences" ,perl-test-differences)
293 ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
294 (home-page "http://search.cpan.org/dist/XML-Descent")
295 (synopsis "Recursive descent XML parsing")
296 (description
297 "The conventional models for parsing XML are either @dfn{DOM}
298(a data structure representing the entire document tree is created) or
299@dfn{SAX} (callbacks are issued for each element in the XML).
300
301XML grammar is recursive - so it's nice to be able to write recursive
302parsers for it. @code{XML::Descent} allows such parsers to be created.")
2f3108ad 303 (license license:perl-license)))
d66fa696 304
2a1e82bb
LC
305(define-public perl-xml-parser
306 (package
307 (name "perl-xml-parser")
d495634b 308 (version "2.44")
2a1e82bb
LC
309 (source (origin
310 (method url-fetch)
311 (uri (string-append
2b8c5f54 312 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
2a1e82bb
LC
313 version ".tar.gz"))
314 (sha256
315 (base32
d495634b 316 "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s"))))
2a1e82bb
LC
317 (build-system perl-build-system)
318 (arguments `(#:make-maker-flags
319 (let ((expat (assoc-ref %build-inputs "expat")))
320 (list (string-append "EXPATLIBPATH=" expat "/lib")
321 (string-append "EXPATINCPATH=" expat "/include")))))
322 (inputs `(("expat" ,expat)))
2f3108ad 323 (license license:perl-license)
2a1e82bb
LC
324 (synopsis "Perl bindings to the Expat XML parsing library")
325 (description
326 "This module provides ways to parse XML documents. It is built on top of
327XML::Parser::Expat, which is a lower level interface to James Clark's expat
328library. Each call to one of the parsing methods creates a new instance of
329XML::Parser::Expat which is then used to parse the document. Expat options
330may be provided when the XML::Parser object is created. These options are
331then passed on to the Expat object on each parse call. They can also be given
332as extra arguments to the parse methods, in which case they override options
333given at XML::Parser creation time.")
d495634b 334 (home-page "http://search.cpan.org/dist/XML-Parser")))
37f9ff63 335
62b28f19
MB
336(define-public perl-xml-tokeparser
337 (package
338 (name "perl-xml-tokeparser")
339 (version "0.05")
340 (source (origin
341 (method url-fetch)
342 (uri (string-append "mirror://cpan/authors/id/P/PO/PODMASTER/"
343 "XML-TokeParser-" version ".tar.gz"))
344 (sha256
345 (base32
346 "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
347 (build-system perl-build-system)
348 (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
349 (home-page "http://search.cpan.org/dist/XML-TokeParser")
350 (synopsis "Simplified interface to XML::Parser")
351 (description
352 "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface
353to @code{XML::Parser} in much the same way that Gisle Aas'
354@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}.
355@code{XML::TokeParser} splits its XML input up into \"tokens\", each
356corresponding to an @code{XML::Parser} event.")
2f3108ad 357 (license license:perl-license)))
62b28f19 358
7339fbe2 359(define-public perl-libxml
1385ba4f 360 (package
7339fbe2 361 (name "perl-libxml")
1385ba4f
AE
362 (version "0.08")
363 (source (origin
364 (method url-fetch)
365 (uri (string-append
366 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
367 version ".tar.gz"))
368 (sha256
369 (base32
370 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
371 (build-system perl-build-system)
7b81406a 372 (propagated-inputs
1385ba4f 373 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 374 (license license:perl-license)
2db5f9b6 375 (synopsis "Perl modules for working with XML")
1385ba4f 376 (description
2db5f9b6
TGR
377 "libxml-perl is a collection of smaller Perl modules, scripts, and
378documents for working with XML in Perl. libxml-perl software works in
379combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
380@code{XML::Grove}, and others.")
381 (home-page "http://search.cpan.org/dist/libxml-perl")))
1385ba4f 382
3dd6bee1
EB
383(define-public perl-xml-libxml
384 (package
385 (name "perl-xml-libxml")
58ade302 386 (version "2.0132")
3dd6bee1
EB
387 (source
388 (origin
389 (method url-fetch)
390 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
391 "XML-LibXML-" version ".tar.gz"))
392 (sha256
393 (base32
58ade302 394 "0xnl281hb590i287fxpl947f1s4zl9dnvc4ajvsqi89w23im453j"))))
3dd6bee1
EB
395 (build-system perl-build-system)
396 (propagated-inputs
397 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
398 ("perl-xml-sax" ,perl-xml-sax)))
399 (inputs
400 `(("libxml2" ,libxml2)))
401 (home-page "http://search.cpan.org/dist/XML-LibXML")
402 (synopsis "Perl interface to libxml2")
403 (description "This module implements a Perl interface to the libxml2
54c3c140 404library which provides interfaces for parsing and manipulating XML files. This
3dd6bee1
EB
405module allows Perl programmers to make use of the highly capable validating
406XML parser and the high performance DOM implementation.")
2f3108ad 407 (license license:perl-license)))
3dd6bee1 408
f7c4dc2f
RW
409(define-public perl-xml-libxml-simple
410 (package
411 (name "perl-xml-libxml-simple")
d21fb90a 412 (version "0.99")
f7c4dc2f
RW
413 (source (origin
414 (method url-fetch)
415 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
416 "XML-LibXML-Simple-" version ".tar.gz"))
417 (sha256
418 (base32
d21fb90a 419 "0i4ybiqdnvnbfxqslw2y392kvy7i752dl8n99bqiqv5kzk4lbzhl"))))
f7c4dc2f
RW
420 (build-system perl-build-system)
421 (propagated-inputs
422 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
423 ("perl-xml-libxml" ,perl-xml-libxml)))
424 (home-page "http://search.cpan.org/dist/XML-LibXML-Simple")
425 (synopsis "XML::LibXML based XML::Simple clone")
426 (description
427 "This package provides the same API as @code{XML::Simple} but is based on
428@code{XML::LibXML}.")
2f3108ad 429 (license license:perl-license)))
f7c4dc2f 430
93863a5e
RW
431(define-public perl-xml-libxslt
432 (package
433 (name "perl-xml-libxslt")
73a3e98f 434 (version "1.96")
93863a5e
RW
435 (source
436 (origin
437 (method url-fetch)
438 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
439 "XML-LibXSLT-" version ".tar.gz"))
440 (sha256
441 (base32
73a3e98f 442 "0wyl8klgr65j8y8fzgwz9jlvfjwvxazna8j3dg9gksd2v973fpia"))))
93863a5e
RW
443 (build-system perl-build-system)
444 (inputs
445 `(("libxslt" ,libxslt)))
446 (propagated-inputs
447 `(("perl-xml-libxml" ,perl-xml-libxml)))
448 (home-page "http://search.cpan.org/dist/XML-LibXSLT")
449 (synopsis "Perl bindings to GNOME libxslt library")
450 (description "This Perl module is an interface to the GNOME project's
451libxslt library.")
2f3108ad 452 (license license:perl-license)))
93863a5e 453
b715dbac
EB
454(define-public perl-xml-namespacesupport
455 (package
456 (name "perl-xml-namespacesupport")
88958ee0 457 (version "1.12")
b715dbac
EB
458 (source
459 (origin
460 (method url-fetch)
461 (uri (string-append "mirror://cpan/authors/id/P/PE/PERIGRIN/"
462 "XML-NamespaceSupport-" version ".tar.gz"))
463 (sha256
464 (base32
88958ee0 465 "1vz5pbi4lm5fhq2slrs2hlp6bnk29863abgjlcx43l4dky2rbsa7"))))
b715dbac
EB
466 (build-system perl-build-system)
467 (home-page "http://search.cpan.org/dist/XML-NamespaceSupport")
468 (synopsis "XML namespace support class")
469 (description "This module offers a simple to process namespaced XML
470names (unames) from within any application that may need them. It also helps
471maintain a prefix to namespace URI map, and provides a number of basic
472checks.")
2f3108ad 473 (license license:perl-license)))
b715dbac 474
a022b23f 475(define-public perl-xml-rss
476 (package
477 (name "perl-xml-rss")
b5de208e 478 (version "1.60")
a022b23f 479 (source (origin
480 (method url-fetch)
481 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
482 "XML-RSS-" version ".tar.gz"))
483 (sha256
484 (base32
b5de208e 485 "0xw6aaqka3vqwbv152sbh6fbi8j306q1gvg7v83br8miif3mjcsb"))))
a022b23f 486 (build-system perl-build-system)
487 (native-inputs
488 `(("perl-module-build" ,perl-module-build)
489 ("perl-test-manifest" ,perl-test-manifest)
490 ("perl-test-differences" ,perl-test-differences)
491 ("perl-test-pod" ,perl-test-pod)
492 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
493 ;; XXX: The test which uses this modules does not run, even when it is included
494 ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
495 (inputs
496 `(("perl-datetime" ,perl-datetime)
497 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
498 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
499 ("perl-html-parser" ,perl-html-parser)
500 ("perl-xml-parser" ,perl-xml-parser)))
501 (home-page "http://search.cpan.org/dist/XML-RSS")
502 (synopsis "Creates and updates RSS files")
503 (description
504 "This module provides a basic framework for creating and maintaining
505RDF Site Summary (RSS) files. This distribution also contains many examples
506that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
5071.0 version, and more.")
2f3108ad 508 (license license:perl-license)))
a022b23f 509
18b8bbb3
EB
510(define-public perl-xml-sax
511 (package
512 (name "perl-xml-sax")
14eb5434 513 (version "1.00")
18b8bbb3
EB
514 (source
515 (origin
516 (method url-fetch)
517 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
518 "XML-SAX-" version ".tar.gz"))
519 (sha256
520 (base32
14eb5434 521 "1qra9k3wszjxvsgbragl55z3qba4nri0ipmjaxfib4l6xxj6bsj5"))))
18b8bbb3
EB
522 (build-system perl-build-system)
523 (propagated-inputs
524 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
525 ("perl-xml-sax-base" ,perl-xml-sax-base)))
526 (arguments
527 `(#:phases (modify-phases %standard-phases
528 (add-before
40b084a3 529 'install 'augment-path
18b8bbb3
EB
530 ;; The install target tries to load the newly-installed
531 ;; XML::SAX module, but can't find it, so we need to tell
532 ;; perl where to look.
533 (lambda* (#:key outputs #:allow-other-keys)
534 (setenv "PERL5LIB"
535 (string-append (getenv "PERL5LIB") ":"
536 (assoc-ref outputs "out")
537 "/lib/perl5/site_perl")))))))
538 (home-page "http://search.cpan.org/dist/XML-SAX")
539 (synopsis "Perl API for XML")
540 (description "XML::SAX consists of several framework classes for using and
541building Perl SAX2 XML parsers, filters, and drivers.")
2f3108ad 542 (license license:perl-license)))
18b8bbb3 543
1ed6d5bc
EB
544(define-public perl-xml-sax-base
545 (package
546 (name "perl-xml-sax-base")
fa964e96 547 (version "1.09")
1ed6d5bc
EB
548 (source
549 (origin
550 (method url-fetch)
551 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
552 "XML-SAX-Base-" version ".tar.gz"))
553 (sha256
554 (base32
fa964e96 555 "1l1ai9g1z11ja7mvnfl5mj346r13jyckbg9qlw6c2izglidkbjv6"))))
1ed6d5bc
EB
556 (build-system perl-build-system)
557 (home-page "http://search.cpan.org/dist/XML-SAX-Base")
558 (synopsis "Base class for SAX Drivers and Filters")
559 (description "This module has a very simple task - to be a base class for
560PerlSAX drivers and filters. It's default behaviour is to pass the input
561directly to the output unchanged. It can be useful to use this module as a
562base class so you don't have to, for example, implement the characters()
563callback.")
2f3108ad 564 (license license:perl-license)))
1ed6d5bc 565
535dc6cf
AE
566(define-public perl-xml-simple
567 (package
568 (name "perl-xml-simple")
fa3fff43 569 (version "2.25")
535dc6cf
AE
570 (source (origin
571 (method url-fetch)
572 (uri (string-append
573 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
574 version ".tar.gz"))
575 (sha256
576 (base32
fa3fff43 577 "1y6vh328zrh085d40852v4ij2l4g0amxykswxd1nfhd2pspds7sk"))))
535dc6cf 578 (build-system perl-build-system)
27ef7f45 579 (propagated-inputs
e831256f
EF
580 `(("perl-xml-parser" ,perl-xml-parser)
581 ("perl-xml-sax" ,perl-xml-sax)))
2f3108ad 582 (license license:perl-license)
535dc6cf
AE
583 (synopsis "Perl module for easy reading/writing of XML files")
584 (description
585 "The XML::Simple module provides a simple API layer on top of an
586underlying XML parsing module (either XML::Parser or one of the SAX2
587parser modules).")
e831256f 588 (home-page "http://search.cpan.org/dist/XML-Simple")))
535dc6cf 589
a2e520af
AE
590(define-public perl-xml-regexp
591 (package
592 (name "perl-xml-regexp")
593 (version "0.04")
594 (source (origin
595 (method url-fetch)
596 (uri (string-append
597 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
598 version ".tar.gz"))
599 (sha256
600 (base32
601 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
602 (build-system perl-build-system)
603 (inputs
604 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 605 (license license:perl-license)
a2e520af
AE
606 (synopsis "Perl regular expressions for XML tokens")
607 (description
608 "XML::RegExp contains regular expressions for the following XML tokens:
609BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
610EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
611 (home-page "http://search.cpan.org/~tjmather/XML-RegExp/lib/XML/RegExp.pm")))
612
ad871fc6
AE
613(define-public perl-xml-dom
614 (package
615 (name "perl-xml-dom")
4e5465f2 616 (version "1.46")
ad871fc6
AE
617 (source (origin
618 (method url-fetch)
619 (uri (string-append
620 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
621 version ".tar.gz"))
622 (sha256
623 (base32
4e5465f2 624 "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
ad871fc6 625 (build-system perl-build-system)
f7faff88
AE
626 (propagated-inputs
627 `(("perl-libwww" ,perl-libwww)
ad871fc6 628 ("perl-libxml" ,perl-libxml)
4e5465f2 629 ("perl-xml-parser" ,perl-xml-parser)
ad871fc6 630 ("perl-xml-regexp" ,perl-xml-regexp)))
2f3108ad 631 (license license:perl-license)
ad871fc6
AE
632 (synopsis
633 "Perl module for building DOM Level 1 compliant document structures")
634 (description
635 "This module extends the XML::Parser module by Clark Cooper. The
636XML::Parser module is built on top of XML::Parser::Expat, which is a lower
637level interface to James Clark's expat library. XML::DOM::Parser is derived
638from XML::Parser. It parses XML strings or files and builds a data structure
639that conforms to the API of the Document Object Model.")
ab45b38f 640 (home-page "http://search.cpan.org/dist/XML-DOM")))
ad871fc6 641
649e1676
RW
642(define-public perl-xml-compile-tester
643 (package
644 (name "perl-xml-compile-tester")
9af5a513 645 (version "0.91")
649e1676
RW
646 (source (origin
647 (method url-fetch)
648 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
649 "XML-Compile-Tester-" version ".tar.gz"))
650 (sha256
651 (base32
9af5a513 652 "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75"))))
649e1676
RW
653 (build-system perl-build-system)
654 (propagated-inputs
655 `(("perl-log-report" ,perl-log-report)
656 ("perl-test-deep" ,perl-test-deep)))
657 (home-page "http://search.cpan.org/dist/XML-Compile-Tester")
658 (synopsis "XML::Compile related regression testing")
659 (description
660 "The @code{XML::Compile} module suite has extensive regression testing.
661This module provide functions which simplify writing tests for
662@code{XML::Compile} related distributions.")
2f3108ad 663 (license license:perl-license)))
649e1676 664
b494a5f1
RW
665(define-public perl-xml-compile
666 (package
667 (name "perl-xml-compile")
18c832b0 668 (version "1.54")
b494a5f1
RW
669 (source (origin
670 (method url-fetch)
671 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
672 "XML-Compile-" version ".tar.gz"))
673 (sha256
674 (base32
18c832b0 675 "1hp41960bpqxvv1samv9hc0ghhmvs3i16r4rfl9yp54lp6jhsr2c"))))
b494a5f1
RW
676 (build-system perl-build-system)
677 (propagated-inputs
678 `(("perl-log-report" ,perl-log-report)
679 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
680 ("perl-xml-libxml" ,perl-xml-libxml)
681 ("perl-test-deep" ,perl-test-deep)))
682 (home-page "http://search.cpan.org/dist/XML-Compile")
683 (synopsis "Compilation-based XML processing")
684 (description
685 "@code{XML::Compile} can be used to translate a Perl data-structure into
686XML or XML into a Perl data-structure, both directions under rigid control by
687a schema.")
2f3108ad 688 (license license:perl-license)))
b494a5f1 689
c1d41b5d
RW
690(define-public perl-xml-compile-cache
691 (package
692 (name "perl-xml-compile-cache")
503a0059 693 (version "1.06")
c1d41b5d
RW
694 (source (origin
695 (method url-fetch)
696 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
697 "XML-Compile-Cache-" version ".tar.gz"))
698 (sha256
699 (base32
503a0059 700 "181qf1s7ymgi7saph3cf9p6dbxkxyh1ja23na4dchhi8v5mi66sr"))))
c1d41b5d
RW
701 (build-system perl-build-system)
702 (propagated-inputs
703 `(("perl-log-report" ,perl-log-report)
704 ("perl-xml-compile" ,perl-xml-compile)
705 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
706 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
707 (home-page "http://search.cpan.org/dist/XML-Compile-Cache")
708 (synopsis "Cache compiled XML translators")
709 (description
710 "This package provides methods to cache compiled XML translators.")
2f3108ad 711 (license license:perl-license)))
c1d41b5d 712
baeab9b8
RW
713(define-public perl-xml-compile-soap
714 (package
715 (name "perl-xml-compile-soap")
1d9b041c 716 (version "3.24")
baeab9b8
RW
717 (source (origin
718 (method url-fetch)
719 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
720 "XML-Compile-SOAP-" version ".tar.gz"))
721 (sha256
722 (base32
1d9b041c 723 "0pkcph562l2ij7rlwlvm58v6y062qsbydfpaz2qnph2ixqy0xfd1"))))
baeab9b8
RW
724 (build-system perl-build-system)
725 (propagated-inputs
726 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
727 ("perl-libwww" ,perl-libwww)
728 ("perl-log-report" ,perl-log-report)
729 ("perl-xml-compile" ,perl-xml-compile)
730 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
731 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
732 (home-page "http://search.cpan.org/dist/XML-Compile-SOAP")
733 (synopsis "Base-class for SOAP implementations")
734 (description
735 "This module provides a class to handle the SOAP protocol. The first
736implementation is @url{SOAP1.1,
737http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
738used.")
2f3108ad 739 (license license:perl-license)))
baeab9b8 740
6a914948
RW
741(define-public perl-xml-compile-wsdl11
742 (package
743 (name "perl-xml-compile-wsdl11")
4b4a4f5c 744 (version "3.07")
6a914948
RW
745 (source (origin
746 (method url-fetch)
747 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
748 "XML-Compile-WSDL11-" version ".tar.gz"))
749 (sha256
750 (base32
4b4a4f5c 751 "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba"))))
6a914948
RW
752 (build-system perl-build-system)
753 (propagated-inputs
754 `(("perl-log-report" ,perl-log-report)
755 ("perl-xml-compile" ,perl-xml-compile)
756 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
757 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
758 (home-page "http://search.cpan.org/dist/XML-Compile-WSDL11")
759 (synopsis "Create SOAP messages defined by WSDL 1.1")
760 (description
761 "This module understands WSDL version 1.1. A WSDL file defines a set of
762messages to be send and received over SOAP connections. This involves
763encoding of the message to be send into XML, sending the message to the
764server, collect the answer, and finally decoding the XML to Perl.")
2f3108ad 765 (license license:perl-license)))
6a914948 766
246455c2 767(define-public perl-xml-feed
768 (package
769 (name "perl-xml-feed")
770 (version "0.53")
771 (source (origin
772 (method url-fetch)
773 (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
774 "XML-Feed-" version ".tar.gz"))
775 (sha256
776 (base32
777 "07b165g6wk8kqwpl49r3n0kag6p2nrkyp3ch0h8qyxb6nrnkkq7c"))))
778 (build-system perl-build-system)
779 (arguments
780 `(#:tests? #f)) ; Tests require internet connection
781 (native-inputs
782 `(("perl-module-build" ,perl-module-build)
783 ("perl-uri" ,perl-uri)
784 ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
785 (inputs
786 `(("perl-class-errorhandler" ,perl-class-errorhandler)
787 ("perl-datetime" ,perl-datetime)
788 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
789 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
790 ("perl-feed-find" ,perl-feed-find)
791 ("perl-html-parser" ,perl-html-parser)
792 ("perl-libwww-perl" ,perl-libwww)
793 ("perl-module-pluggable" ,perl-module-pluggable)
794 ("perl-uri-fetch" ,perl-uri-fetch)
795 ("perl-xml-atom" ,perl-xml-atom)
796 ("perl-xml-libxml" ,perl-xml-libxml)
797 ("perl-xml-rss" ,perl-xml-rss)))
798 (home-page "http://search.cpan.org/dist/XML-Feed")
799 (synopsis "XML Syndication Feed Support")
800 (description "@code{XML::Feed} is a syndication feed parser for both RSS and
801Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
802@code{XML::Feed} supports the following syndication feed formats:
803RSS 0.91, RSS 1.0, RSS 2.0, Atom")
2f3108ad 804 (license license:perl-license)))
246455c2 805
0c1bab36 806(define-public perl-xml-xpath
807 (package
808 (name "perl-xml-xpath")
26d66a51 809 (version "1.42")
0c1bab36 810 (source (origin
811 (method url-fetch)
812 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
813 "XML-XPath-" version ".tar.gz"))
814 (sha256
815 (base32
26d66a51 816 "04mm91kxav598ax7nlg81dhnvanwvg6bkf30l0cgkmga5iyccsly"))))
0c1bab36 817 (build-system perl-build-system)
818 (native-inputs
819 `(("perl-path-tiny" ,perl-path-tiny)))
9332d706 820 (propagated-inputs
0c1bab36 821 `(("perl-xml-parser" ,perl-xml-parser)))
822 (home-page "http://search.cpan.org/dist/XML-XPath")
823 (synopsis "Parse and evaluate XPath statements")
824 (description
825 "This module aims to comply exactly to the @url{XPath specification,
826https://www.w3.org/TR/xpath} and yet allow extensions to be added in
827the form of functions.")
2f3108ad 828 (license license:perl-license)))
0c1bab36 829
6ce212b8
RW
830(define-public pugixml
831 (package
832 (name "pugixml")
727ffbd5 833 (version "1.9")
6ce212b8
RW
834 (source
835 (origin
836 (method url-fetch)
0562a81e
EF
837 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
838 version "/pugixml-" version ".tar.gz"))
6ce212b8
RW
839 (sha256
840 (base32
727ffbd5 841 "19nv3zhik3djp4blc4vrjwrl8dfhzmal8b21sq7y907nhddx6mni"))))
6ce212b8
RW
842 (build-system cmake-build-system)
843 (arguments
52c14bb6
RJ
844 `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
845 "-DCMAKE_C_FLAGS=-shared -fPIC")
846 #:tests? #f)) ; no tests
28655227 847 (home-page "https://pugixml.org")
6ce212b8
RW
848 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
849 (description
850 "pugixml is a C++ XML processing library, which consists of a DOM-like
851interface with rich traversal/modification capabilities, a fast XML parser
852which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
853implementation for complex data-driven tree queries. Full Unicode support is
854also available, with Unicode interface variants and conversions between
855different Unicode encodings which happen automatically during
856parsing/saving.")
857 (license license:expat)))
858
c2efe1ae
MB
859(define-public python-pyxb
860 (package
861 (name "python-pyxb")
4ef6cfef 862 (version "1.2.6")
c2efe1ae
MB
863 (source (origin
864 (method url-fetch)
865 (uri (pypi-uri "PyXB" version))
866 (sha256
867 (base32
4ef6cfef 868 "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a"))))
c2efe1ae
MB
869 (build-system python-build-system)
870 (home-page "http://pyxb.sourceforge.net/")
871 (synopsis "Python XML Schema Bindings")
872 (description
873 "PyXB (\"pixbee\") is a pure Python package that generates Python source
874code for classes that correspond to data structures defined by XMLSchema.")
875 (license (list license:asl2.0 ; Most files.
876 license:expat ; pyxb/utils/six.py
877 license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
878 license:psfl)))) ; pyxb/utils/activestate.py
879
880(define-public python2-pyxb
881 (package-with-python2 python-pyxb))
882
37f9ff63
AE
883(define-public xmlto
884 (package
885 (name "xmlto")
877a6466 886 (version "0.0.28")
37f9ff63
AE
887 (source
888 (origin
889 (method url-fetch)
7bc19c92
LF
890 ;; The old source on fedorahosted.org is offline permanently:
891 ;; <https://bugs.gnu.org/25989>
892 (uri (string-append "mirror://debian/pool/main/x/xmlto/"
893 "xmlto_" version ".orig.tar.bz2"))
894 (file-name (string-append name "-" version ".tar.bz2"))
37f9ff63
AE
895 (sha256
896 (base32
877a6466 897 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 898 (build-system gnu-build-system)
ae0c1202
LC
899 (arguments
900 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
901 '(#:configure-flags (list (string-append "GETOPT="
902 (assoc-ref %build-inputs
903 "util-linux")
904 "/bin/getopt"))))
37f9ff63 905 (inputs
ae0c1202
LC
906 `(("util-linux" ,util-linux) ; for 'getopt'
907 ("libxml2" ,libxml2) ; for 'xmllint'
908 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
909 (home-page "http://cyberelk.net/tim/software/xmlto/")
910 (synopsis "Front-end to an XSL toolchain")
911 (description
912 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
913stylesheet for the conversion you want and applies it using an external
914XSL-T processor. It also performs any necessary post-processing.")
915 (license license:gpl2+)))
0899144f
AE
916
917(define-public xmlsec
918 (package
919 (name "xmlsec")
33031faa 920 (version "1.2.26")
0899144f
AE
921 (source (origin
922 (method url-fetch)
923 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
924 name "1-" version ".tar.gz"))
925 (sha256
926 (base32
33031faa 927 "0l1dk344rn3j2vnj13daz72xd8j1msvzhg82n2il5ji0qz4pd0ld"))))
0899144f
AE
928 (build-system gnu-build-system)
929 (propagated-inputs ; according to xmlsec1.pc
930 `(("libxml2" ,libxml2)
931 ("libxslt" ,libxslt)))
932 (inputs
933 `(("gnutls" ,gnutls)
934 ("libgcrypt" ,libgcrypt)
935 ("libltdl" ,libltdl)))
e4aab734
RW
936 (native-inputs
937 `(("pkg-config" ,pkg-config)))
a5b570b4 938 (home-page "https://www.aleksey.com/xmlsec/")
0899144f
AE
939 (synopsis "XML Security Library")
940 (description
941 "The XML Security Library is a C library based on Libxml2. It
942supports XML security standards such as XML Signature, XML Encryption,
943Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
944Libxml2).")
945 (license (license:x11-style "file://COPYING"
946 "See 'COPYING' in the distribution."))))
96f8d991 947
b4c9a317
MB
948(define-public xmlsec-nss
949 (package
950 (inherit xmlsec)
951 (name "xmlsec-nss")
952 (inputs
953 `(("nss" ,nss)
954 ("libltdl" ,libltdl)))
955 (synopsis "XML Security Library (using NSS instead of GnuTLS)")))
956
96f8d991
RW
957(define-public minixml
958 (package
959 (name "minixml")
b7cbcee5 960 (version "2.11")
96f8d991 961 (source (origin
b7cbcee5 962 (method url-fetch/tarbomb)
eba9ecd4 963 (uri (string-append "https://github.com/michaelrsweet/mxml/"
b7cbcee5 964 "releases/download/v" version
eba9ecd4 965 "/mxml-" version ".tar.gz"))
96f8d991
RW
966 (sha256
967 (base32
b7cbcee5 968 "13xsw8vvkxd10vca42ccdyl9rs64lcvhbfz57aknpl3xcfn8mxma"))))
96f8d991
RW
969 (build-system gnu-build-system)
970 (arguments
b7cbcee5
TGR
971 `(#:phases
972 (modify-phases %standard-phases
973 (add-after 'unpack 'fix-permissions
974 ;; FIXME: url-fetch/tarbomb resets all permissions to 555/444.
975 (lambda _
976 (for-each
977 (lambda (file)
978 (chmod file #o644))
979 (find-files "doc" "\\."))
980 #t)))
981 #:tests? #f)) ; tests are run during build
eba9ecd4 982 (home-page "https://michaelrsweet.github.io/mxml")
96f8d991
RW
983 (synopsis "Small XML parsing library")
984 (description
985 "Mini-XML is a small C library to read and write XML files and strings in
986UTF-8 and UTF-16 encoding.")
987 ;; LGPL 2.0+ with additional exceptions for static linking
988 (license license:lgpl2.0+)))
33ae9107
DT
989
990;; TinyXML is an unmaintained piece of software, so the patches and build
991;; system massaging have no upstream potential.
992(define-public tinyxml
993 (package
994 (name "tinyxml")
995 (version "2.6.2")
996 (source (origin
997 (method url-fetch)
de67e922
LF
998 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
999 version "/tinyxml_"
33ae9107
DT
1000 (string-join (string-split version #\.) "_")
1001 ".tar.gz"))
671249b9 1002 (file-name (string-append name "-" version ".tar.gz"))
33ae9107
DT
1003 (sha256
1004 (base32
1005 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 1006 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
1007 (build-system gnu-build-system)
1008 ;; This library is missing *a lot* of the steps to make it usable, so we
1009 ;; have to add them here, like every other distro must do.
1010 (arguments
1011 `(#:phases
1012 (modify-phases %standard-phases
1013 (delete 'configure)
1014 (add-after 'build 'build-shared-library
1015 (lambda _
0efb6452
EF
1016 (invoke "g++" "-Wall" "-O2" "-shared" "-fpic"
1017 "tinyxml.cpp" "tinyxmlerror.cpp"
1018 "tinyxmlparser.cpp" "tinystr.cpp"
1019 "-o" "libtinyxml.so")))
33ae9107 1020 (replace 'check
0efb6452 1021 (lambda _ (invoke "./xmltest")))
33ae9107
DT
1022 (replace 'install
1023 (lambda* (#:key outputs #:allow-other-keys)
1024 (let* ((out (assoc-ref outputs "out"))
1025 (include (string-append out "/include"))
1026 (lib (string-append out "/lib"))
1027 (pkgconfig (string-append out "/lib/pkgconfig"))
1028 (doc (string-append out "/share/doc")))
1029 ;; Install libs and headers.
1030 (install-file "libtinyxml.so" lib)
1031 (install-file "tinystr.h" include)
1032 (install-file "tinyxml.h" include)
1033 ;; Generate and install pkg-config file.
1034 (mkdir-p pkgconfig)
1035 ;; Software such as Kodi expect this file to be present, but
1036 ;; it's not provided in the source code.
1037 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
1038 (lambda (port)
1039 (format port "prefix=~a
1040exec_prefix=${prefix}
1041libdir=${exec_prefix}/lib
1042includedir=${prefix}/include
1043
1044Name: TinyXML
1045Description: A simple, small, C++ XML parser
1046Version: ~a
1047Libs: -L${libdir} -ltinyxml
1048Cflags: -I${includedir}
1049"
1050 out ,version)))
1051 ;; Install docs.
1052 (mkdir-p doc)
1053 (copy-recursively "docs" (string-append doc "tinyxml"))
1054 #t))))))
1055 (synopsis "Small XML parser for C++")
1056 (description "TinyXML is a small and simple XML parsing library for the
05077200 1057C++ programming language.")
33ae9107
DT
1058 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
1059 (license license:zlib)))
fe9451c5 1060
931bd7f6
TGR
1061(define-public tinyxml2
1062 (package
1063 (name "tinyxml2")
1064 (version "4.0.1")
1065 (source
1066 (origin
1067 (method url-fetch)
1068 (uri (string-append "https://github.com/leethomason/tinyxml2/archive/"
1069 version ".tar.gz"))
29a39054 1070 (file-name (string-append name "-" version ".tar.gz"))
931bd7f6 1071 (sha256
29a39054
EF
1072 (base32
1073 "083z4r4khcndxi9k840lcr48sqxvar4gpsnf749xfdn1bkr8xcql"))))
931bd7f6
TGR
1074 (build-system cmake-build-system)
1075 (arguments
1076 `(#:tests? #f)) ; no tests
1077 (synopsis "Small XML parser for C++")
1078 (description "TinyXML2 is a small and simple XML parsing library for the
1079C++ programming language.")
1080 (home-page "http://www.grinninglizard.com/tinyxml2/")
1081 (license license:zlib)))
1082
fe9451c5
RG
1083(define-public xmlstarlet
1084 (package
1085 (name "xmlstarlet")
1086 (version "1.6.1")
1087 (source
1088 (origin
1089 (method url-fetch)
1090 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
1091 version "/xmlstarlet-" version ".tar.gz"))
1092 (sha256
1093 (base32
1094 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
1095 (build-system gnu-build-system)
22ea0235
MB
1096 (arguments
1097 '(#:phases
1098 (modify-phases %standard-phases
1099 (add-before 'check 'drop-failing-tests
1100 (lambda _
1101 ;; FIXME: Why are these tests failing.
1102 (substitute* "Makefile"
1103 (("^examples/schema1\\\\") "\\")
1104 (("^examples/valid1\\\\") "\\"))
1105 #t)))))
fe9451c5
RG
1106 (inputs
1107 `(("libxslt" ,libxslt)
1108 ("libxml2" ,libxml2)))
1109 (home-page "http://xmlstar.sourceforge.net/")
1110 (synopsis "Command line XML toolkit")
1111 (description "XMLStarlet is a set of command line utilities which can be
1112used to transform, query, validate, and edit XML documents. XPath is used to
1113match and extract data, and elements can be added, deleted or modified using
1114XSLT and EXSLT.")
1115 (license license:x11)))
19c33040 1116
767d24e8
SR
1117(define-public html-xml-utils
1118 (package
1119 (name "html-xml-utils")
4321aeb6 1120 (version "7.6")
767d24e8
SR
1121 (source
1122 (origin
1123 (method url-fetch)
1124 (uri (string-append
1125 "https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-"
1126 version ".tar.gz"))
1127 (sha256
1128 (base32
4321aeb6 1129 "0l97ps089byy62838wf2jwvvc465iw29z9r5kwmwcq7f3bn11y3m"))))
767d24e8
SR
1130 (build-system gnu-build-system)
1131 (home-page "https://www.w3.org/Tools/HTML-XML-utils/")
1132 (synopsis "Command line utilities to manipulate HTML and XML files")
1133 (description "HTML-XML-utils provides a number of simple utilities for
1134manipulating and converting HTML and XML files in various ways. The suite
1135consists of the following tools:
1136
1137@itemize
1138 @item @command{asc2xml} convert from @code{UTF-8} to @code{&#nnn;} entities
1139 @item @command{xml2asc} convert from @code{&#nnn;} entities to @code{UTF-8}
1140 @item @command{hxaddid} add IDs to selected elements
1141 @item @command{hxcite} replace bibliographic references by hyperlinks
1142 @item @command{hxcite} mkbib - expand references and create bibliography
1143 @item @command{hxclean} apply heuristics to correct an HTML file
1144 @item @command{hxcopy} copy an HTML file while preserving relative links
1145 @item @command{hxcount} count elements and attributes in HTML or XML files
1146 @item @command{hxextract} extract selected elements
1147 @item @command{hxincl} expand included HTML or XML files
1148 @item @command{hxindex} create an alphabetically sorted index
1149 @item @command{hxmkbib} create bibliography from a template
1150 @item @command{hxmultitoc} create a table of contents for a set of HTML files
1151 @item @command{hxname2id} move some @code{ID=} or @code{NAME=} from A
1152elements to their parents
1153 @item @command{hxnormalize} pretty-print an HTML file
1154 @item @command{hxnsxml} convert output of hxxmlns back to normal XML
1155 @item @command{hxnum} number section headings in an HTML file
1156 @item @command{hxpipe} convert XML to a format easier to parse with Perl or AWK
1157 @item @command{hxprintlinks} number links and add table of URLs at end of an HTML file
1158 @item @command{hxprune} remove marked elements from an HTML file
1159 @item @command{hxref} generate cross-references
1160 @item @command{hxselect} extract elements that match a (CSS) selector
1161 @item @command{hxtoc} insert a table of contents in an HTML file
1162 @item @command{hxuncdata} replace CDATA sections by character entities
1163 @item @command{hxunent} replace HTML predefined character entities to @code{UTF-8}
1164 @item @command{hxunpipe} convert output of pipe back to XML format
1165 @item @command{hxunxmlns} replace \"global names\" by XML Namespace prefixes
1166 @item @command{hxwls} list links in an HTML file
1167 @item @command{hxxmlns} replace XML Namespace prefixes by \"global names\"
1168@end itemize
1169")
1170 (license license:expat)))
1171
19c33040
JN
1172(define-public xlsx2csv
1173 (package
1174 (name "xlsx2csv")
1175 (version "0.7.2")
1176 (source (origin
1177 (method url-fetch)
1178 (uri (string-append
1179 "https://github.com/dilshod/"
1180 name "/archive/release/" version ".tar.gz"))
1181 (file-name (string-append name "-" version ".tar.gz"))
1182 (sha256
1183 (base32
1184 "1gpn6kaa7l1ai8c9zx2j3acf04bvxq79pni8jjfjrk01smjbyyql"))))
1185 (build-system python-build-system)
1186 (arguments
1187 `(#:python ,python-2 ; Use python-2 for the test script.
1188 #:phases
1189 (modify-phases %standard-phases
1190 (replace 'check
1191 (lambda _
1192 (substitute* "test/run"
1193 ;; Run tests with `python' only
1194 (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
1195 (zero? (system* "test/run")))))))
1196 (home-page "https://github.com/dilshod/xlsx2csv")
1197 (synopsis "XLSX to CSV converter")
1198 (description
1199 "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
1200XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
1201files. It is designed to be fast and to handle large input files.")
1202 (license license:gpl2+)))
d2b51c08 1203
1204(define-public python-defusedxml
1205 (package
1206 (name "python-defusedxml")
ca6197dd 1207 (version "0.5.0")
d2b51c08 1208 (source
1209 (origin
1210 (method url-fetch)
1211 (uri (pypi-uri "defusedxml" version))
1212 (sha256
1213 (base32
ca6197dd 1214 "1x54n0h8hl92vvwyymx883fbqpqjwn2mc8fb383bcg3z9zwz5mr4"))))
d2b51c08 1215 (build-system python-build-system)
1216 (home-page "https://bitbucket.org/tiran/defusedxml")
1217 (synopsis "XML bomb protection for Python stdlib modules")
1218 (description
1219 "Defusedxml provides XML bomb protection for Python stdlib modules.")
1220 (license license:psfl)))
1221
1222(define-public python2-defusedxml
1223 (package-with-python2 python-defusedxml))
ca8f3f9a
AP
1224
1225(define-public libxls
1226 (package
1227 (name "libxls")
1228 (version "1.4.0")
1229 (source (origin
1230 (method url-fetch)
1231 (uri (string-append "https://sourceforge.net/projects/"
1232 name "/files/" name "-"
1233 version ".zip"))
1234 (sha256
1235 (base32
1236 "1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk"))))
1237 (build-system gnu-build-system)
1238 (arguments
1239 `(#:phases
1240 (modify-phases %standard-phases
1241 ;; Bootstrapping is required in order to fix the test driver script.
189be331 1242 (replace 'bootstrap
ca8f3f9a
AP
1243 (lambda _
1244 (zero? (system* "bash" "bootstrap")))))))
1245 (native-inputs
1246 `(("unzip" ,unzip)
1247 ("autoconf" ,autoconf)
1248 ("automake" ,automake)
1249 ("libtool" ,libtool)))
1250 (home-page "http://libxls.sourceforge.net/")
1251 (synopsis "Read Excel files")
1252 (description
1253 "libxls is a C library which can read Excel (xls) files since Excel 97 (the BIFF8 format).
1254libxls cannot write Excel files.")
1255 (license license:bsd-2)))
623fb4d1
AP
1256
1257(define-public freexl
1258 (package
1259 (name "freexl")
5275f69e 1260 (version "1.0.5")
623fb4d1
AP
1261 (source (origin
1262 (method url-fetch)
1263 (uri (string-append "http://www.gaia-gis.it/gaia-sins/"
1264 name "-" version ".tar.gz"))
1265 (sha256
1266 (base32
5275f69e 1267 "03bmwq6hngmzwpqpb7c2amqlspz4q69iv96nlf0f5c0qs98b3j9x"))))
623fb4d1
AP
1268 (build-system gnu-build-system)
1269 (home-page "https://www.gaia-gis.it/fossil/freexl/index")
1270 (synopsis "Read Excel files")
1271 (description
1272 "FreeXL is a C library to extract valid data from within an Excel (.xls)
1273spreadsheet.")
1274 ;; Any of these licenses may be picked.
1275 (license (list license:gpl2+
1276 license:lgpl2.1+
1277 license:mpl1.1))))
d00d6cea
RW
1278
1279(define-public xerces-c
1280 (package
1281 (name "xerces-c")
1282 (version "3.1.4")
1283 (source (origin
1284 (method url-fetch)
1285 (uri (string-append "mirror://apache/xerces/c/3/sources/"
1286 "xerces-c-" version ".tar.xz"))
1287 (sha256
1288 (base32
1289 "0hb29c0smqlpxj0zdm09s983z5jx37szlliccnvgh0qq91wwqwwr"))))
1290 (build-system gnu-build-system)
1291 (arguments
1292 (let ((system (or (%current-target-system)
1293 (%current-system))))
1294 (if (string-prefix? "x86_64" system)
1295 '()
1296 '(#:configure-flags '("--disable-sse2")))))
1297 (native-inputs
1298 `(("perl" ,perl)))
1299 (home-page "http://xerces.apache.org/xerces-c/")
1300 (synopsis "Validating XML parser library for C++")
1301 (description "Xerces-C++ is a validating XML parser written in a portable
1302subset of C++. Xerces-C++ makes it easy to give your application the ability
1303to read and write XML data. A shared library is provided for parsing,
1304generating, manipulating, and validating XML documents using the DOM, SAX, and
1305SAX2 APIs.")
1306 (license license:asl2.0)))
77d7b57c
RW
1307
1308(define-public java-simple-xml
1309 (package
1310 (name "java-simple-xml")
1311 (version "2.7.1")
1312 (source (origin
1313 (method url-fetch)
1314 (uri (string-append "mirror://sourceforge/simple/simple-xml-"
1315 version ".zip"))
1316 (sha256
1317 (base32
3c274149
GB
1318 "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
1319 (patches (search-patches "java-simple-xml-fix-tests.patch"))))
77d7b57c
RW
1320 (build-system ant-build-system)
1321 (arguments
1322 `(#:build-target "build"
1323 #:test-target "test"
1324 #:phases
1325 (modify-phases %standard-phases
1326 (replace 'install (install-jars "jar")))))
1327 (native-inputs
1328 `(("unzip" ,unzip)))
1329 (home-page "http://simple.sourceforge.net/")
1330 (synopsis "XML serialization framework for Java")
1331 (description "Simple is a high performance XML serialization and
1332configuration framework for Java. Its goal is to provide an XML framework
1333that enables rapid development of XML configuration and communication systems.
1334This framework aids the development of XML systems with minimal effort and
1335reduced errors. It offers full object serialization and deserialization,
1336maintaining each reference encountered.")
1337 (license license:asl2.0)))
3b695802
P
1338
1339(define-public perl-xml-xpathengine
1340 (package
1341 (name "perl-xml-xpathengine")
1342 (version "0.14")
1343 (source (origin
1344 (method url-fetch)
1345 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1346 "XML-XPathEngine-" version ".tar.gz"))
1347 (sha256
1348 (base32
1349 "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
1350 (build-system perl-build-system)
1351 (home-page "http://search.cpan.org/dist/XML-XPathEngine/")
1352 (synopsis "Re-usable XPath engine for DOM-like trees")
1353 (description
1354 "This module provides an XPath engine, that can be re-used by other
1355modules/classes that implement trees.
1356
1357In order to use the XPath engine, nodes in the user module need to mimick DOM
1358nodes. The degree of similitude between the user tree and a DOM dictates how
1359much of the XPath features can be used. A module implementing all of the DOM
1360should be able to use this module very easily (you might need to add the
1361@code{cmp} method on nodes in order to get ordered result sets).")
1362 (license license:perl-license)))
9e1c3581
P
1363
1364(define-public perl-tree-xpathengine
1365 (package
1366 (name "perl-tree-xpathengine")
1367 (version "0.05")
1368 (source (origin
1369 (method url-fetch)
1370 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1371 "Tree-XPathEngine-" version ".tar.gz"))
1372 (sha256
1373 (base32
1374 "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
1375 (build-system perl-build-system)
1376 (home-page "http://search.cpan.org/dist/Tree-XPathEngine/")
1377 (synopsis "Re-usable XPath engine")
1378 (description
1379 "This module provides an XPath engine, that can be re-used by other
1380module/classes that implement trees. It is designed to be compatible with
1381@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
1382by @code{Tree::XPathEngine}.")
1383 (license license:perl-license)))
b7c59195
P
1384
1385(define-public perl-xml-filter-buffertext
1386 (package
1387 (name "perl-xml-filter-buffertext")
1388 (version "1.01")
1389 (source
1390 (origin
1391 (method url-fetch)
1392 (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
1393 "XML-Filter-BufferText-" version ".tar.gz"))
1394 (sha256
1395 (base32
1396 "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
1397 (build-system perl-build-system)
1398 (propagated-inputs
1399 `(("perl-xml-sax-base" ,perl-xml-sax-base)))
1400 (home-page "http://search.cpan.org/dist/XML-Filter-BufferText/")
1401 (synopsis "Filter to put all characters() in one event")
1402 (description "This is a very simple filter. One common cause of
1403grief (and programmer error) is that XML parsers aren't required to provide
1404character events in one chunk. They can, but are not forced to, and most
1405don't. This filter does the trivial but oft-repeated task of putting all
1406characters into a single event.")
1407 (license license:perl-license)))
33b592ee
P
1408
1409(define-public perl-xml-sax-writer
1410 (package
1411 (name "perl-xml-sax-writer")
1412 (version "0.57")
1413 (source (origin
1414 (method url-fetch)
1415 (uri (string-append
1416 "mirror://cpan/authors/id/P/PE/PERIGRIN/"
1417 "XML-SAX-Writer-" version ".tar.gz"))
1418 (sha256
1419 (base32
1420 "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
1421 (build-system perl-build-system)
1422 (propagated-inputs
1423 `(("perl-libxml" ,perl-libxml)
1424 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
c695fb76 1425 ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
33b592ee
P
1426 ("perl-xml-sax-base" ,perl-xml-sax-base)))
1427 (home-page "http://search.cpan.org/dist/XML-SAX-Writer/")
1428 (synopsis "SAX2 XML Writer")
1429 (description
1430 "This is an XML writer that understands SAX2. It is based on
1431@code{XML::Handler::YAWriter}.")
1432 (license license:perl-license)))
9e88b210
P
1433
1434(define-public perl-xml-handler-yawriter
1435 (package
1436 (name "perl-xml-handler-yawriter")
1437 (version "0.23")
1438 (source
1439 (origin
1440 (method url-fetch)
1441 (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
1442 "XML-Handler-YAWriter-" version ".tar.gz"))
1443 (sha256
1444 (base32
1445 "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
1446 (build-system perl-build-system)
1447 (propagated-inputs
1448 `(("perl-libxml" ,perl-libxml)))
1449 (home-page "http://search.cpan.org/dist/XML-Handler-YAWriter/")
1450 (synopsis "Yet another Perl SAX XML Writer")
1451 (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
1452It provides a flexible escaping technique and pretty printing.")
1453 (license license:perl-license)))
85f225fb
P
1454
1455(define-public perl-xml-twig
1456 (package
1457 (name "perl-xml-twig")
1458 (version "3.52")
1459 (source (origin
1460 (method url-fetch)
1461 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1462 "XML-Twig-" version ".tar.gz"))
1463 (sha256
1464 (base32
1465 "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
1466 (build-system perl-build-system)
1467 (inputs
1468 `(("expat" ,expat)))
1469 (propagated-inputs
1470 `(("perl-html-tidy" ,perl-html-tidy)
1471 ("perl-html-tree" ,perl-html-tree)
1472 ("perl-io-captureoutput" ,perl-io-captureoutput)
1473 ("perl-io-string" ,perl-io-string)
1474 ("perl-io-stringy" ,perl-io-stringy)
1475 ("perl-libxml" ,perl-libxml)
1476 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
1477 ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
1478 ("perl-xml-parser" ,perl-xml-parser)
1479 ("perl-xml-sax-writer" ,perl-xml-sax-writer)
1480 ("perl-xml-simple" ,perl-xml-simple)
1481 ("perl-xml-xpathengine" ,perl-xml-xpathengine)
c695fb76 1482 ("perl-test-pod" ,perl-test-pod)
85f225fb
P
1483 ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
1484 (home-page "http://search.cpan.org/dist/XML-Twig/")
1485 (synopsis "Perl module for processing huge XML documents in tree mode")
1486 (description "@code{XML::Twig} is an XML transformation module. Its
1487strong points: can be used to process huge documents while still being in tree
1488mode; not bound by DOM or SAX, so it is very perlish and offers a very
1489comprehensive set of methods; simple to use; DWIMs as much as possible.
1490
1491What it doesn't offer: full SAX support (it can export SAX, but only reads
1492XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
1493support.")
1494 (license license:perl-license)))
1a17ca26
JL
1495
1496;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
1497;; xml-apis.jar and xml-apis-1.4.01.jar.
1498(define-public java-jaxp
1499 (package
1500 (name "java-jaxp")
1501 (version "1.4.01")
1502 (source
1503 (origin
1504 (method url-fetch)
1505 (uri (string-append "mirror://apache/xerces/xml-commons/source/"
1506 "xml-commons-external-" version "-src.tar.gz"))
1507 (sha256
1508 (base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
1509 (build-system ant-build-system)
1510 (arguments
1511 `(#:jar-name "jaxp.jar"
1512 #:jdk ,icedtea-8
1513 #:source-dir ".."
1514 #:tests? #f)); no tests
1515 (home-page "http://xerces.apache.org/xml-commons/")
1516 (synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
1517 (description "Jaxp from the Apache XML Commons project is used by
1518the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
1519
1520@itemize
1521@item Document Object Model (DOM)
1522@item Simple API for XML (SAX)
1523@item Java APIs for XML Processing (JAXP)
1524@item Transformation API for XML (TrAX)
1525@item Document Object Model (DOM) Load and Save
1526@item JSR 206 Java API for XML Processing
1527@end itemize")
1528 (license (list license:asl2.0
1529 license:w3c ;; Files under org.w3c
1530 license:public-domain)))) ;; org.xml.sax
9a86ee78
JL
1531
1532(define-public java-apache-xml-commons-resolver
1533 (package
1534 (name "java-apache-xml-commons-resolver")
1535 (version "1.2")
1536 (source
1537 (origin
1538 (method url-fetch)
1539 (uri (string-append "mirror://apache/xerces/xml-commons/"
1540 "xml-commons-resolver-" version ".tar.gz"))
1541 (sha256
1542 (base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
1543 (modules '((guix build utils)))
1544 (snippet
1545 '(begin
1546 (for-each delete-file (find-files "." ".*\\.(jar|zip)"))
1547 #t))))
1548 (build-system ant-build-system)
1549 (arguments
1550 `(#:jar-name (string-append "xml-resolver.jar")
1551 #:tests? #f)); no tests
1552 (inputs
1553 `(("java-junit" ,java-junit)))
1554 (home-page "http://xerces.apache.org/xml-commons/")
1555 (synopsis "Catalog-based entity and URI resolution")
1556 (description "The resolver class implements the full semantics of OASIS Technical
1557Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
15582001 Committee Specification of OASIS XML Catalogs.
1559
1560It also includes a framework of classes designed to read catalog files
1561in a number of formats:
1562
1563@itemize
1564@item The plain-text flavor described by TR9401.
1565@item The XCatalog XML format defined by John Cowan
1566@item The XML Catalog format defined by the OASIS Entity Resolution
1567 Technical Committee.
1568@end itemize")
1569 (license license:asl2.0)))
7eae94d8
JL
1570
1571;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
1572;; This package is a bootstrap version without dependencies on dom4j and xom.
1573(define java-jaxen-bootstrap
1574 (package
1575 (name "java-jaxen-bootstrap")
1576 (version "1.1.6")
1577 (source (origin
1578 (method url-fetch)
1579 ;; No release on github
1580 (uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
1581 version "/jaxen-" version "-sources.jar"))
1582 (sha256
1583 (base32
1584 "18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
1585 (build-system ant-build-system)
1586 (arguments
1587 `(#:jar-name "jaxen.jar"
1588 #:source-dir "src"
1589 #:tests? #f; no tests
1590 #:phases
1591 (modify-phases %standard-phases
1592 (add-before 'build 'remove-dom4j
1593 (lambda _
1594 (delete-file-recursively "src/org/jaxen/dom4j")
1595 (delete-file-recursively "src/org/jaxen/xom")
1596 #t)))))
1597 (inputs
1598 `(("java-jdom" ,java-jdom)))
1599 (home-page "https://github.com/jaxen-xpath/jaxen")
1600 (synopsis "XPath library")
1601 (description "Jaxen is an XPath library written in Java. It is adaptable
1602to many different object models, including DOM, XOM, dom4j, and JDOM. It is
1603also possible to write adapters that treat non-XML trees such as compiled
1604Java byte code or Java beans as XML, thus enabling you to query these trees
1605with XPath too.")
1606 (license license:bsd-3)))
5552080d 1607
be0524f4
JL
1608(define-public java-jaxen
1609 (package
1610 (inherit java-jaxen-bootstrap)
1611 (name "java-jaxen")
1612 (inputs
1613 `(("java-jdom" ,java-jdom)
1614 ("java-xom" ,java-xom)
1615 ("java-dom4j" ,java-dom4j)))))
1616
5552080d
JL
1617(define-public java-xom
1618 (package
1619 (name "java-xom")
1620 (version "127")
1621 (source (origin
1622 (method url-fetch)
1623 (uri (string-append "https://github.com/elharo/xom/archive/XOM_"
1624 version ".tar.gz"))
1625 (sha256
1626 (base32
1627 "04m69db1irqja12a9rfxrac8cbn9psqa1k136wh4ls4pxfsdr5wg"))
1628 (modules '((guix build utils)))
1629 (snippet
1630 '(begin
1631 (for-each delete-file
1632 (find-files "." "\\.jar$"))
1633 #t))))
1634 (build-system ant-build-system)
1635 (arguments
1636 `(#:jar-name "xom.jar"
1637 #:jdk ,icedtea-8
1638 #:tests? #f; no tests
1639 #:phases
1640 (modify-phases %standard-phases
1641 (add-before 'configure 'fix-tagsoup-dep
1642 (lambda _
1643 ;; FIXME: Where is tagsoup source?
1644 (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
1645 #t)))))
1646 (inputs
1647 `(("java-jdom" ,java-jdom)
1648 ("java-junit" ,java-junit)
1649 ("java-classpathx-servletapi" ,java-classpathx-servletapi)
1650 ("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1651 ("java-xerces" ,java-xerces)))
1652 (home-page "https://xom.nu/")
1653 (synopsis "XML Object Model")
1654 (description "XOM is a new XML Object Model for processing XML with Java
1655that strives for correctness and simplicity.")
1656 ;; 2.1 only
1657 (license license:lgpl2.1)))
96f31935
JL
1658
1659(define-public java-xsdlib
1660 (package
1661 (name "java-xsdlib")
1662 (version "2013.2")
1663 (source (origin
1664 (method url-fetch)
1665 (uri (string-append "http://central.maven.org/maven2/com/sun/msv/"
1666 "datatype/xsd/xsdlib/" version "/xsdlib-"
1667 version "-sources.jar"))
1668 (sha256
1669 (base32
1670 "185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
1671 (build-system ant-build-system)
1672 (arguments
1673 `(#:tests? #f; no tests
1674 #:jar-name "xsdlib.jar"
1675 #:jdk ,icedtea-8))
1676 (inputs
1677 `(("java-xerces" ,java-xerces)))
1678 (home-page "http://central.maven.org/maven2/com/sun/msv/datatype/xsd/xsdlib/")
1679 (synopsis "Sun Multi-Schema Validator")
1680 (description "Xsdlib contains an implementation of sun.com.msv, an XML
1681validator.")
1682 (license license:bsd-2)))
82d7d4e1
JL
1683
1684(define-public java-xpp3
1685 (package
1686 (name "java-xpp3")
1687 (version "1.1.4")
1688 (source (origin
1689 (method url-fetch)
1690 (uri (string-append "http://www.extreme.indiana.edu/dist/"
1691 "java-repository/xpp3/distributions/xpp3-"
1692 version "_src.tgz"))
1693 (sha256
1694 (base32
1695 "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
1696 (modules '((guix build utils)))
1697 (snippet
1698 '(begin ;; Delete bundled jar archives.
1699 (for-each delete-file (find-files "." ".*\\.jar"))
1700 #t))))
1701 (build-system ant-build-system)
1702 (arguments
1703 `(#:tests? #f; no tests
1704 #:build-target "jar"
1705 #:phases
1706 (modify-phases %standard-phases
1707 (replace 'install (install-jars "build")))))
1708 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1709 (synopsis "Streaming pull XML parser")
1710 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1711parser and should be used when there is a need to process quickly and
1712efficiently all input elements (for example in SOAP processors). This
1713package is a stable XmlPull parsing engine that is based on ideas from XPP
1714and in particular XPP2 but completely revised and rewritten to take the best
1715advantage of JIT JVMs.")
1716 (license (license:non-copyleft "file://LICENSE.txt"))))
9421f682
JL
1717
1718(define-public java-xmlpull2
1719 (package
1720 (name "java-xmlpull2")
1721 (version "2.1.10")
1722 (source (origin
1723 (method url-fetch)
1724 (uri (string-append "http://www.extreme.indiana.edu/xgws/xsoap/"
1725 "PullParser/PullParser" version ".tgz"))
1726 (sha256
1727 (base32
1728 "1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
1729 (modules '((guix build utils)))
1730 (snippet
1731 '(begin ;; Delete bundled jar archives.
1732 (for-each delete-file (find-files "." ".*\\.jar"))
1733 #t))))
1734 (build-system ant-build-system)
1735 (arguments
1736 `(#:tests? #f; no tests
1737 #:build-target "impl"
1738 #:phases
1739 (modify-phases %standard-phases
1740 (replace 'install (install-jars "build/lib")))))
1741 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1742 (synopsis "Streaming pull XML parser")
1743 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1744parser and should be used when there is a need to process quickly and
1745efficiently all input elements (for example in SOAP processors). This
1746package is in maintenance mode.")
1747 (license (license:non-copyleft "file:///LICENSE.txt"))))
605c23df
JL
1748
1749(define-public java-dom4j
1750 (package
1751 (name "java-dom4j")
1752 (version "2.1.0")
1753 (source (origin
1754 (method url-fetch)
1755 (uri (string-append "https://github.com/dom4j/dom4j/archive/"
1756 "version-" version ".tar.gz"))
1757 (file-name (string-append name "-" version ".tar.gz"))
1758 (sha256
1759 (base32
1760 "101drpnw6agmcvsi1jrfi0kn97r7liazrh5jbrip9vx26axn2fx9"))
1761 (modules '((guix build utils)))
1762 (snippet
1763 '(begin ;; Delete bundled jar archives.
1764 (for-each delete-file (find-files "." ".*\\.jar"))
1765 #t))))
1766 (build-system ant-build-system)
1767 (arguments
1768 `(#:jar-name "dom4j.jar"
1769 #:jdk ,icedtea-8
1770 #:source-dir "src/main/java"
1771 ;; FIXME: Requires xalan, but xalan depends on java-cup which has a
1772 ;; dependency on itself through jflex.
1773 #:tests? #f
1774 #:phases
1775 (modify-phases %standard-phases
1776 (add-before 'build 'copy-jaxen-sources
1777 ;; java-jaxen-bootstrap is not enough. These files have a circular
1778 ;; dependency and there is no subset of dom4j that would allow
1779 ;; breaking the circle.
1780 (lambda* (#:key inputs #:allow-other-keys)
1781 (mkdir-p "jaxen-sources")
1782 (with-directory-excursion "jaxen-sources"
1783 (system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
1784 (mkdir-p "src/main/java/org/jaxen/dom4j")
1785 (copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
1786 "src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
1787 (copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
1788 "src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
1789 #t))
1790 (add-before 'build 'fix-old-xpp2
1791 (lambda _
1792 ;; This package normally depends on xpp2 2.0, but version 2.1.10
1793 ;; is the only version whose source code is published.
1794 (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
1795 (("public void resetStartTag")
1796 "public boolean removeAttributeByRawName(String name) {\n
1797 return false;\n
1798}\n
1799public boolean removeAttributeByName(String name, String name2) {\n
1800 return false;\n
1801}\n\npublic void resetStartTag")
1802 (("Atttribute") "Attribute"))
1803 #t)))))
1804 (inputs
1805 `(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1806 ("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
1807 ("java-xmlpull2" ,java-xmlpull2)
1808 ("java-xpp3" ,java-xpp3)
1809 ("java-xsdlib" ,java-xsdlib)))
1810 (native-inputs
1811 `(("java-testng" ,java-testng)
1812 ("java-xerces" ,java-xerces)))
1813 (home-page "https://dom4j.github.io/")
1814 (synopsis "Flexible XML framework for Java")
1815 (description "Dom4j is a flexible XML framework for Java. DOM4J works
1816with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
1817low memory footprint.")
1818 ;; some BSD-like 5-clause license
1819 (license (license:non-copyleft "file://LICENSE"))))
3058d8ec
JL
1820
1821(define-public java-kxml2
1822 (package
1823 (name "java-kxml2")
1824 (version "2.4.2")
1825 (source (origin
1826 (method url-fetch)
1827 (uri (string-append "https://github.com/stefanhaustein/kxml2/archive/v"
1828 version ".tar.gz"))
1829 (file-name (string-append name "-" version ".tar.gz"))
1830 (sha256
1831 (base32
1832 "17kh04qf3vll1xx6sv06xlazw2hxa8qdmzyday9r6z2191jlj74w"))))
1833 (build-system ant-build-system)
1834 (arguments
1835 `(#:jar-name "kxml2.jar"
1836 #:source-dir "src/main/java"
1837 #:test-include (list "TestWb.java")
1838 ;; Test failure: it was expected to get an XML entity but got the
1839 ;; equivalent Unicode character instead.
1840 #:tests? #f
1841 #:phases
1842 (modify-phases %standard-phases
1843 (add-before 'build 'copy-resources
1844 (lambda _
1845 (copy-recursively "src/main/resources" "build/classes"))))))
1846 (inputs
1847 `(("java-xpp3" ,java-xpp3)))
1848 (native-inputs
1849 `(("java-junit" ,java-junit)))
1850 (home-page "http://kxml.org")
1851 (synopsis "XML pull parser")
1852 (description "kXML is a small XML pull parser, specially designed for
1853constrained environments such as Applets, Personal Java or devices compliant
1854with the Mobile Information Device Profile (MIDP).")
1855 (license license:expat)))
4c7759f0
JL
1856
1857(define-public java-stax
1858 (package
1859 (name "java-stax")
1860 (version "1.2.0")
1861 (source (origin
1862 (method url-fetch)
1863 (uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
1864 version "/stax-" version "-sources.jar"))
1865 (sha256
1866 (base32
1867 "04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
1868 (build-system ant-build-system)
1869 (arguments
1870 `(#:jar-name "stax.jar"
1871 #:tests? #f; no tests
1872 #:phases
1873 (modify-phases %standard-phases
1874 (add-before 'configure 'fix-utf8
1875 (lambda _
1876 ;; This file is ISO-8859-1 but java expects UTF-8.
1877 ;; Remove special characters in comments.
1878 (with-fluids ((%default-port-encoding "ISO-8859-1"))
1879 (substitute* "src/com/wutka/dtd/Scanner.java"
1880 (("//.*") "\n")))
1881 #t)))))
1882 (home-page "https://repo1.maven.org/maven2/stax/stax/")
1883 (synopsis "Streaming API for XML")
1884 (description "This package provides the reference implementation of the
1885@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
1886and from a Java application. It provides a standard pull parser interface.")
1887 (license license:asl2.0)))
b8798817
JL
1888
1889(define-public java-jettison
1890 (package
1891 (name "java-jettison")
1892 (version "1.3.7")
1893 (source (origin
1894 (method url-fetch)
1895 (uri (string-append "https://github.com/codehaus/jettison/archive/"
1896 "jettison-" version ".tar.gz"))
1897 (sha256
1898 (base32
1899 "0rdhfyxywvga5wiwasc04iqnxyixn3rd8wj01c9ymhvwc3h6dpqg"))))
1900 (build-system ant-build-system)
1901 (arguments
1902 `(#:jar-name "jettison.jar"
1903 #:source-dir "src/main/java"
1904 #:test-exclude (list "**/Abstract*.java"
1905 ;; Abstract classes
1906 "**/DOMTest.java"
1907 "**/BadgerFishDOMTest.java"
1908 "**/MappedDOMTest.java")))
1909 (native-inputs
1910 `(("java-junit" ,java-junit)))
1911 (home-page "https://github.com/codehaus/jettison")
1912 (synopsis "StAX implementation for JSON")
1913 (description "Jettison is a Java library for converting XML to JSON and
1914vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
1915implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
1916@code{Mapped} and @code{BadgerFish} conventions.")
1917 (license license:asl2.0)))
a5ec8a5c
JL
1918
1919(define-public java-jdom2
1920 (package
1921 (name "java-jdom")
1922 (version "2.0.6")
1923 (source (origin
1924 (method url-fetch)
1925 (uri (string-append "https://github.com/hunterhacker/jdom/archive/JDOM-"
1926 version ".tar.gz"))
1927 (sha256
1928 (base32
1929 "0p8n7inqq2a25wk9ljinl3ixlx1x2la9qaman8ngd75xxjb02yc1"))))
1930 (build-system ant-build-system)
1931 (arguments
1932 `(#:build-target "package"
1933 #:tests? #f; tests are run as part of the build process
1934 #:phases
1935 (modify-phases %standard-phases
1936 (replace 'install
1937 (install-jars "build")))))
1938 (home-page "http://jdom.org/")
1939 (synopsis "Access, manipulate, and output XML data")
1940 (description "Jdom is a Java-based solution for accessing, manipulating, and
1941outputting XML data from Java code.")
1942 (license license:bsd-4)))
5ee7b02f
JL
1943
1944(define-public java-xstream
1945 (package
1946 (name "java-xstream")
1947 (version "1.4.10")
1948 (source (origin
1949 (method url-fetch)
1950 (uri (string-append
1951 "https://github.com/x-stream/xstream/archive/XSTREAM_"
1952 (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
1953 ".tar.gz"))
1954 (file-name (string-append name "-" version ".tar.gz"))
1955 (sha256
1956 (base32
1957 "10zbkam05wirxipvgrjimdwsyqrwl4a0n7lhvxbsssqpv727469g"))))
1958 (build-system ant-build-system)
1959 (arguments
1960 `(#:jar-name "xstream.jar"
1961 ;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system
1962 #:tests? #f
1963 #:jdk ,icedtea-8
1964 #:source-dir "xstream/src/java"))
1965 (inputs
1966 `(("java-jdom" ,java-jdom)
1967 ("java-jdom2" ,java-jdom2)
1968 ("java-cglib" ,java-cglib)
1969 ("java-joda-time" ,java-joda-time)
1970 ("java-jettison" ,java-jettison)
1971 ("java-xom" ,java-xom)
1972 ("java-xpp3" ,java-xpp3)
1973 ("java-dom4j" ,java-dom4j)
1974 ("java-stax2-api" ,java-stax2-api)
1975 ("java-woodstox-core" ,java-woodstox-core)
1976 ("java-kxml2" ,java-kxml2)
1977 ("java-stax" ,java-stax)))
1978 (home-page "https://x-stream.github.io")
1979 (synopsis "XML serialization library")
1980 (description "XStream is a simple library to serialize Java objects to XML
1981and back again.")
1982 (license license:bsd-3)))
5c1cf7f3
RW
1983
1984(define-public ghc-hxt-charproperties
1985 (package
1986 (name "ghc-hxt-charproperties")
1987 (version "9.2.0.1")
1988 (source
1989 (origin
1990 (method url-fetch)
1991 (uri (string-append "https://hackage.haskell.org/package/"
1992 "hxt-charproperties/hxt-charproperties-"
1993 version ".tar.gz"))
1994 (sha256
1995 (base32
1996 "1mml8wglvagqq891rchgli6r8rnkwrqhgsxfl6kb5403pzb18rp4"))))
1997 (build-system haskell-build-system)
1998 (home-page "https://github.com/UweSchmidt/hxt")
1999 (synopsis "Character properties and classes for XML and Unicode")
2000 (description
2001 "The modules provided by this package contain predicates for Unicode
2002blocks and char properties and character predicates defined by XML. The
2003supported Unicode version is 7.0.0")
2004 (license license:expat)))
2005
e85de108
RW
2006(define-public ghc-hxt-unicode
2007 (package
2008 (name "ghc-hxt-unicode")
2009 (version "9.0.2.4")
2010 (source
2011 (origin
2012 (method url-fetch)
2013 (uri (string-append
2014 "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
2015 version
2016 ".tar.gz"))
2017 (sha256
2018 (base32
2019 "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
2020 (build-system haskell-build-system)
2021 (inputs
2022 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
2023 (home-page
2024 "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
2025 (synopsis
2026 "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
2027 (description
2028 "This package provides Unicode encoding and decoding functions for
2029encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
2030are supported. Decoding is done with lazy functions, errors may be detected or
2031ignored.")
2032 (license license:expat)))
2033
6f8deed6
RW
2034(define-public ghc-hxt-regex-xmlschema
2035 (package
2036 (name "ghc-hxt-regex-xmlschema")
2037 (version "9.2.0.3")
2038 (source
2039 (origin
2040 (method url-fetch)
2041 (uri (string-append "https://hackage.haskell.org/package/"
2042 "hxt-regex-xmlschema/hxt-regex-xmlschema-"
2043 version ".tar.gz"))
2044 (sha256
2045 (base32
2046 "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
2047 (build-system haskell-build-system)
2048 (inputs
2049 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
2050 ("ghc-parsec" ,ghc-parsec)
2051 ("ghc-text" ,ghc-text)
2052 ("ghc-hunit" ,ghc-hunit)))
2053 (home-page "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema")
2054 (synopsis "Regular expression library for W3C XML Schema regular expressions")
2055 (description
2056 "This library supports full W3C XML Schema regular expressions inclusive
2057all Unicode character sets and blocks. It is implemented by the technique of
2058derivations of regular expressions.")
2059 (license license:expat)))
2060
31511899
RW
2061(define-public ghc-hxt
2062 (package
2063 (name "ghc-hxt")
2064 (version "9.3.1.16")
2065 (source
2066 (origin
2067 (method url-fetch)
2068 (uri (string-append
2069 "https://hackage.haskell.org/package/hxt/hxt-"
2070 version
2071 ".tar.gz"))
2072 (sha256
2073 (base32
2074 "1qq3ykgn355rx242xjcbqqksgvwr6k2fdj5phw4iv28qqxff6m8d"))))
2075 (build-system haskell-build-system)
2076 (inputs
2077 `(("ghc-parsec" ,ghc-parsec)
2078 ("ghc-mtl" ,ghc-mtl)
2079 ("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
2080 ("ghc-hxt-unicode" ,ghc-hxt-unicode)
2081 ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
2082 ("ghc-network-uri" ,ghc-network-uri)))
2083 (home-page "https://github.com/UweSchmidt/hxt")
2084 (synopsis "Collection of tools for processing XML with Haskell")
2085 (description
2086 "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
2087introduces a more general approach for processing XML with Haskell.")
2088 (license license:expat)))