gnu: flatbuffers: Fix typo in description.
[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)))
9aba9b12 223 (home-page "https://metacpan.org/release/Graph-ReadWrite")
5eec378b
BW
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)))
9aba9b12 270 (home-page "https://metacpan.org/release/XML-Atom")
b2696a58 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)))
9aba9b12 294 (home-page "https://metacpan.org/release/XML-Descent")
d66fa696
MB
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.")
9aba9b12 334 (home-page "https://metacpan.org/release/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)))
9aba9b12 349 (home-page "https://metacpan.org/release/XML-TokeParser")
62b28f19
MB
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.")
9aba9b12 381 (home-page "https://metacpan.org/release/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)))
9aba9b12 401 (home-page "https://metacpan.org/release/XML-LibXML")
3dd6bee1
EB
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)))
9aba9b12 424 (home-page "https://metacpan.org/release/XML-LibXML-Simple")
f7c4dc2f
RW
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)))
9aba9b12 448 (home-page "https://metacpan.org/release/XML-LibXSLT")
93863a5e
RW
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 466 (build-system perl-build-system)
9aba9b12 467 (home-page "https://metacpan.org/release/XML-NamespaceSupport")
b715dbac
EB
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)))
9aba9b12 501 (home-page "https://metacpan.org/release/XML-RSS")
a022b23f 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")))))))
9aba9b12 538 (home-page "https://metacpan.org/release/XML-SAX")
18b8bbb3
EB
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 556 (build-system perl-build-system)
9aba9b12 557 (home-page "https://metacpan.org/release/XML-SAX-Base")
1ed6d5bc
EB
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).")
9aba9b12 588 (home-page "https://metacpan.org/release/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.")
9aba9b12 611 (home-page "https://metacpan.org/release/XML-RegExp")))
a2e520af 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.")
9aba9b12 640 (home-page "https://metacpan.org/release/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)))
9aba9b12 657 (home-page "https://metacpan.org/release/XML-Compile-Tester")
649e1676
RW
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")
174988fa 668 (version "1.60")
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
174988fa 675 "04vv7wy5v1l38xsfdbacvyd90qircvnrs2f3ysljm1nhq8mycmwm"))))
b494a5f1
RW
676 (build-system perl-build-system)
677 (propagated-inputs
174988fa
TGR
678 `(("perl-carp" ,perl-carp)
679 ("perl-log-report" ,perl-log-report)
b494a5f1
RW
680 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
681 ("perl-xml-libxml" ,perl-xml-libxml)
174988fa
TGR
682 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
683 ("perl-test-deep" ,perl-test-deep)
684 ("perl-types-serialiser" ,perl-types-serialiser)))
9aba9b12 685 (home-page "https://metacpan.org/release/XML-Compile")
b494a5f1
RW
686 (synopsis "Compilation-based XML processing")
687 (description
688 "@code{XML::Compile} can be used to translate a Perl data-structure into
689XML or XML into a Perl data-structure, both directions under rigid control by
690a schema.")
2f3108ad 691 (license license:perl-license)))
b494a5f1 692
c1d41b5d
RW
693(define-public perl-xml-compile-cache
694 (package
695 (name "perl-xml-compile-cache")
503a0059 696 (version "1.06")
c1d41b5d
RW
697 (source (origin
698 (method url-fetch)
699 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
700 "XML-Compile-Cache-" version ".tar.gz"))
701 (sha256
702 (base32
503a0059 703 "181qf1s7ymgi7saph3cf9p6dbxkxyh1ja23na4dchhi8v5mi66sr"))))
c1d41b5d
RW
704 (build-system perl-build-system)
705 (propagated-inputs
706 `(("perl-log-report" ,perl-log-report)
707 ("perl-xml-compile" ,perl-xml-compile)
708 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
709 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
9aba9b12 710 (home-page "https://metacpan.org/release/XML-Compile-Cache")
c1d41b5d
RW
711 (synopsis "Cache compiled XML translators")
712 (description
713 "This package provides methods to cache compiled XML translators.")
2f3108ad 714 (license license:perl-license)))
c1d41b5d 715
baeab9b8
RW
716(define-public perl-xml-compile-soap
717 (package
718 (name "perl-xml-compile-soap")
1d9b041c 719 (version "3.24")
baeab9b8
RW
720 (source (origin
721 (method url-fetch)
722 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
723 "XML-Compile-SOAP-" version ".tar.gz"))
724 (sha256
725 (base32
1d9b041c 726 "0pkcph562l2ij7rlwlvm58v6y062qsbydfpaz2qnph2ixqy0xfd1"))))
baeab9b8
RW
727 (build-system perl-build-system)
728 (propagated-inputs
729 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
730 ("perl-libwww" ,perl-libwww)
731 ("perl-log-report" ,perl-log-report)
732 ("perl-xml-compile" ,perl-xml-compile)
733 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
734 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
9aba9b12 735 (home-page "https://metacpan.org/release/XML-Compile-SOAP")
baeab9b8
RW
736 (synopsis "Base-class for SOAP implementations")
737 (description
738 "This module provides a class to handle the SOAP protocol. The first
739implementation is @url{SOAP1.1,
740http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
741used.")
2f3108ad 742 (license license:perl-license)))
baeab9b8 743
6a914948
RW
744(define-public perl-xml-compile-wsdl11
745 (package
746 (name "perl-xml-compile-wsdl11")
4b4a4f5c 747 (version "3.07")
6a914948
RW
748 (source (origin
749 (method url-fetch)
750 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
751 "XML-Compile-WSDL11-" version ".tar.gz"))
752 (sha256
753 (base32
4b4a4f5c 754 "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba"))))
6a914948
RW
755 (build-system perl-build-system)
756 (propagated-inputs
757 `(("perl-log-report" ,perl-log-report)
758 ("perl-xml-compile" ,perl-xml-compile)
759 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
760 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
9aba9b12 761 (home-page "https://metacpan.org/release/XML-Compile-WSDL11")
6a914948
RW
762 (synopsis "Create SOAP messages defined by WSDL 1.1")
763 (description
764 "This module understands WSDL version 1.1. A WSDL file defines a set of
765messages to be send and received over SOAP connections. This involves
766encoding of the message to be send into XML, sending the message to the
767server, collect the answer, and finally decoding the XML to Perl.")
2f3108ad 768 (license license:perl-license)))
6a914948 769
246455c2 770(define-public perl-xml-feed
771 (package
772 (name "perl-xml-feed")
3a6e1fe8 773 (version "0.55")
246455c2 774 (source (origin
775 (method url-fetch)
776 (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
777 "XML-Feed-" version ".tar.gz"))
778 (sha256
779 (base32
3a6e1fe8 780 "0am345qzy5rxxnzh13l6p18a7drgkzmmlkgrgl4cv3b2j1pwls3i"))))
246455c2 781 (build-system perl-build-system)
782 (arguments
ddf72f50 783 `(#:tests? #f)) ; tests require internet connection
246455c2 784 (native-inputs
785 `(("perl-module-build" ,perl-module-build)
786 ("perl-uri" ,perl-uri)
787 ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
788 (inputs
789 `(("perl-class-errorhandler" ,perl-class-errorhandler)
790 ("perl-datetime" ,perl-datetime)
791 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
792 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
793 ("perl-feed-find" ,perl-feed-find)
794 ("perl-html-parser" ,perl-html-parser)
795 ("perl-libwww-perl" ,perl-libwww)
796 ("perl-module-pluggable" ,perl-module-pluggable)
797 ("perl-uri-fetch" ,perl-uri-fetch)
798 ("perl-xml-atom" ,perl-xml-atom)
799 ("perl-xml-libxml" ,perl-xml-libxml)
800 ("perl-xml-rss" ,perl-xml-rss)))
9aba9b12 801 (home-page "https://metacpan.org/release/XML-Feed")
246455c2 802 (synopsis "XML Syndication Feed Support")
803 (description "@code{XML::Feed} is a syndication feed parser for both RSS and
804Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
805@code{XML::Feed} supports the following syndication feed formats:
806RSS 0.91, RSS 1.0, RSS 2.0, Atom")
2f3108ad 807 (license license:perl-license)))
246455c2 808
0c1bab36 809(define-public perl-xml-xpath
810 (package
811 (name "perl-xml-xpath")
26d66a51 812 (version "1.42")
0c1bab36 813 (source (origin
814 (method url-fetch)
815 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
816 "XML-XPath-" version ".tar.gz"))
817 (sha256
818 (base32
26d66a51 819 "04mm91kxav598ax7nlg81dhnvanwvg6bkf30l0cgkmga5iyccsly"))))
0c1bab36 820 (build-system perl-build-system)
821 (native-inputs
822 `(("perl-path-tiny" ,perl-path-tiny)))
9332d706 823 (propagated-inputs
0c1bab36 824 `(("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 825 (home-page "https://metacpan.org/release/XML-XPath")
0c1bab36 826 (synopsis "Parse and evaluate XPath statements")
827 (description
828 "This module aims to comply exactly to the @url{XPath specification,
829https://www.w3.org/TR/xpath} and yet allow extensions to be added in
830the form of functions.")
2f3108ad 831 (license license:perl-license)))
0c1bab36 832
6ce212b8
RW
833(define-public pugixml
834 (package
835 (name "pugixml")
727ffbd5 836 (version "1.9")
6ce212b8
RW
837 (source
838 (origin
839 (method url-fetch)
0562a81e
EF
840 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
841 version "/pugixml-" version ".tar.gz"))
6ce212b8
RW
842 (sha256
843 (base32
727ffbd5 844 "19nv3zhik3djp4blc4vrjwrl8dfhzmal8b21sq7y907nhddx6mni"))))
6ce212b8
RW
845 (build-system cmake-build-system)
846 (arguments
52c14bb6
RJ
847 `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
848 "-DCMAKE_C_FLAGS=-shared -fPIC")
849 #:tests? #f)) ; no tests
28655227 850 (home-page "https://pugixml.org")
6ce212b8
RW
851 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
852 (description
853 "pugixml is a C++ XML processing library, which consists of a DOM-like
854interface with rich traversal/modification capabilities, a fast XML parser
855which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
856implementation for complex data-driven tree queries. Full Unicode support is
857also available, with Unicode interface variants and conversions between
858different Unicode encodings which happen automatically during
859parsing/saving.")
860 (license license:expat)))
861
c2efe1ae
MB
862(define-public python-pyxb
863 (package
864 (name "python-pyxb")
4ef6cfef 865 (version "1.2.6")
c2efe1ae
MB
866 (source (origin
867 (method url-fetch)
868 (uri (pypi-uri "PyXB" version))
869 (sha256
870 (base32
4ef6cfef 871 "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a"))))
c2efe1ae
MB
872 (build-system python-build-system)
873 (home-page "http://pyxb.sourceforge.net/")
874 (synopsis "Python XML Schema Bindings")
875 (description
876 "PyXB (\"pixbee\") is a pure Python package that generates Python source
877code for classes that correspond to data structures defined by XMLSchema.")
878 (license (list license:asl2.0 ; Most files.
879 license:expat ; pyxb/utils/six.py
880 license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
881 license:psfl)))) ; pyxb/utils/activestate.py
882
883(define-public python2-pyxb
884 (package-with-python2 python-pyxb))
885
37f9ff63
AE
886(define-public xmlto
887 (package
888 (name "xmlto")
877a6466 889 (version "0.0.28")
37f9ff63
AE
890 (source
891 (origin
892 (method url-fetch)
7bc19c92
LF
893 ;; The old source on fedorahosted.org is offline permanently:
894 ;; <https://bugs.gnu.org/25989>
895 (uri (string-append "mirror://debian/pool/main/x/xmlto/"
896 "xmlto_" version ".orig.tar.bz2"))
897 (file-name (string-append name "-" version ".tar.bz2"))
37f9ff63
AE
898 (sha256
899 (base32
877a6466 900 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 901 (build-system gnu-build-system)
ae0c1202
LC
902 (arguments
903 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
904 '(#:configure-flags (list (string-append "GETOPT="
905 (assoc-ref %build-inputs
906 "util-linux")
907 "/bin/getopt"))))
37f9ff63 908 (inputs
ae0c1202
LC
909 `(("util-linux" ,util-linux) ; for 'getopt'
910 ("libxml2" ,libxml2) ; for 'xmllint'
911 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
912 (home-page "http://cyberelk.net/tim/software/xmlto/")
913 (synopsis "Front-end to an XSL toolchain")
914 (description
915 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
916stylesheet for the conversion you want and applies it using an external
917XSL-T processor. It also performs any necessary post-processing.")
918 (license license:gpl2+)))
0899144f
AE
919
920(define-public xmlsec
921 (package
922 (name "xmlsec")
50f5aa4b 923 (version "1.2.27")
0899144f 924 (source (origin
50f5aa4b
TGR
925 (method url-fetch)
926 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
927 "xmlsec1-" version ".tar.gz"))
928 (sha256
929 (base32
930 "1dlf263mvxj9n4lnhhjawc2hv45agrwjf8kxk7k8h9g9v2x5dmwp"))))
0899144f 931 (build-system gnu-build-system)
50f5aa4b 932 (propagated-inputs ; according to xmlsec1.pc
0899144f
AE
933 `(("libxml2" ,libxml2)
934 ("libxslt" ,libxslt)))
935 (inputs
936 `(("gnutls" ,gnutls)
937 ("libgcrypt" ,libgcrypt)
938 ("libltdl" ,libltdl)))
e4aab734
RW
939 (native-inputs
940 `(("pkg-config" ,pkg-config)))
a5b570b4 941 (home-page "https://www.aleksey.com/xmlsec/")
0899144f
AE
942 (synopsis "XML Security Library")
943 (description
944 "The XML Security Library is a C library based on Libxml2. It
945supports XML security standards such as XML Signature, XML Encryption,
946Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
947Libxml2).")
948 (license (license:x11-style "file://COPYING"
949 "See 'COPYING' in the distribution."))))
96f8d991 950
b4c9a317
MB
951(define-public xmlsec-nss
952 (package
953 (inherit xmlsec)
954 (name "xmlsec-nss")
3825b444
TGR
955 (native-inputs
956 ;; For tests.
957 `(("nss:bin" ,nss "bin") ; for certutil
958 ,@(package-native-inputs xmlsec)))
b4c9a317
MB
959 (inputs
960 `(("nss" ,nss)
961 ("libltdl" ,libltdl)))
962 (synopsis "XML Security Library (using NSS instead of GnuTLS)")))
963
96f8d991
RW
964(define-public minixml
965 (package
966 (name "minixml")
5b59c775 967 (version "2.12")
96f8d991 968 (source (origin
b7cbcee5 969 (method url-fetch/tarbomb)
eba9ecd4 970 (uri (string-append "https://github.com/michaelrsweet/mxml/"
b7cbcee5 971 "releases/download/v" version
eba9ecd4 972 "/mxml-" version ".tar.gz"))
96f8d991
RW
973 (sha256
974 (base32
5b59c775 975 "1z8nqxa4pqdic8wpixkkgg1m2pak9wjikjjxnk3j5i0d29dbgmmg"))))
96f8d991
RW
976 (build-system gnu-build-system)
977 (arguments
5b59c775
TGR
978 `(#:configure-flags
979 (list (string-append "LDFLAGS=-Wl,-rpath="
980 (assoc-ref %outputs "out") "/lib"))
981 #:phases
b7cbcee5
TGR
982 (modify-phases %standard-phases
983 (add-after 'unpack 'fix-permissions
984 ;; FIXME: url-fetch/tarbomb resets all permissions to 555/444.
985 (lambda _
986 (for-each
987 (lambda (file)
988 (chmod file #o644))
989 (find-files "doc" "\\."))
990 #t)))
991 #:tests? #f)) ; tests are run during build
eba9ecd4 992 (home-page "https://michaelrsweet.github.io/mxml")
96f8d991
RW
993 (synopsis "Small XML parsing library")
994 (description
995 "Mini-XML is a small C library to read and write XML files and strings in
996UTF-8 and UTF-16 encoding.")
997 ;; LGPL 2.0+ with additional exceptions for static linking
998 (license license:lgpl2.0+)))
33ae9107
DT
999
1000;; TinyXML is an unmaintained piece of software, so the patches and build
1001;; system massaging have no upstream potential.
1002(define-public tinyxml
1003 (package
1004 (name "tinyxml")
1005 (version "2.6.2")
1006 (source (origin
1007 (method url-fetch)
de67e922
LF
1008 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
1009 version "/tinyxml_"
33ae9107
DT
1010 (string-join (string-split version #\.) "_")
1011 ".tar.gz"))
671249b9 1012 (file-name (string-append name "-" version ".tar.gz"))
33ae9107
DT
1013 (sha256
1014 (base32
1015 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 1016 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
1017 (build-system gnu-build-system)
1018 ;; This library is missing *a lot* of the steps to make it usable, so we
1019 ;; have to add them here, like every other distro must do.
1020 (arguments
1021 `(#:phases
1022 (modify-phases %standard-phases
1023 (delete 'configure)
1024 (add-after 'build 'build-shared-library
1025 (lambda _
0efb6452
EF
1026 (invoke "g++" "-Wall" "-O2" "-shared" "-fpic"
1027 "tinyxml.cpp" "tinyxmlerror.cpp"
1028 "tinyxmlparser.cpp" "tinystr.cpp"
1029 "-o" "libtinyxml.so")))
33ae9107 1030 (replace 'check
0efb6452 1031 (lambda _ (invoke "./xmltest")))
33ae9107
DT
1032 (replace 'install
1033 (lambda* (#:key outputs #:allow-other-keys)
1034 (let* ((out (assoc-ref outputs "out"))
1035 (include (string-append out "/include"))
1036 (lib (string-append out "/lib"))
1037 (pkgconfig (string-append out "/lib/pkgconfig"))
1038 (doc (string-append out "/share/doc")))
1039 ;; Install libs and headers.
1040 (install-file "libtinyxml.so" lib)
1041 (install-file "tinystr.h" include)
1042 (install-file "tinyxml.h" include)
1043 ;; Generate and install pkg-config file.
1044 (mkdir-p pkgconfig)
1045 ;; Software such as Kodi expect this file to be present, but
1046 ;; it's not provided in the source code.
1047 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
1048 (lambda (port)
1049 (format port "prefix=~a
1050exec_prefix=${prefix}
1051libdir=${exec_prefix}/lib
1052includedir=${prefix}/include
1053
1054Name: TinyXML
1055Description: A simple, small, C++ XML parser
1056Version: ~a
1057Libs: -L${libdir} -ltinyxml
1058Cflags: -I${includedir}
1059"
1060 out ,version)))
1061 ;; Install docs.
1062 (mkdir-p doc)
1063 (copy-recursively "docs" (string-append doc "tinyxml"))
1064 #t))))))
1065 (synopsis "Small XML parser for C++")
1066 (description "TinyXML is a small and simple XML parsing library for the
05077200 1067C++ programming language.")
33ae9107
DT
1068 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
1069 (license license:zlib)))
fe9451c5 1070
931bd7f6
TGR
1071(define-public tinyxml2
1072 (package
1073 (name "tinyxml2")
1074 (version "4.0.1")
1075 (source
1076 (origin
1077 (method url-fetch)
1078 (uri (string-append "https://github.com/leethomason/tinyxml2/archive/"
1079 version ".tar.gz"))
29a39054 1080 (file-name (string-append name "-" version ".tar.gz"))
931bd7f6 1081 (sha256
29a39054
EF
1082 (base32
1083 "083z4r4khcndxi9k840lcr48sqxvar4gpsnf749xfdn1bkr8xcql"))))
931bd7f6
TGR
1084 (build-system cmake-build-system)
1085 (arguments
1086 `(#:tests? #f)) ; no tests
1087 (synopsis "Small XML parser for C++")
1088 (description "TinyXML2 is a small and simple XML parsing library for the
1089C++ programming language.")
1090 (home-page "http://www.grinninglizard.com/tinyxml2/")
1091 (license license:zlib)))
1092
fe9451c5
RG
1093(define-public xmlstarlet
1094 (package
1095 (name "xmlstarlet")
1096 (version "1.6.1")
1097 (source
1098 (origin
1099 (method url-fetch)
1100 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
1101 version "/xmlstarlet-" version ".tar.gz"))
1102 (sha256
1103 (base32
1104 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
1105 (build-system gnu-build-system)
22ea0235
MB
1106 (arguments
1107 '(#:phases
1108 (modify-phases %standard-phases
1109 (add-before 'check 'drop-failing-tests
1110 (lambda _
1111 ;; FIXME: Why are these tests failing.
1112 (substitute* "Makefile"
1113 (("^examples/schema1\\\\") "\\")
1114 (("^examples/valid1\\\\") "\\"))
1115 #t)))))
fe9451c5
RG
1116 (inputs
1117 `(("libxslt" ,libxslt)
1118 ("libxml2" ,libxml2)))
1119 (home-page "http://xmlstar.sourceforge.net/")
1120 (synopsis "Command line XML toolkit")
1121 (description "XMLStarlet is a set of command line utilities which can be
1122used to transform, query, validate, and edit XML documents. XPath is used to
1123match and extract data, and elements can be added, deleted or modified using
1124XSLT and EXSLT.")
1125 (license license:x11)))
19c33040 1126
767d24e8
SR
1127(define-public html-xml-utils
1128 (package
1129 (name "html-xml-utils")
4fab0da0 1130 (version "7.7")
767d24e8
SR
1131 (source
1132 (origin
1133 (method url-fetch)
1134 (uri (string-append
1135 "https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-"
1136 version ".tar.gz"))
1137 (sha256
1138 (base32
4fab0da0 1139 "1vwqp5q276j8di9zql3kygf31z2frp2c59yjqlrvvwcvccvkcdwr"))))
767d24e8
SR
1140 (build-system gnu-build-system)
1141 (home-page "https://www.w3.org/Tools/HTML-XML-utils/")
1142 (synopsis "Command line utilities to manipulate HTML and XML files")
1143 (description "HTML-XML-utils provides a number of simple utilities for
1144manipulating and converting HTML and XML files in various ways. The suite
1145consists of the following tools:
1146
1147@itemize
1148 @item @command{asc2xml} convert from @code{UTF-8} to @code{&#nnn;} entities
1149 @item @command{xml2asc} convert from @code{&#nnn;} entities to @code{UTF-8}
1150 @item @command{hxaddid} add IDs to selected elements
1151 @item @command{hxcite} replace bibliographic references by hyperlinks
1152 @item @command{hxcite} mkbib - expand references and create bibliography
1153 @item @command{hxclean} apply heuristics to correct an HTML file
1154 @item @command{hxcopy} copy an HTML file while preserving relative links
1155 @item @command{hxcount} count elements and attributes in HTML or XML files
1156 @item @command{hxextract} extract selected elements
1157 @item @command{hxincl} expand included HTML or XML files
1158 @item @command{hxindex} create an alphabetically sorted index
1159 @item @command{hxmkbib} create bibliography from a template
1160 @item @command{hxmultitoc} create a table of contents for a set of HTML files
1161 @item @command{hxname2id} move some @code{ID=} or @code{NAME=} from A
1162elements to their parents
1163 @item @command{hxnormalize} pretty-print an HTML file
1164 @item @command{hxnsxml} convert output of hxxmlns back to normal XML
1165 @item @command{hxnum} number section headings in an HTML file
1166 @item @command{hxpipe} convert XML to a format easier to parse with Perl or AWK
1167 @item @command{hxprintlinks} number links and add table of URLs at end of an HTML file
1168 @item @command{hxprune} remove marked elements from an HTML file
1169 @item @command{hxref} generate cross-references
1170 @item @command{hxselect} extract elements that match a (CSS) selector
1171 @item @command{hxtoc} insert a table of contents in an HTML file
1172 @item @command{hxuncdata} replace CDATA sections by character entities
1173 @item @command{hxunent} replace HTML predefined character entities to @code{UTF-8}
1174 @item @command{hxunpipe} convert output of pipe back to XML format
1175 @item @command{hxunxmlns} replace \"global names\" by XML Namespace prefixes
1176 @item @command{hxwls} list links in an HTML file
1177 @item @command{hxxmlns} replace XML Namespace prefixes by \"global names\"
1178@end itemize
1179")
1180 (license license:expat)))
1181
19c33040
JN
1182(define-public xlsx2csv
1183 (package
1184 (name "xlsx2csv")
1185 (version "0.7.2")
1186 (source (origin
1187 (method url-fetch)
1188 (uri (string-append
1189 "https://github.com/dilshod/"
1190 name "/archive/release/" version ".tar.gz"))
1191 (file-name (string-append name "-" version ".tar.gz"))
1192 (sha256
1193 (base32
1194 "1gpn6kaa7l1ai8c9zx2j3acf04bvxq79pni8jjfjrk01smjbyyql"))))
1195 (build-system python-build-system)
1196 (arguments
1197 `(#:python ,python-2 ; Use python-2 for the test script.
1198 #:phases
1199 (modify-phases %standard-phases
1200 (replace 'check
1201 (lambda _
1202 (substitute* "test/run"
1203 ;; Run tests with `python' only
1204 (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
1205 (zero? (system* "test/run")))))))
1206 (home-page "https://github.com/dilshod/xlsx2csv")
1207 (synopsis "XLSX to CSV converter")
1208 (description
1209 "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
1210XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
1211files. It is designed to be fast and to handle large input files.")
1212 (license license:gpl2+)))
d2b51c08 1213
1214(define-public python-defusedxml
1215 (package
1216 (name "python-defusedxml")
ca6197dd 1217 (version "0.5.0")
d2b51c08 1218 (source
1219 (origin
1220 (method url-fetch)
1221 (uri (pypi-uri "defusedxml" version))
1222 (sha256
1223 (base32
ca6197dd 1224 "1x54n0h8hl92vvwyymx883fbqpqjwn2mc8fb383bcg3z9zwz5mr4"))))
d2b51c08 1225 (build-system python-build-system)
1226 (home-page "https://bitbucket.org/tiran/defusedxml")
1227 (synopsis "XML bomb protection for Python stdlib modules")
1228 (description
1229 "Defusedxml provides XML bomb protection for Python stdlib modules.")
1230 (license license:psfl)))
1231
1232(define-public python2-defusedxml
1233 (package-with-python2 python-defusedxml))
ca8f3f9a
AP
1234
1235(define-public libxls
1236 (package
1237 (name "libxls")
1238 (version "1.4.0")
1239 (source (origin
1240 (method url-fetch)
1241 (uri (string-append "https://sourceforge.net/projects/"
1242 name "/files/" name "-"
1243 version ".zip"))
1244 (sha256
1245 (base32
1246 "1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk"))))
1247 (build-system gnu-build-system)
1248 (arguments
1249 `(#:phases
1250 (modify-phases %standard-phases
1251 ;; Bootstrapping is required in order to fix the test driver script.
189be331 1252 (replace 'bootstrap
ca8f3f9a
AP
1253 (lambda _
1254 (zero? (system* "bash" "bootstrap")))))))
1255 (native-inputs
1256 `(("unzip" ,unzip)
1257 ("autoconf" ,autoconf)
1258 ("automake" ,automake)
1259 ("libtool" ,libtool)))
1260 (home-page "http://libxls.sourceforge.net/")
1261 (synopsis "Read Excel files")
1262 (description
1263 "libxls is a C library which can read Excel (xls) files since Excel 97 (the BIFF8 format).
1264libxls cannot write Excel files.")
1265 (license license:bsd-2)))
623fb4d1
AP
1266
1267(define-public freexl
1268 (package
1269 (name "freexl")
5275f69e 1270 (version "1.0.5")
623fb4d1
AP
1271 (source (origin
1272 (method url-fetch)
1273 (uri (string-append "http://www.gaia-gis.it/gaia-sins/"
1274 name "-" version ".tar.gz"))
1275 (sha256
1276 (base32
5275f69e 1277 "03bmwq6hngmzwpqpb7c2amqlspz4q69iv96nlf0f5c0qs98b3j9x"))))
623fb4d1
AP
1278 (build-system gnu-build-system)
1279 (home-page "https://www.gaia-gis.it/fossil/freexl/index")
1280 (synopsis "Read Excel files")
1281 (description
1282 "FreeXL is a C library to extract valid data from within an Excel (.xls)
1283spreadsheet.")
1284 ;; Any of these licenses may be picked.
1285 (license (list license:gpl2+
1286 license:lgpl2.1+
1287 license:mpl1.1))))
d00d6cea
RW
1288
1289(define-public xerces-c
1290 (package
1291 (name "xerces-c")
1292 (version "3.1.4")
1293 (source (origin
1294 (method url-fetch)
1295 (uri (string-append "mirror://apache/xerces/c/3/sources/"
1296 "xerces-c-" version ".tar.xz"))
1297 (sha256
1298 (base32
1299 "0hb29c0smqlpxj0zdm09s983z5jx37szlliccnvgh0qq91wwqwwr"))))
1300 (build-system gnu-build-system)
1301 (arguments
1302 (let ((system (or (%current-target-system)
1303 (%current-system))))
1304 (if (string-prefix? "x86_64" system)
1305 '()
1306 '(#:configure-flags '("--disable-sse2")))))
1307 (native-inputs
1308 `(("perl" ,perl)))
1309 (home-page "http://xerces.apache.org/xerces-c/")
1310 (synopsis "Validating XML parser library for C++")
1311 (description "Xerces-C++ is a validating XML parser written in a portable
1312subset of C++. Xerces-C++ makes it easy to give your application the ability
1313to read and write XML data. A shared library is provided for parsing,
1314generating, manipulating, and validating XML documents using the DOM, SAX, and
1315SAX2 APIs.")
1316 (license license:asl2.0)))
77d7b57c
RW
1317
1318(define-public java-simple-xml
1319 (package
1320 (name "java-simple-xml")
1321 (version "2.7.1")
1322 (source (origin
1323 (method url-fetch)
1324 (uri (string-append "mirror://sourceforge/simple/simple-xml-"
1325 version ".zip"))
1326 (sha256
1327 (base32
3c274149
GB
1328 "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
1329 (patches (search-patches "java-simple-xml-fix-tests.patch"))))
77d7b57c
RW
1330 (build-system ant-build-system)
1331 (arguments
1332 `(#:build-target "build"
1333 #:test-target "test"
1334 #:phases
1335 (modify-phases %standard-phases
1336 (replace 'install (install-jars "jar")))))
1337 (native-inputs
1338 `(("unzip" ,unzip)))
1339 (home-page "http://simple.sourceforge.net/")
1340 (synopsis "XML serialization framework for Java")
1341 (description "Simple is a high performance XML serialization and
1342configuration framework for Java. Its goal is to provide an XML framework
1343that enables rapid development of XML configuration and communication systems.
1344This framework aids the development of XML systems with minimal effort and
1345reduced errors. It offers full object serialization and deserialization,
1346maintaining each reference encountered.")
1347 (license license:asl2.0)))
3b695802
P
1348
1349(define-public perl-xml-xpathengine
1350 (package
1351 (name "perl-xml-xpathengine")
1352 (version "0.14")
1353 (source (origin
1354 (method url-fetch)
1355 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1356 "XML-XPathEngine-" version ".tar.gz"))
1357 (sha256
1358 (base32
1359 "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
1360 (build-system perl-build-system)
9aba9b12 1361 (home-page "https://metacpan.org/release/XML-XPathEngine")
3b695802
P
1362 (synopsis "Re-usable XPath engine for DOM-like trees")
1363 (description
1364 "This module provides an XPath engine, that can be re-used by other
1365modules/classes that implement trees.
1366
1367In order to use the XPath engine, nodes in the user module need to mimick DOM
1368nodes. The degree of similitude between the user tree and a DOM dictates how
1369much of the XPath features can be used. A module implementing all of the DOM
1370should be able to use this module very easily (you might need to add the
1371@code{cmp} method on nodes in order to get ordered result sets).")
1372 (license license:perl-license)))
9e1c3581
P
1373
1374(define-public perl-tree-xpathengine
1375 (package
1376 (name "perl-tree-xpathengine")
1377 (version "0.05")
1378 (source (origin
1379 (method url-fetch)
1380 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1381 "Tree-XPathEngine-" version ".tar.gz"))
1382 (sha256
1383 (base32
1384 "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
1385 (build-system perl-build-system)
9aba9b12 1386 (home-page "https://metacpan.org/release/Tree-XPathEngine")
9e1c3581
P
1387 (synopsis "Re-usable XPath engine")
1388 (description
1389 "This module provides an XPath engine, that can be re-used by other
1390module/classes that implement trees. It is designed to be compatible with
1391@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
1392by @code{Tree::XPathEngine}.")
1393 (license license:perl-license)))
b7c59195
P
1394
1395(define-public perl-xml-filter-buffertext
1396 (package
1397 (name "perl-xml-filter-buffertext")
1398 (version "1.01")
1399 (source
1400 (origin
1401 (method url-fetch)
1402 (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
1403 "XML-Filter-BufferText-" version ".tar.gz"))
1404 (sha256
1405 (base32
1406 "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
1407 (build-system perl-build-system)
1408 (propagated-inputs
1409 `(("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1410 (home-page "https://metacpan.org/release/XML-Filter-BufferText")
b7c59195
P
1411 (synopsis "Filter to put all characters() in one event")
1412 (description "This is a very simple filter. One common cause of
1413grief (and programmer error) is that XML parsers aren't required to provide
1414character events in one chunk. They can, but are not forced to, and most
1415don't. This filter does the trivial but oft-repeated task of putting all
1416characters into a single event.")
1417 (license license:perl-license)))
33b592ee
P
1418
1419(define-public perl-xml-sax-writer
1420 (package
1421 (name "perl-xml-sax-writer")
1422 (version "0.57")
1423 (source (origin
1424 (method url-fetch)
1425 (uri (string-append
1426 "mirror://cpan/authors/id/P/PE/PERIGRIN/"
1427 "XML-SAX-Writer-" version ".tar.gz"))
1428 (sha256
1429 (base32
1430 "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
1431 (build-system perl-build-system)
1432 (propagated-inputs
1433 `(("perl-libxml" ,perl-libxml)
1434 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
c695fb76 1435 ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
33b592ee 1436 ("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1437 (home-page "https://metacpan.org/release/XML-SAX-Writer")
33b592ee
P
1438 (synopsis "SAX2 XML Writer")
1439 (description
1440 "This is an XML writer that understands SAX2. It is based on
1441@code{XML::Handler::YAWriter}.")
1442 (license license:perl-license)))
9e88b210
P
1443
1444(define-public perl-xml-handler-yawriter
1445 (package
1446 (name "perl-xml-handler-yawriter")
1447 (version "0.23")
1448 (source
1449 (origin
1450 (method url-fetch)
1451 (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
1452 "XML-Handler-YAWriter-" version ".tar.gz"))
1453 (sha256
1454 (base32
1455 "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
1456 (build-system perl-build-system)
1457 (propagated-inputs
1458 `(("perl-libxml" ,perl-libxml)))
9aba9b12 1459 (home-page "https://metacpan.org/release/XML-Handler-YAWriter")
9e88b210
P
1460 (synopsis "Yet another Perl SAX XML Writer")
1461 (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
1462It provides a flexible escaping technique and pretty printing.")
1463 (license license:perl-license)))
85f225fb
P
1464
1465(define-public perl-xml-twig
1466 (package
1467 (name "perl-xml-twig")
1468 (version "3.52")
1469 (source (origin
1470 (method url-fetch)
1471 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1472 "XML-Twig-" version ".tar.gz"))
1473 (sha256
1474 (base32
1475 "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
1476 (build-system perl-build-system)
1477 (inputs
1478 `(("expat" ,expat)))
1479 (propagated-inputs
1480 `(("perl-html-tidy" ,perl-html-tidy)
1481 ("perl-html-tree" ,perl-html-tree)
1482 ("perl-io-captureoutput" ,perl-io-captureoutput)
1483 ("perl-io-string" ,perl-io-string)
1484 ("perl-io-stringy" ,perl-io-stringy)
1485 ("perl-libxml" ,perl-libxml)
1486 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
1487 ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
1488 ("perl-xml-parser" ,perl-xml-parser)
1489 ("perl-xml-sax-writer" ,perl-xml-sax-writer)
1490 ("perl-xml-simple" ,perl-xml-simple)
1491 ("perl-xml-xpathengine" ,perl-xml-xpathengine)
c695fb76 1492 ("perl-test-pod" ,perl-test-pod)
85f225fb 1493 ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
9aba9b12 1494 (home-page "https://metacpan.org/release/XML-Twig")
85f225fb
P
1495 (synopsis "Perl module for processing huge XML documents in tree mode")
1496 (description "@code{XML::Twig} is an XML transformation module. Its
1497strong points: can be used to process huge documents while still being in tree
1498mode; not bound by DOM or SAX, so it is very perlish and offers a very
1499comprehensive set of methods; simple to use; DWIMs as much as possible.
1500
1501What it doesn't offer: full SAX support (it can export SAX, but only reads
1502XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
1503support.")
1504 (license license:perl-license)))
1a17ca26
JL
1505
1506;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
1507;; xml-apis.jar and xml-apis-1.4.01.jar.
1508(define-public java-jaxp
1509 (package
1510 (name "java-jaxp")
1511 (version "1.4.01")
1512 (source
1513 (origin
1514 (method url-fetch)
1515 (uri (string-append "mirror://apache/xerces/xml-commons/source/"
1516 "xml-commons-external-" version "-src.tar.gz"))
1517 (sha256
1518 (base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
1519 (build-system ant-build-system)
1520 (arguments
1521 `(#:jar-name "jaxp.jar"
1522 #:jdk ,icedtea-8
1523 #:source-dir ".."
1524 #:tests? #f)); no tests
1525 (home-page "http://xerces.apache.org/xml-commons/")
1526 (synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
1527 (description "Jaxp from the Apache XML Commons project is used by
1528the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
1529
1530@itemize
1531@item Document Object Model (DOM)
1532@item Simple API for XML (SAX)
1533@item Java APIs for XML Processing (JAXP)
1534@item Transformation API for XML (TrAX)
1535@item Document Object Model (DOM) Load and Save
1536@item JSR 206 Java API for XML Processing
1537@end itemize")
1538 (license (list license:asl2.0
1539 license:w3c ;; Files under org.w3c
1540 license:public-domain)))) ;; org.xml.sax
9a86ee78
JL
1541
1542(define-public java-apache-xml-commons-resolver
1543 (package
1544 (name "java-apache-xml-commons-resolver")
1545 (version "1.2")
1546 (source
1547 (origin
1548 (method url-fetch)
1549 (uri (string-append "mirror://apache/xerces/xml-commons/"
1550 "xml-commons-resolver-" version ".tar.gz"))
1551 (sha256
1552 (base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
1553 (modules '((guix build utils)))
1554 (snippet
1555 '(begin
1556 (for-each delete-file (find-files "." ".*\\.(jar|zip)"))
1557 #t))))
1558 (build-system ant-build-system)
1559 (arguments
1560 `(#:jar-name (string-append "xml-resolver.jar")
1561 #:tests? #f)); no tests
1562 (inputs
1563 `(("java-junit" ,java-junit)))
1564 (home-page "http://xerces.apache.org/xml-commons/")
1565 (synopsis "Catalog-based entity and URI resolution")
1566 (description "The resolver class implements the full semantics of OASIS Technical
1567Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
15682001 Committee Specification of OASIS XML Catalogs.
1569
1570It also includes a framework of classes designed to read catalog files
1571in a number of formats:
1572
1573@itemize
1574@item The plain-text flavor described by TR9401.
1575@item The XCatalog XML format defined by John Cowan
1576@item The XML Catalog format defined by the OASIS Entity Resolution
1577 Technical Committee.
1578@end itemize")
1579 (license license:asl2.0)))
7eae94d8
JL
1580
1581;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
1582;; This package is a bootstrap version without dependencies on dom4j and xom.
1583(define java-jaxen-bootstrap
1584 (package
1585 (name "java-jaxen-bootstrap")
1586 (version "1.1.6")
1587 (source (origin
1588 (method url-fetch)
1589 ;; No release on github
1590 (uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
1591 version "/jaxen-" version "-sources.jar"))
1592 (sha256
1593 (base32
1594 "18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
1595 (build-system ant-build-system)
1596 (arguments
1597 `(#:jar-name "jaxen.jar"
1598 #:source-dir "src"
1599 #:tests? #f; no tests
1600 #:phases
1601 (modify-phases %standard-phases
1602 (add-before 'build 'remove-dom4j
1603 (lambda _
1604 (delete-file-recursively "src/org/jaxen/dom4j")
1605 (delete-file-recursively "src/org/jaxen/xom")
1606 #t)))))
1607 (inputs
1608 `(("java-jdom" ,java-jdom)))
1609 (home-page "https://github.com/jaxen-xpath/jaxen")
1610 (synopsis "XPath library")
1611 (description "Jaxen is an XPath library written in Java. It is adaptable
1612to many different object models, including DOM, XOM, dom4j, and JDOM. It is
1613also possible to write adapters that treat non-XML trees such as compiled
1614Java byte code or Java beans as XML, thus enabling you to query these trees
1615with XPath too.")
1616 (license license:bsd-3)))
5552080d 1617
be0524f4
JL
1618(define-public java-jaxen
1619 (package
1620 (inherit java-jaxen-bootstrap)
1621 (name "java-jaxen")
1622 (inputs
1623 `(("java-jdom" ,java-jdom)
1624 ("java-xom" ,java-xom)
1625 ("java-dom4j" ,java-dom4j)))))
1626
5552080d
JL
1627(define-public java-xom
1628 (package
1629 (name "java-xom")
1630 (version "127")
1631 (source (origin
1632 (method url-fetch)
1633 (uri (string-append "https://github.com/elharo/xom/archive/XOM_"
1634 version ".tar.gz"))
1635 (sha256
1636 (base32
1637 "04m69db1irqja12a9rfxrac8cbn9psqa1k136wh4ls4pxfsdr5wg"))
1638 (modules '((guix build utils)))
1639 (snippet
1640 '(begin
1641 (for-each delete-file
1642 (find-files "." "\\.jar$"))
1643 #t))))
1644 (build-system ant-build-system)
1645 (arguments
1646 `(#:jar-name "xom.jar"
1647 #:jdk ,icedtea-8
1648 #:tests? #f; no tests
1649 #:phases
1650 (modify-phases %standard-phases
1651 (add-before 'configure 'fix-tagsoup-dep
1652 (lambda _
1653 ;; FIXME: Where is tagsoup source?
1654 (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
1655 #t)))))
1656 (inputs
1657 `(("java-jdom" ,java-jdom)
1658 ("java-junit" ,java-junit)
1659 ("java-classpathx-servletapi" ,java-classpathx-servletapi)
1660 ("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1661 ("java-xerces" ,java-xerces)))
1662 (home-page "https://xom.nu/")
1663 (synopsis "XML Object Model")
1664 (description "XOM is a new XML Object Model for processing XML with Java
1665that strives for correctness and simplicity.")
1666 ;; 2.1 only
1667 (license license:lgpl2.1)))
96f31935
JL
1668
1669(define-public java-xsdlib
1670 (package
1671 (name "java-xsdlib")
1672 (version "2013.2")
1673 (source (origin
1674 (method url-fetch)
1675 (uri (string-append "http://central.maven.org/maven2/com/sun/msv/"
1676 "datatype/xsd/xsdlib/" version "/xsdlib-"
1677 version "-sources.jar"))
1678 (sha256
1679 (base32
1680 "185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
1681 (build-system ant-build-system)
1682 (arguments
1683 `(#:tests? #f; no tests
1684 #:jar-name "xsdlib.jar"
1685 #:jdk ,icedtea-8))
1686 (inputs
1687 `(("java-xerces" ,java-xerces)))
1688 (home-page "http://central.maven.org/maven2/com/sun/msv/datatype/xsd/xsdlib/")
1689 (synopsis "Sun Multi-Schema Validator")
1690 (description "Xsdlib contains an implementation of sun.com.msv, an XML
1691validator.")
1692 (license license:bsd-2)))
82d7d4e1
JL
1693
1694(define-public java-xpp3
1695 (package
1696 (name "java-xpp3")
1697 (version "1.1.4")
1698 (source (origin
1699 (method url-fetch)
1700 (uri (string-append "http://www.extreme.indiana.edu/dist/"
1701 "java-repository/xpp3/distributions/xpp3-"
1702 version "_src.tgz"))
1703 (sha256
1704 (base32
1705 "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
1706 (modules '((guix build utils)))
1707 (snippet
1708 '(begin ;; Delete bundled jar archives.
1709 (for-each delete-file (find-files "." ".*\\.jar"))
1710 #t))))
1711 (build-system ant-build-system)
1712 (arguments
1713 `(#:tests? #f; no tests
1714 #:build-target "jar"
1715 #:phases
1716 (modify-phases %standard-phases
1717 (replace 'install (install-jars "build")))))
1718 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1719 (synopsis "Streaming pull XML parser")
1720 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1721parser and should be used when there is a need to process quickly and
1722efficiently all input elements (for example in SOAP processors). This
1723package is a stable XmlPull parsing engine that is based on ideas from XPP
1724and in particular XPP2 but completely revised and rewritten to take the best
1725advantage of JIT JVMs.")
1726 (license (license:non-copyleft "file://LICENSE.txt"))))
9421f682
JL
1727
1728(define-public java-xmlpull2
1729 (package
1730 (name "java-xmlpull2")
1731 (version "2.1.10")
1732 (source (origin
1733 (method url-fetch)
1734 (uri (string-append "http://www.extreme.indiana.edu/xgws/xsoap/"
1735 "PullParser/PullParser" version ".tgz"))
1736 (sha256
1737 (base32
1738 "1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
1739 (modules '((guix build utils)))
1740 (snippet
1741 '(begin ;; Delete bundled jar archives.
1742 (for-each delete-file (find-files "." ".*\\.jar"))
1743 #t))))
1744 (build-system ant-build-system)
1745 (arguments
1746 `(#:tests? #f; no tests
1747 #:build-target "impl"
1748 #:phases
1749 (modify-phases %standard-phases
1750 (replace 'install (install-jars "build/lib")))))
1751 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1752 (synopsis "Streaming pull XML parser")
1753 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1754parser and should be used when there is a need to process quickly and
1755efficiently all input elements (for example in SOAP processors). This
1756package is in maintenance mode.")
1757 (license (license:non-copyleft "file:///LICENSE.txt"))))
605c23df
JL
1758
1759(define-public java-dom4j
1760 (package
1761 (name "java-dom4j")
1762 (version "2.1.0")
1763 (source (origin
1764 (method url-fetch)
1765 (uri (string-append "https://github.com/dom4j/dom4j/archive/"
1766 "version-" version ".tar.gz"))
1767 (file-name (string-append name "-" version ".tar.gz"))
1768 (sha256
1769 (base32
1770 "101drpnw6agmcvsi1jrfi0kn97r7liazrh5jbrip9vx26axn2fx9"))
1771 (modules '((guix build utils)))
1772 (snippet
1773 '(begin ;; Delete bundled jar archives.
1774 (for-each delete-file (find-files "." ".*\\.jar"))
1775 #t))))
1776 (build-system ant-build-system)
1777 (arguments
1778 `(#:jar-name "dom4j.jar"
1779 #:jdk ,icedtea-8
1780 #:source-dir "src/main/java"
1781 ;; FIXME: Requires xalan, but xalan depends on java-cup which has a
1782 ;; dependency on itself through jflex.
1783 #:tests? #f
1784 #:phases
1785 (modify-phases %standard-phases
1786 (add-before 'build 'copy-jaxen-sources
1787 ;; java-jaxen-bootstrap is not enough. These files have a circular
1788 ;; dependency and there is no subset of dom4j that would allow
1789 ;; breaking the circle.
1790 (lambda* (#:key inputs #:allow-other-keys)
1791 (mkdir-p "jaxen-sources")
1792 (with-directory-excursion "jaxen-sources"
1793 (system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
1794 (mkdir-p "src/main/java/org/jaxen/dom4j")
1795 (copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
1796 "src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
1797 (copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
1798 "src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
1799 #t))
1800 (add-before 'build 'fix-old-xpp2
1801 (lambda _
1802 ;; This package normally depends on xpp2 2.0, but version 2.1.10
1803 ;; is the only version whose source code is published.
1804 (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
1805 (("public void resetStartTag")
1806 "public boolean removeAttributeByRawName(String name) {\n
1807 return false;\n
1808}\n
1809public boolean removeAttributeByName(String name, String name2) {\n
1810 return false;\n
1811}\n\npublic void resetStartTag")
1812 (("Atttribute") "Attribute"))
1813 #t)))))
1814 (inputs
1815 `(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1816 ("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
1817 ("java-xmlpull2" ,java-xmlpull2)
1818 ("java-xpp3" ,java-xpp3)
1819 ("java-xsdlib" ,java-xsdlib)))
1820 (native-inputs
1821 `(("java-testng" ,java-testng)
1822 ("java-xerces" ,java-xerces)))
1823 (home-page "https://dom4j.github.io/")
1824 (synopsis "Flexible XML framework for Java")
1825 (description "Dom4j is a flexible XML framework for Java. DOM4J works
1826with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
1827low memory footprint.")
1828 ;; some BSD-like 5-clause license
1829 (license (license:non-copyleft "file://LICENSE"))))
3058d8ec
JL
1830
1831(define-public java-kxml2
1832 (package
1833 (name "java-kxml2")
1834 (version "2.4.2")
1835 (source (origin
1836 (method url-fetch)
1837 (uri (string-append "https://github.com/stefanhaustein/kxml2/archive/v"
1838 version ".tar.gz"))
1839 (file-name (string-append name "-" version ".tar.gz"))
1840 (sha256
1841 (base32
1842 "17kh04qf3vll1xx6sv06xlazw2hxa8qdmzyday9r6z2191jlj74w"))))
1843 (build-system ant-build-system)
1844 (arguments
1845 `(#:jar-name "kxml2.jar"
1846 #:source-dir "src/main/java"
1847 #:test-include (list "TestWb.java")
1848 ;; Test failure: it was expected to get an XML entity but got the
1849 ;; equivalent Unicode character instead.
1850 #:tests? #f
1851 #:phases
1852 (modify-phases %standard-phases
1853 (add-before 'build 'copy-resources
1854 (lambda _
1855 (copy-recursively "src/main/resources" "build/classes"))))))
1856 (inputs
1857 `(("java-xpp3" ,java-xpp3)))
1858 (native-inputs
1859 `(("java-junit" ,java-junit)))
1860 (home-page "http://kxml.org")
1861 (synopsis "XML pull parser")
1862 (description "kXML is a small XML pull parser, specially designed for
1863constrained environments such as Applets, Personal Java or devices compliant
1864with the Mobile Information Device Profile (MIDP).")
1865 (license license:expat)))
4c7759f0
JL
1866
1867(define-public java-stax
1868 (package
1869 (name "java-stax")
1870 (version "1.2.0")
1871 (source (origin
1872 (method url-fetch)
1873 (uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
1874 version "/stax-" version "-sources.jar"))
1875 (sha256
1876 (base32
1877 "04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
1878 (build-system ant-build-system)
1879 (arguments
1880 `(#:jar-name "stax.jar"
1881 #:tests? #f; no tests
1882 #:phases
1883 (modify-phases %standard-phases
1884 (add-before 'configure 'fix-utf8
1885 (lambda _
1886 ;; This file is ISO-8859-1 but java expects UTF-8.
1887 ;; Remove special characters in comments.
1888 (with-fluids ((%default-port-encoding "ISO-8859-1"))
1889 (substitute* "src/com/wutka/dtd/Scanner.java"
1890 (("//.*") "\n")))
1891 #t)))))
1892 (home-page "https://repo1.maven.org/maven2/stax/stax/")
1893 (synopsis "Streaming API for XML")
1894 (description "This package provides the reference implementation of the
1895@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
1896and from a Java application. It provides a standard pull parser interface.")
1897 (license license:asl2.0)))
b8798817
JL
1898
1899(define-public java-jettison
1900 (package
1901 (name "java-jettison")
1902 (version "1.3.7")
1903 (source (origin
1904 (method url-fetch)
1905 (uri (string-append "https://github.com/codehaus/jettison/archive/"
1906 "jettison-" version ".tar.gz"))
1907 (sha256
1908 (base32
1909 "0rdhfyxywvga5wiwasc04iqnxyixn3rd8wj01c9ymhvwc3h6dpqg"))))
1910 (build-system ant-build-system)
1911 (arguments
1912 `(#:jar-name "jettison.jar"
1913 #:source-dir "src/main/java"
1914 #:test-exclude (list "**/Abstract*.java"
1915 ;; Abstract classes
1916 "**/DOMTest.java"
1917 "**/BadgerFishDOMTest.java"
1918 "**/MappedDOMTest.java")))
1919 (native-inputs
1920 `(("java-junit" ,java-junit)))
1921 (home-page "https://github.com/codehaus/jettison")
1922 (synopsis "StAX implementation for JSON")
1923 (description "Jettison is a Java library for converting XML to JSON and
1924vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
1925implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
1926@code{Mapped} and @code{BadgerFish} conventions.")
1927 (license license:asl2.0)))
a5ec8a5c
JL
1928
1929(define-public java-jdom2
1930 (package
1931 (name "java-jdom")
1932 (version "2.0.6")
1933 (source (origin
1934 (method url-fetch)
1935 (uri (string-append "https://github.com/hunterhacker/jdom/archive/JDOM-"
1936 version ".tar.gz"))
1937 (sha256
1938 (base32
1939 "0p8n7inqq2a25wk9ljinl3ixlx1x2la9qaman8ngd75xxjb02yc1"))))
1940 (build-system ant-build-system)
1941 (arguments
1942 `(#:build-target "package"
1943 #:tests? #f; tests are run as part of the build process
1944 #:phases
1945 (modify-phases %standard-phases
1946 (replace 'install
1947 (install-jars "build")))))
1948 (home-page "http://jdom.org/")
1949 (synopsis "Access, manipulate, and output XML data")
1950 (description "Jdom is a Java-based solution for accessing, manipulating, and
1951outputting XML data from Java code.")
1952 (license license:bsd-4)))
5ee7b02f
JL
1953
1954(define-public java-xstream
1955 (package
1956 (name "java-xstream")
1957 (version "1.4.10")
1958 (source (origin
1959 (method url-fetch)
1960 (uri (string-append
1961 "https://github.com/x-stream/xstream/archive/XSTREAM_"
1962 (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
1963 ".tar.gz"))
1964 (file-name (string-append name "-" version ".tar.gz"))
1965 (sha256
1966 (base32
1967 "10zbkam05wirxipvgrjimdwsyqrwl4a0n7lhvxbsssqpv727469g"))))
1968 (build-system ant-build-system)
1969 (arguments
1970 `(#:jar-name "xstream.jar"
1971 ;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system
1972 #:tests? #f
1973 #:jdk ,icedtea-8
1974 #:source-dir "xstream/src/java"))
1975 (inputs
1976 `(("java-jdom" ,java-jdom)
1977 ("java-jdom2" ,java-jdom2)
1978 ("java-cglib" ,java-cglib)
1979 ("java-joda-time" ,java-joda-time)
1980 ("java-jettison" ,java-jettison)
1981 ("java-xom" ,java-xom)
1982 ("java-xpp3" ,java-xpp3)
1983 ("java-dom4j" ,java-dom4j)
1984 ("java-stax2-api" ,java-stax2-api)
1985 ("java-woodstox-core" ,java-woodstox-core)
1986 ("java-kxml2" ,java-kxml2)
1987 ("java-stax" ,java-stax)))
1988 (home-page "https://x-stream.github.io")
1989 (synopsis "XML serialization library")
1990 (description "XStream is a simple library to serialize Java objects to XML
1991and back again.")
1992 (license license:bsd-3)))
5c1cf7f3
RW
1993
1994(define-public ghc-hxt-charproperties
1995 (package
1996 (name "ghc-hxt-charproperties")
1997 (version "9.2.0.1")
1998 (source
1999 (origin
2000 (method url-fetch)
2001 (uri (string-append "https://hackage.haskell.org/package/"
2002 "hxt-charproperties/hxt-charproperties-"
2003 version ".tar.gz"))
2004 (sha256
2005 (base32
2006 "1mml8wglvagqq891rchgli6r8rnkwrqhgsxfl6kb5403pzb18rp4"))))
2007 (build-system haskell-build-system)
2008 (home-page "https://github.com/UweSchmidt/hxt")
2009 (synopsis "Character properties and classes for XML and Unicode")
2010 (description
2011 "The modules provided by this package contain predicates for Unicode
2012blocks and char properties and character predicates defined by XML. The
2013supported Unicode version is 7.0.0")
2014 (license license:expat)))
2015
e85de108
RW
2016(define-public ghc-hxt-unicode
2017 (package
2018 (name "ghc-hxt-unicode")
2019 (version "9.0.2.4")
2020 (source
2021 (origin
2022 (method url-fetch)
2023 (uri (string-append
2024 "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
2025 version
2026 ".tar.gz"))
2027 (sha256
2028 (base32
2029 "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
2030 (build-system haskell-build-system)
2031 (inputs
2032 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
2033 (home-page
2034 "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
2035 (synopsis
2036 "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
2037 (description
2038 "This package provides Unicode encoding and decoding functions for
2039encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
2040are supported. Decoding is done with lazy functions, errors may be detected or
2041ignored.")
2042 (license license:expat)))
2043
6f8deed6
RW
2044(define-public ghc-hxt-regex-xmlschema
2045 (package
2046 (name "ghc-hxt-regex-xmlschema")
2047 (version "9.2.0.3")
2048 (source
2049 (origin
2050 (method url-fetch)
2051 (uri (string-append "https://hackage.haskell.org/package/"
2052 "hxt-regex-xmlschema/hxt-regex-xmlschema-"
2053 version ".tar.gz"))
2054 (sha256
2055 (base32
2056 "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
2057 (build-system haskell-build-system)
2058 (inputs
2059 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
2060 ("ghc-parsec" ,ghc-parsec)
2061 ("ghc-text" ,ghc-text)
2062 ("ghc-hunit" ,ghc-hunit)))
2063 (home-page "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema")
2064 (synopsis "Regular expression library for W3C XML Schema regular expressions")
2065 (description
2066 "This library supports full W3C XML Schema regular expressions inclusive
2067all Unicode character sets and blocks. It is implemented by the technique of
2068derivations of regular expressions.")
2069 (license license:expat)))
2070
31511899
RW
2071(define-public ghc-hxt
2072 (package
2073 (name "ghc-hxt")
2074 (version "9.3.1.16")
2075 (source
2076 (origin
2077 (method url-fetch)
2078 (uri (string-append
2079 "https://hackage.haskell.org/package/hxt/hxt-"
2080 version
2081 ".tar.gz"))
2082 (sha256
2083 (base32
2084 "1qq3ykgn355rx242xjcbqqksgvwr6k2fdj5phw4iv28qqxff6m8d"))))
2085 (build-system haskell-build-system)
2086 (inputs
2087 `(("ghc-parsec" ,ghc-parsec)
31511899
RW
2088 ("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
2089 ("ghc-hxt-unicode" ,ghc-hxt-unicode)
2090 ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
2091 ("ghc-network-uri" ,ghc-network-uri)))
2092 (home-page "https://github.com/UweSchmidt/hxt")
2093 (synopsis "Collection of tools for processing XML with Haskell")
2094 (description
2095 "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
2096introduces a more general approach for processing XML with Haskell.")
2097 (license license:expat)))