gnu: Add java-xmlpull-api-v1.
[jackhill/guix/guix.git] / gnu / packages / xml.scm
CommitLineData
d0414883 1;;; GNU Guix --- Functional package management for GNU
3a2efbc8 2;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019 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>
cc537187 6;;; Copyright © 2015, 2016, 2017, 2018, 2020 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>
3c986a7d 14;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
bafafa80 15;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
c950a2a5 16;;; Copyright © 2016, 2017, 2018, 2019, 2020 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>
2cce23bf 22;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
f85c8dd8 23;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
8fda8b7d 24;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
f2a53a4a 25;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
53657739 26;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
38e5bc92 27;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
b04198a1 28;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
c577b306 29;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
de99dc48 30;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
4490dff9 31;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
d0414883
LC
32;;;
33;;; This file is part of GNU Guix.
34;;;
35;;; GNU Guix is free software; you can redistribute it and/or modify it
36;;; under the terms of the GNU General Public License as published by
37;;; the Free Software Foundation; either version 3 of the License, or (at
38;;; your option) any later version.
39;;;
40;;; GNU Guix is distributed in the hope that it will be useful, but
41;;; WITHOUT ANY WARRANTY; without even the implied warranty of
42;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
43;;; GNU General Public License for more details.
44;;;
45;;; You should have received a copy of the GNU General Public License
46;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
47
1ffa7090 48(define-module (gnu packages xml)
f0444eaf 49 #:use-module (gnu packages)
53657739 50 #:use-module (gnu packages base)
0899144f 51 #:use-module (gnu packages autotools)
79a0eabd 52 #:use-module (gnu packages check)
322cbda7 53 #:use-module (gnu packages compression)
2cce23bf 54 #:use-module (gnu packages curl)
cc537187
RW
55 #:use-module (gnu packages docbook)
56 #:use-module (gnu packages documentation)
a34eafce 57 #:use-module (gnu packages gettext)
cc537187 58 #:use-module (gnu packages glib)
cc537187 59 #:use-module (gnu packages gnome)
72e20842 60 #:use-module (gnu packages gnupg)
cc537187 61 #:use-module (gnu packages graphviz)
72e20842 62 #:use-module (gnu packages gtk)
1a17ca26 63 #:use-module (gnu packages java)
aff0cce9 64 #:use-module (gnu packages nss)
f0444eaf 65 #:use-module (gnu packages perl)
5ccde207 66 #:use-module (gnu packages perl-check)
f0444eaf 67 #:use-module (gnu packages python)
a7fd7b68 68 #:use-module (gnu packages tls)
ad871fc6 69 #:use-module (gnu packages web)
b5b73a82 70 #:use-module ((guix licenses) #:prefix license:)
d0414883
LC
71 #:use-module (guix packages)
72 #:use-module (guix download)
3047c7ba 73 #:use-module (guix git-download)
77d7b57c 74 #:use-module (guix build-system ant)
6ce212b8 75 #:use-module (guix build-system cmake)
2a1e82bb 76 #:use-module (guix build-system gnu)
72e20842 77 #:use-module (guix build-system meson)
37f9ff63 78 #:use-module (guix build-system perl)
7ce32242 79 #:use-module (guix build-system python)
e4aab734
RW
80 #:use-module (gnu packages linux)
81 #:use-module (gnu packages pkg-config))
d0414883 82
72e20842
RG
83(define-public libxmlb
84 (package
85 (name "libxmlb")
86 (version "0.1.15")
87 (source
88 (origin
89 (method git-fetch)
90 (uri
91 (git-reference
8ed4c468 92 (url "https://github.com/hughsie/libxmlb")
72e20842
RG
93 (commit version)))
94 (file-name (git-file-name name version))
95 (sha256
96 (base32 "1mb73pnfwqc4mm0lm16yfn0lj495h8hcciprb2v6wgy3ifnnjxib"))))
97 (build-system meson-build-system)
98 (arguments
99 `(#:glib-or-gtk? #t))
100 (native-inputs
101 `(("gobject-introspection" ,gobject-introspection)
102 ("gtk-doc" ,gtk-doc)
103 ("pkg-config" ,pkg-config)))
104 (inputs
105 `(("appstream-glib" ,appstream-glib)
106 ("glib" ,glib)))
107 (synopsis "Library to help create and query binary XML blobs")
108 (description "Libxmlb library takes XML source, and converts it to a
109structured binary representation with a deduplicated string table; where the
110strings have the NULs included. This allows an application to mmap the binary
111XML file, do an XPath query and return some strings without actually parsing
112the entire document.")
113 (home-page "https://github.com/hughsie/libxmlb")
114 (license license:lgpl2.1+)))
115
d0414883
LC
116(define-public expat
117 (package
118 (name "expat")
6cd34029 119 (version "2.2.9")
f85c8dd8
JH
120 (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c))))
121 (origin
122 (method url-fetch)
123 (uri (list (string-append "mirror://sourceforge/expat/expat/"
fb9a23a3 124 version "/expat-" version ".tar.xz")
f85c8dd8
JH
125 (string-append
126 "https://github.com/libexpat/libexpat/releases/download/R_"
127 (string-map dot->underscore version)
fb9a23a3 128 "/expat-" version ".tar.xz")))
f85c8dd8
JH
129 (sha256
130 (base32
6cd34029 131 "1960mmgbb4cm64n1p0nz3hrs1pw03hkrfcw8prmnn4622mdrd9hy")))))
d0414883 132 (build-system gnu-build-system)
767abd37
MB
133 (arguments
134 '(#:configure-flags '("--disable-static")))
e5e33f90 135 (home-page "https://libexpat.github.io/")
9e771e3b 136 (synopsis "Stream-oriented XML parser library written in C")
d0414883
LC
137 (description
138 "Expat is an XML parser library written in C. It is a
139stream-oriented parser in which an application registers handlers for
140things the parser might find in the XML document (like start tags).")
141 (license license:expat)))
f0444eaf 142
5bc2d579
GG
143(define-public libebml
144 (package
145 (name "libebml")
73c541d0 146 (version "1.4.2")
5bc2d579
GG
147 (source
148 (origin
149 (method url-fetch)
079321fa
TGR
150 (uri (string-append "https://dl.matroska.org/downloads/libebml/"
151 "libebml-" version ".tar.xz"))
5bc2d579 152 (sha256
73c541d0 153 (base32 "1wmri5c94b02q2z32bqlpfs4vbw0n0c602321wigna2qw1y27is1"))))
f3d89181
TGR
154 (build-system cmake-build-system)
155 (arguments
156 `(#:configure-flags
157 (list "-DBUILD_SHARED_LIBS=YES")
158 #:tests? #f)) ; no test suite
a040db6d 159 (home-page "https://matroska-org.github.io/libebml/")
cb778117
TGR
160 (synopsis "C++ library to parse EBML files")
161 (description "libebml is a C++ library to read and write @dfn{EBML}
162(Extensible Binary Meta Language) files. EBML was designed to be a simplified
163binary extension of XML for the purpose of storing and manipulating data in a
5bc2d579
GG
164hierarchical form with variable field lengths.")
165 (license license:lgpl2.1)))
166
f0444eaf
AE
167(define-public libxml2
168 (package
169 (name "libxml2")
c9bba992 170 (version "2.9.10")
f0444eaf
AE
171 (source (origin
172 (method url-fetch)
173 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
174 version ".tar.gz"))
175 (sha256
176 (base32
c9bba992 177 "07xynh8hcxb2yb1fs051xrgszjvj37wnxvxgsj10rzmqzy9y3zma"))))
f0444eaf 178 (build-system gnu-build-system)
5f8642ea
MB
179 (outputs '("out" "static"))
180 (arguments
181 `(#:phases (modify-phases %standard-phases
182 (add-after 'install 'move-static-libs
183 (lambda* (#:key outputs #:allow-other-keys)
184 (let ((src (string-append (assoc-ref outputs "out") "/lib"))
185 (dst (string-append (assoc-ref outputs "static")
186 "/lib")))
187 (mkdir-p dst)
188 (for-each (lambda (ar)
189 (rename-file ar (string-append dst "/"
190 (basename ar))))
191 (find-files src "\\.a$"))
d52680ee
MB
192
193 ;; Remove reference to the static library from the .la
194 ;; file such that Libtool does the right thing when both
195 ;; the shared and static variants are available.
196 (substitute* (string-append src "/libxml2.la")
197 (("^old_library='libxml2.a'") "old_library=''"))
5f8642ea 198 #t))))))
f0444eaf 199 (home-page "http://www.xmlsoft.org/")
35b9e423 200 (synopsis "C parser for XML")
7ba79d5d 201 (inputs `(("xz" ,xz)))
c1944c92 202 (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
7ce32242 203 (native-inputs `(("perl" ,perl)))
2a8d4401
LC
204 ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
205 ;; sub-directory of any given package.
74528069
LC
206 (native-search-paths (list (search-path-specification
207 (variable "XML_CATALOG_FILES")
208 (separator " ")
209 (files '("xml"))
210 (file-pattern "^catalog\\.xml$")
211 (file-type 'regular))))
2a8d4401 212 (search-paths native-search-paths)
f0444eaf 213 (description
7c125ce0
AK
214 "Libxml2 is the XML C parser and toolkit developed for the Gnome
215project (but it is usable outside of the Gnome platform).")
f0444eaf 216 (license license:x11)))
58cc3b38 217
cc537187
RW
218;; This is the latest stable release.
219(define-public libxmlplusplus
220 (package
221 (name "libxmlplusplus")
222 (version "3.2.0")
223 (source (origin
224 (method git-fetch)
225 (uri (git-reference
8ed4c468 226 (url "https://github.com/libxmlplusplus/libxmlplusplus")
cc537187
RW
227 (commit version)))
228 (file-name (git-file-name name version))
229 (sha256
230 (base32
231 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
232 (build-system gnu-build-system)
233 (arguments
234 `(#:phases
235 (modify-phases %standard-phases
236 (add-after 'unpack 'fix-documentation
237 (lambda* (#:key inputs #:allow-other-keys)
238 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
239 "/xml/dtd/docbook"))
240 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
241 "/xml/xsl/docbook-xsl-"
242 ,(package-version docbook-xsl))))
243 (substitute* '("examples/dom_xpath/example.xml"
244 "docs/manual/libxml++_without_code.xml")
245 (("http://.*/docbookx\\.dtd")
246 (string-append xmldoc "/docbookx.dtd")))
247 (setenv "SGML_CATALOG_FILES"
248 (string-append xmldoc "/catalog.xml"))
249 (substitute* "docs/manual/docbook-customisation.xsl"
250 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
251 (string-append xsldoc "/html/chunk.xsl"))))
252 #t)))))
253 (propagated-inputs
254 `(("libxml2" ,libxml2)))
255 (inputs
256 `(("glibmm" ,glibmm)))
257 (native-inputs
258 `(("autoconf" ,autoconf)
259 ("automake" ,automake)
260 ("doxygen" ,doxygen)
261 ("docbook-xml" ,docbook-xml)
262 ("docbook-xsl" ,docbook-xsl)
263 ("graphviz" ,graphviz) ; for dot
264 ("libtool" ,libtool)
265 ("libxslt" ,libxslt)
266 ("mm-common" ,mm-common)
267 ("perl" ,perl)
268 ("pkg-config" ,pkg-config)))
269 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
270 (synopsis "C++ bindings for libxml2")
271 (description
272 "libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files.
273It uses libxml2 to access the XML files.")
274 (license license:lgpl2.1+)))
275
c2bb58f6
RW
276;; This is the last release providing the 2.6 API, hence the name.
277;; This is needed by tascam-gtk
278(define-public libxmlplusplus-2.6
279 (package
280 (inherit libxmlplusplus)
281 (name "libxmlplusplus")
282 (version "2.40.1")
283 (source (origin
284 (method git-fetch)
285 (uri (git-reference
8ed4c468 286 (url "https://github.com/libxmlplusplus/libxmlplusplus")
c2bb58f6
RW
287 (commit version)))
288 (file-name (git-file-name name version))
289 (sha256
290 (base32
291 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
292
7ce32242 293(define-public python-libxml2
e428b2c0 294 (package/inherit libxml2
7ce32242 295 (name "python-libxml2")
785fcb62
MB
296 (source (origin
297 (inherit (package-source libxml2))
298 (patches (cons (search-patch "python-libxml2-utf8.patch")
299 (origin-patches (package-source libxml2))))))
7ce32242 300 (build-system python-build-system)
d3028f5b 301 (outputs '("out"))
7ce32242
SB
302 (arguments
303 `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
304 #:tests? #f
305 #:phases
306 (modify-phases %standard-phases
307 (add-before
308 'build 'configure
309 (lambda* (#:key inputs #:allow-other-keys)
310 (chdir "python")
311 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
312 "cross-libc" "libc")))
313 (libxml2 (assoc-ref inputs "libxml2")))
314 (substitute* "setup.py"
315 ;; For 'libxml2/libxml/tree.h'.
316 (("ROOT = r'/usr'")
317 (format #f "ROOT = r'~a'" libxml2))
318 ;; For 'iconv.h'.
319 (("/opt/include")
aa6f87a2
MW
320 (string-append glibc "/include"))))
321 #t)))))
7ce32242
SB
322 (inputs `(("libxml2" ,libxml2)))
323 (synopsis "Python bindings for the libxml2 library")))
324
325(define-public python2-libxml2
326 (package-with-python2 python-libxml2))
327
58cc3b38
AE
328(define-public libxslt
329 (package
330 (name "libxslt")
badcb119 331 (version "1.1.34")
58cc3b38
AE
332 (source (origin
333 (method url-fetch)
334 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
335 version ".tar.gz"))
336 (sha256
337 (base32
badcb119 338 "0zrzz6kjdyavspzik6fbkpvfpbd25r2qg6py5nnjaabrsr3bvccq"))
28b33172 339 (patches (search-patches "libxslt-generated-ids.patch"))))
58cc3b38 340 (build-system gnu-build-system)
badcb119
MB
341 (arguments
342 `(#:phases (modify-phases %standard-phases
343 (add-before 'check 'disable-fuzz-tests
344 (lambda _
345 ;; Disable libFuzzer tests, because they require
346 ;; instrumentation builds of libxml2 and libxslt.
347 (substitute* "tests/Makefile"
348 (("exslt plugins fuzz")
349 "exslt plugins"))
350 #t)))))
58cc3b38 351 (home-page "http://xmlsoft.org/XSLT/index.html")
35b9e423 352 (synopsis "C library for applying XSLT stylesheets to XML documents")
58cc3b38
AE
353 (inputs `(("libgcrypt" ,libgcrypt)
354 ("libxml2" ,libxml2)
95288fcc 355 ("python" ,python-minimal-wrapper)
60825fdd
MO
356 ("zlib" ,zlib)
357 ("xz" ,xz)))
da66bd38
MO
358 (native-inputs
359 `(("pkg-config" ,pkg-config)))
58cc3b38 360 (description
35b9e423 361 "Libxslt is an XSLT C library developed for the GNOME project. It is
58cc3b38
AE
362based on libxml for XML parsing, tree manipulation and XPath support.")
363 (license license:x11)))
2a1e82bb 364
1729fb52
MC
365(define-public openjade
366 (package
367 (name "openjade")
368 (version "1.3.2")
369 (source (origin
370 (method url-fetch)
371 (uri (string-append "mirror://sourceforge/openjade/openjade/"
372 version "/" name "-" version ".tar.gz"))
373 (sha256
374 (base32
375 "1l92sfvx1f0wmkbvzv1385y1gb3hh010xksi1iyviyclrjb7jb8x"))))
376 (build-system gnu-build-system)
377 (arguments
378 `(#:configure-flags
379 (list (string-append "--enable-spincludedir="
380 (assoc-ref %build-inputs "opensp")
381 "/include/OpenSP")
382 (string-append "--enable-splibdir="
383 (assoc-ref %build-inputs "opensp") "/lib")
384 ;; Workaround segfaults in OpenJade (see:
385 ;; https://bugs.launchpad.net/ubuntu/+source/openjade/+bug/1869734).
386 "CXXFLAGS=-O0")
387 #:parallel-build? #f ;build fails otherwise
388 ;; The test suite fails with diff errors between the actual and
389 ;; expected results, like: (char<? #\a #\A) returning #t rather than
390 ;; #f (see: https://sourceforge.net/p/openjade/bugs/150/).
391 #:tests? #f
392 #:phases
393 (modify-phases %standard-phases
394 (add-after 'unpack 'replace-deprecated-getopt
395 ;; See: https://sourceforge.net/p/openjade/bugs/140/.
396 (lambda _
397 (substitute* "msggen.pl"
398 (("use POSIX;") "use POSIX;\nuse Getopt::Std;")
399 (("do 'getopts.pl';") "")
400 (("&Getopts") "getopts"))
401 #t))
402 (add-after 'replace-deprecated-getopt 'fix-locale-lookup
403 ;; See: https://sourceforge.net/p/openjade/bugs/149/.
404 (lambda _
405 (substitute* "testsuite/expr-lang.dsl"
406 (("\\(language \"EN\" \"US\"\\)")
407 "(language \"EN\" \"US.UTF-8\")"))
408 #t))
409 (add-after 'install 'install-doc
410 (lambda* (#:key outputs #:allow-other-keys)
411 ;; TODO: Generate the manpage from source, with
412 ;; openjade-bootstrap and jadetex. See the file docsrc/Makefile.
413 (let* ((out (assoc-ref outputs "out"))
414 (man1 (string-append out "/share/man/man1")))
415 (install-file "docsrc/openjade.1" man1)
416 #t)))
417 (add-after 'install-doc 'install-dtds
418 (lambda* (#:key outputs #:allow-other-keys)
419 (let* ((out (assoc-ref outputs "out"))
420 (dtd (string-append out "/sgml/dtd")))
421 (mkdir-p dtd)
422 (copy-recursively "dsssl" dtd)
423 #t)))
424 (delete 'check)
425 (add-after 'install 'check
426 (lambda* (#:key tests? out #:allow-other-keys)
427 (if tests?
428 (with-directory-excursion "testsuite"
429 (invoke "make"))
430 (format #t "test suite not run~%"))
431 #t)))))
432 (inputs
433 `(("opensp" ,opensp)))
434 (native-inputs
435 `(("perl" ,perl)))
436 (home-page "http://openjade.sourceforge.net/")
437 (synopsis "ISO/IEC 10179:1996 standard DSSSL language implementation")
438 (description "OpenJade is an implementation of Document Style Semantics
439and Specification Language (DSSSL), a style language to format SGML or XML
440documents. It contains backends for various formats such as RTF, HTML, TeX,
441MIF, SGML2SGML, and FOT.")
442 (license (license:non-copyleft "file://COPYING"
443 "See COPYING in the distribution."))))
444
5eec378b
BW
445(define-public perl-graph-readwrite
446 (package
447 (name "perl-graph-readwrite")
ffbc7d65 448 (version "2.09")
5eec378b
BW
449 (source
450 (origin
451 (method url-fetch)
452 (uri (string-append
453 "mirror://cpan/authors/id/N/NE/NEILB/Graph-ReadWrite-"
454 version
455 ".tar.gz"))
456 (sha256
457 (base32
ffbc7d65 458 "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
5eec378b
BW
459 (build-system perl-build-system)
460 (propagated-inputs
461 `(("perl-graph" ,perl-graph)
462 ("perl-parse-yapp" ,perl-parse-yapp)
463 ("perl-xml-parser" ,perl-xml-parser)
464 ("perl-xml-writer" ,perl-xml-writer)))
9aba9b12 465 (home-page "https://metacpan.org/release/Graph-ReadWrite")
5eec378b
BW
466 (synopsis "Modules for reading and writing directed graphs")
467 (description "This is a collection of perl classes for reading and writing
468directed graphs in a variety of file formats. The graphs are represented in
469Perl using Jarkko Hietaniemi's @code{Graph} classes.
470
471There are two base classes. @code{Graph::Reader} is the base class for classes
472which read a graph file and create an instance of the Graph class.
473@code{Graph::Writer} is the base class for classes which take an instance of
474the @code{Graph} class and write it out in a specific file format.")
2f3108ad 475 (license license:perl-license)))
5eec378b 476
b2696a58 477(define-public perl-xml-atom
478 (package
479 (name "perl-xml-atom")
522f1995 480 (version "0.42")
b2696a58 481 (source (origin
482 (method url-fetch)
483 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
484 "XML-Atom-" version ".tar.gz"))
485 (sha256
486 (base32
522f1995 487 "1wa8kfy1w4mg7kzxim4whyprkn48a2il6fap0b947zywknw4c6y6"))))
b2696a58 488 (build-system perl-build-system)
522f1995
MB
489 (arguments
490 `(#:phases
491 (modify-phases %standard-phases
492 (add-before 'check 'set-perl-search-path
493 (lambda _
494 (setenv "PERL5LIB"
495 (string-append (getcwd) ":"
496 (getenv "PERL5LIB")))
497 #t)))))
b2696a58 498 (native-inputs
50632f0a
TGR
499 ;; TODO package: perl-datetime-format-atom
500 `(("perl-html-tagset" ,perl-html-tagset)
522f1995 501 ("perl-module-build-tiny" ,perl-module-build-tiny)
50632f0a
TGR
502 ("perl-module-install" ,perl-module-install)))
503 (propagated-inputs
b2696a58 504 `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
505 ("perl-datetime" ,perl-datetime)
506 ("perl-datetime-timezone" ,perl-datetime-timezone)
507 ("perl-digest-sha1" ,perl-digest-sha1)
508 ("perl-libwww" ,perl-libwww)
509 ("perl-uri" ,perl-uri)
510 ("perl-xml-libxml" ,perl-xml-libxml)
511 ("perl-xml-xpath" ,perl-xml-xpath)))
9aba9b12 512 (home-page "https://metacpan.org/release/XML-Atom")
b2696a58 513 (synopsis "Atom feed and API implementation")
514 (description
515 "Atom is a syndication, API, and archiving format for weblogs and other data.
516@code{XML::Atom} implements the feed format as well as a client for the API.")
2f3108ad 517 (license license:perl-license)))
b2696a58 518
d66fa696
MB
519(define-public perl-xml-descent
520 (package
521 (name "perl-xml-descent")
522 (version "1.04")
523 (source (origin
524 (method url-fetch)
525 (uri (string-append "mirror://cpan/authors/id/A/AN/ANDYA/"
526 "XML-Descent-" version ".tar.gz"))
527 (sha256
528 (base32
529 "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7"))))
530 (build-system perl-build-system)
531 (native-inputs
532 `(("perl-module-build" ,perl-module-build)))
533 (propagated-inputs
534 `(("perl-test-differences" ,perl-test-differences)
535 ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
9aba9b12 536 (home-page "https://metacpan.org/release/XML-Descent")
d66fa696
MB
537 (synopsis "Recursive descent XML parsing")
538 (description
539 "The conventional models for parsing XML are either @dfn{DOM}
540(a data structure representing the entire document tree is created) or
541@dfn{SAX} (callbacks are issued for each element in the XML).
542
543XML grammar is recursive - so it's nice to be able to write recursive
544parsers for it. @code{XML::Descent} allows such parsers to be created.")
2f3108ad 545 (license license:perl-license)))
d66fa696 546
2a1e82bb
LC
547(define-public perl-xml-parser
548 (package
549 (name "perl-xml-parser")
8b53495d 550 (version "2.46")
2a1e82bb
LC
551 (source (origin
552 (method url-fetch)
553 (uri (string-append
2b8c5f54 554 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
2a1e82bb
LC
555 version ".tar.gz"))
556 (sha256
557 (base32
8b53495d 558 "0pai3ik47q7rgnix9644c673fwydz52gqkxr9kxwq765j4j36cfk"))))
2a1e82bb
LC
559 (build-system perl-build-system)
560 (arguments `(#:make-maker-flags
561 (let ((expat (assoc-ref %build-inputs "expat")))
562 (list (string-append "EXPATLIBPATH=" expat "/lib")
563 (string-append "EXPATINCPATH=" expat "/include")))))
564 (inputs `(("expat" ,expat)))
2f3108ad 565 (license license:perl-license)
2a1e82bb
LC
566 (synopsis "Perl bindings to the Expat XML parsing library")
567 (description
568 "This module provides ways to parse XML documents. It is built on top of
569XML::Parser::Expat, which is a lower level interface to James Clark's expat
570library. Each call to one of the parsing methods creates a new instance of
571XML::Parser::Expat which is then used to parse the document. Expat options
572may be provided when the XML::Parser object is created. These options are
573then passed on to the Expat object on each parse call. They can also be given
574as extra arguments to the parse methods, in which case they override options
575given at XML::Parser creation time.")
9aba9b12 576 (home-page "https://metacpan.org/release/XML-Parser")))
37f9ff63 577
62b28f19
MB
578(define-public perl-xml-tokeparser
579 (package
580 (name "perl-xml-tokeparser")
581 (version "0.05")
582 (source (origin
583 (method url-fetch)
584 (uri (string-append "mirror://cpan/authors/id/P/PO/PODMASTER/"
585 "XML-TokeParser-" version ".tar.gz"))
586 (sha256
587 (base32
588 "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
589 (build-system perl-build-system)
590 (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 591 (home-page "https://metacpan.org/release/XML-TokeParser")
62b28f19
MB
592 (synopsis "Simplified interface to XML::Parser")
593 (description
594 "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface
595to @code{XML::Parser} in much the same way that Gisle Aas'
596@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}.
597@code{XML::TokeParser} splits its XML input up into \"tokens\", each
598corresponding to an @code{XML::Parser} event.")
2f3108ad 599 (license license:perl-license)))
62b28f19 600
7339fbe2 601(define-public perl-libxml
1385ba4f 602 (package
7339fbe2 603 (name "perl-libxml")
1385ba4f
AE
604 (version "0.08")
605 (source (origin
606 (method url-fetch)
607 (uri (string-append
608 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
609 version ".tar.gz"))
610 (sha256
611 (base32
612 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
613 (build-system perl-build-system)
7b81406a 614 (propagated-inputs
1385ba4f 615 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 616 (license license:perl-license)
2db5f9b6 617 (synopsis "Perl modules for working with XML")
1385ba4f 618 (description
2db5f9b6
TGR
619 "libxml-perl is a collection of smaller Perl modules, scripts, and
620documents for working with XML in Perl. libxml-perl software works in
621combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
622@code{XML::Grove}, and others.")
9aba9b12 623 (home-page "https://metacpan.org/release/libxml-perl")))
1385ba4f 624
3dd6bee1
EB
625(define-public perl-xml-libxml
626 (package
627 (name "perl-xml-libxml")
d71184f8 628 (version "2.0134")
3dd6bee1
EB
629 (source
630 (origin
631 (method url-fetch)
632 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
633 "XML-LibXML-" version ".tar.gz"))
634 (sha256
635 (base32
d71184f8 636 "1ks69xymv6zkj7hvaymjvb78ch81abri7kg4zrwxhdfsqb8a9g7h"))))
3dd6bee1
EB
637 (build-system perl-build-system)
638 (propagated-inputs
639 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
640 ("perl-xml-sax" ,perl-xml-sax)))
641 (inputs
642 `(("libxml2" ,libxml2)))
9aba9b12 643 (home-page "https://metacpan.org/release/XML-LibXML")
3dd6bee1
EB
644 (synopsis "Perl interface to libxml2")
645 (description "This module implements a Perl interface to the libxml2
54c3c140 646library which provides interfaces for parsing and manipulating XML files. This
3dd6bee1
EB
647module allows Perl programmers to make use of the highly capable validating
648XML parser and the high performance DOM implementation.")
2f3108ad 649 (license license:perl-license)))
3dd6bee1 650
f7c4dc2f
RW
651(define-public perl-xml-libxml-simple
652 (package
653 (name "perl-xml-libxml-simple")
d21fb90a 654 (version "0.99")
f7c4dc2f
RW
655 (source (origin
656 (method url-fetch)
657 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
658 "XML-LibXML-Simple-" version ".tar.gz"))
659 (sha256
660 (base32
d21fb90a 661 "0i4ybiqdnvnbfxqslw2y392kvy7i752dl8n99bqiqv5kzk4lbzhl"))))
f7c4dc2f
RW
662 (build-system perl-build-system)
663 (propagated-inputs
664 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
665 ("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 666 (home-page "https://metacpan.org/release/XML-LibXML-Simple")
f7c4dc2f
RW
667 (synopsis "XML::LibXML based XML::Simple clone")
668 (description
669 "This package provides the same API as @code{XML::Simple} but is based on
670@code{XML::LibXML}.")
2f3108ad 671 (license license:perl-license)))
f7c4dc2f 672
93863a5e
RW
673(define-public perl-xml-libxslt
674 (package
675 (name "perl-xml-libxslt")
73a3e98f 676 (version "1.96")
93863a5e
RW
677 (source
678 (origin
679 (method url-fetch)
680 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
681 "XML-LibXSLT-" version ".tar.gz"))
682 (sha256
683 (base32
73a3e98f 684 "0wyl8klgr65j8y8fzgwz9jlvfjwvxazna8j3dg9gksd2v973fpia"))))
93863a5e
RW
685 (build-system perl-build-system)
686 (inputs
687 `(("libxslt" ,libxslt)))
688 (propagated-inputs
689 `(("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 690 (home-page "https://metacpan.org/release/XML-LibXSLT")
93863a5e
RW
691 (synopsis "Perl bindings to GNOME libxslt library")
692 (description "This Perl module is an interface to the GNOME project's
693libxslt library.")
2f3108ad 694 (license license:perl-license)))
93863a5e 695
b715dbac
EB
696(define-public perl-xml-namespacesupport
697 (package
698 (name "perl-xml-namespacesupport")
88958ee0 699 (version "1.12")
b715dbac
EB
700 (source
701 (origin
702 (method url-fetch)
703 (uri (string-append "mirror://cpan/authors/id/P/PE/PERIGRIN/"
704 "XML-NamespaceSupport-" version ".tar.gz"))
705 (sha256
706 (base32
88958ee0 707 "1vz5pbi4lm5fhq2slrs2hlp6bnk29863abgjlcx43l4dky2rbsa7"))))
b715dbac 708 (build-system perl-build-system)
9aba9b12 709 (home-page "https://metacpan.org/release/XML-NamespaceSupport")
b715dbac
EB
710 (synopsis "XML namespace support class")
711 (description "This module offers a simple to process namespaced XML
712names (unames) from within any application that may need them. It also helps
713maintain a prefix to namespace URI map, and provides a number of basic
714checks.")
2f3108ad 715 (license license:perl-license)))
b715dbac 716
a022b23f 717(define-public perl-xml-rss
718 (package
719 (name "perl-xml-rss")
73662141 720 (version "1.61")
a022b23f 721 (source (origin
722 (method url-fetch)
723 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
724 "XML-RSS-" version ".tar.gz"))
725 (sha256
726 (base32
73662141 727 "03f983l2dnkvcw6iyg1s0xmv5wn793d3kvqlshmhm01ibp7ffvzs"))))
a022b23f 728 (build-system perl-build-system)
729 (native-inputs
730 `(("perl-module-build" ,perl-module-build)
731 ("perl-test-manifest" ,perl-test-manifest)
732 ("perl-test-differences" ,perl-test-differences)
733 ("perl-test-pod" ,perl-test-pod)
734 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
735 ;; XXX: The test which uses this modules does not run, even when it is included
736 ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
737 (inputs
738 `(("perl-datetime" ,perl-datetime)
739 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
740 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
741 ("perl-html-parser" ,perl-html-parser)
742 ("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 743 (home-page "https://metacpan.org/release/XML-RSS")
a022b23f 744 (synopsis "Creates and updates RSS files")
745 (description
746 "This module provides a basic framework for creating and maintaining
747RDF Site Summary (RSS) files. This distribution also contains many examples
748that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
7491.0 version, and more.")
2f3108ad 750 (license license:perl-license)))
a022b23f 751
18b8bbb3
EB
752(define-public perl-xml-sax
753 (package
754 (name "perl-xml-sax")
2dcde3c7 755 (version "1.02")
18b8bbb3
EB
756 (source
757 (origin
758 (method url-fetch)
759 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
760 "XML-SAX-" version ".tar.gz"))
761 (sha256
2dcde3c7 762 (base32 "0am13vnv8qsjafr5ljakwnkhlwpk15sga02z8mxsg9is0j3w61j5"))))
18b8bbb3
EB
763 (build-system perl-build-system)
764 (propagated-inputs
765 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
766 ("perl-xml-sax-base" ,perl-xml-sax-base)))
767 (arguments
768 `(#:phases (modify-phases %standard-phases
769 (add-before
40b084a3 770 'install 'augment-path
18b8bbb3
EB
771 ;; The install target tries to load the newly-installed
772 ;; XML::SAX module, but can't find it, so we need to tell
773 ;; perl where to look.
774 (lambda* (#:key outputs #:allow-other-keys)
775 (setenv "PERL5LIB"
776 (string-append (getenv "PERL5LIB") ":"
777 (assoc-ref outputs "out")
aa6f87a2
MW
778 "/lib/perl5/site_perl"))
779 #t)))))
9aba9b12 780 (home-page "https://metacpan.org/release/XML-SAX")
18b8bbb3
EB
781 (synopsis "Perl API for XML")
782 (description "XML::SAX consists of several framework classes for using and
783building Perl SAX2 XML parsers, filters, and drivers.")
2f3108ad 784 (license license:perl-license)))
18b8bbb3 785
1ed6d5bc
EB
786(define-public perl-xml-sax-base
787 (package
788 (name "perl-xml-sax-base")
fa964e96 789 (version "1.09")
1ed6d5bc
EB
790 (source
791 (origin
792 (method url-fetch)
793 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
794 "XML-SAX-Base-" version ".tar.gz"))
795 (sha256
796 (base32
fa964e96 797 "1l1ai9g1z11ja7mvnfl5mj346r13jyckbg9qlw6c2izglidkbjv6"))))
1ed6d5bc 798 (build-system perl-build-system)
9aba9b12 799 (home-page "https://metacpan.org/release/XML-SAX-Base")
1ed6d5bc
EB
800 (synopsis "Base class for SAX Drivers and Filters")
801 (description "This module has a very simple task - to be a base class for
802PerlSAX drivers and filters. It's default behaviour is to pass the input
803directly to the output unchanged. It can be useful to use this module as a
804base class so you don't have to, for example, implement the characters()
805callback.")
2f3108ad 806 (license license:perl-license)))
1ed6d5bc 807
535dc6cf
AE
808(define-public perl-xml-simple
809 (package
810 (name "perl-xml-simple")
fa3fff43 811 (version "2.25")
535dc6cf
AE
812 (source (origin
813 (method url-fetch)
814 (uri (string-append
815 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
816 version ".tar.gz"))
817 (sha256
818 (base32
fa3fff43 819 "1y6vh328zrh085d40852v4ij2l4g0amxykswxd1nfhd2pspds7sk"))))
535dc6cf 820 (build-system perl-build-system)
27ef7f45 821 (propagated-inputs
e831256f
EF
822 `(("perl-xml-parser" ,perl-xml-parser)
823 ("perl-xml-sax" ,perl-xml-sax)))
2f3108ad 824 (license license:perl-license)
535dc6cf
AE
825 (synopsis "Perl module for easy reading/writing of XML files")
826 (description
827 "The XML::Simple module provides a simple API layer on top of an
828underlying XML parsing module (either XML::Parser or one of the SAX2
829parser modules).")
9aba9b12 830 (home-page "https://metacpan.org/release/XML-Simple")))
535dc6cf 831
a2e520af
AE
832(define-public perl-xml-regexp
833 (package
834 (name "perl-xml-regexp")
835 (version "0.04")
836 (source (origin
837 (method url-fetch)
838 (uri (string-append
839 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
840 version ".tar.gz"))
841 (sha256
842 (base32
843 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
844 (build-system perl-build-system)
845 (inputs
846 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 847 (license license:perl-license)
a2e520af
AE
848 (synopsis "Perl regular expressions for XML tokens")
849 (description
850 "XML::RegExp contains regular expressions for the following XML tokens:
851BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
852EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
9aba9b12 853 (home-page "https://metacpan.org/release/XML-RegExp")))
a2e520af 854
ad871fc6
AE
855(define-public perl-xml-dom
856 (package
857 (name "perl-xml-dom")
4e5465f2 858 (version "1.46")
ad871fc6
AE
859 (source (origin
860 (method url-fetch)
861 (uri (string-append
862 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
863 version ".tar.gz"))
864 (sha256
865 (base32
4e5465f2 866 "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
ad871fc6 867 (build-system perl-build-system)
f7faff88
AE
868 (propagated-inputs
869 `(("perl-libwww" ,perl-libwww)
ad871fc6 870 ("perl-libxml" ,perl-libxml)
4e5465f2 871 ("perl-xml-parser" ,perl-xml-parser)
ad871fc6 872 ("perl-xml-regexp" ,perl-xml-regexp)))
2f3108ad 873 (license license:perl-license)
ad871fc6
AE
874 (synopsis
875 "Perl module for building DOM Level 1 compliant document structures")
876 (description
877 "This module extends the XML::Parser module by Clark Cooper. The
878XML::Parser module is built on top of XML::Parser::Expat, which is a lower
879level interface to James Clark's expat library. XML::DOM::Parser is derived
880from XML::Parser. It parses XML strings or files and builds a data structure
881that conforms to the API of the Document Object Model.")
9aba9b12 882 (home-page "https://metacpan.org/release/XML-DOM")))
ad871fc6 883
649e1676
RW
884(define-public perl-xml-compile-tester
885 (package
886 (name "perl-xml-compile-tester")
9af5a513 887 (version "0.91")
649e1676
RW
888 (source (origin
889 (method url-fetch)
890 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
891 "XML-Compile-Tester-" version ".tar.gz"))
892 (sha256
893 (base32
9af5a513 894 "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75"))))
649e1676
RW
895 (build-system perl-build-system)
896 (propagated-inputs
897 `(("perl-log-report" ,perl-log-report)
898 ("perl-test-deep" ,perl-test-deep)))
9aba9b12 899 (home-page "https://metacpan.org/release/XML-Compile-Tester")
649e1676
RW
900 (synopsis "XML::Compile related regression testing")
901 (description
902 "The @code{XML::Compile} module suite has extensive regression testing.
903This module provide functions which simplify writing tests for
904@code{XML::Compile} related distributions.")
2f3108ad 905 (license license:perl-license)))
649e1676 906
b494a5f1
RW
907(define-public perl-xml-compile
908 (package
909 (name "perl-xml-compile")
78ca483a 910 (version "1.63")
b494a5f1
RW
911 (source (origin
912 (method url-fetch)
913 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
914 "XML-Compile-" version ".tar.gz"))
915 (sha256
916 (base32
78ca483a 917 "0psr5pwsk2biz2bfkigmx04v2rfhs6ybwcfmcrrg7gvh9bpp222b"))))
b494a5f1
RW
918 (build-system perl-build-system)
919 (propagated-inputs
174988fa
TGR
920 `(("perl-carp" ,perl-carp)
921 ("perl-log-report" ,perl-log-report)
b494a5f1
RW
922 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
923 ("perl-xml-libxml" ,perl-xml-libxml)
174988fa
TGR
924 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
925 ("perl-test-deep" ,perl-test-deep)
926 ("perl-types-serialiser" ,perl-types-serialiser)))
9aba9b12 927 (home-page "https://metacpan.org/release/XML-Compile")
b494a5f1
RW
928 (synopsis "Compilation-based XML processing")
929 (description
930 "@code{XML::Compile} can be used to translate a Perl data-structure into
931XML or XML into a Perl data-structure, both directions under rigid control by
932a schema.")
2f3108ad 933 (license license:perl-license)))
b494a5f1 934
c1d41b5d
RW
935(define-public perl-xml-compile-cache
936 (package
937 (name "perl-xml-compile-cache")
503a0059 938 (version "1.06")
c1d41b5d
RW
939 (source (origin
940 (method url-fetch)
941 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
942 "XML-Compile-Cache-" version ".tar.gz"))
943 (sha256
944 (base32
503a0059 945 "181qf1s7ymgi7saph3cf9p6dbxkxyh1ja23na4dchhi8v5mi66sr"))))
c1d41b5d
RW
946 (build-system perl-build-system)
947 (propagated-inputs
948 `(("perl-log-report" ,perl-log-report)
949 ("perl-xml-compile" ,perl-xml-compile)
950 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
951 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
9aba9b12 952 (home-page "https://metacpan.org/release/XML-Compile-Cache")
c1d41b5d
RW
953 (synopsis "Cache compiled XML translators")
954 (description
955 "This package provides methods to cache compiled XML translators.")
2f3108ad 956 (license license:perl-license)))
c1d41b5d 957
baeab9b8
RW
958(define-public perl-xml-compile-soap
959 (package
960 (name "perl-xml-compile-soap")
1d9b041c 961 (version "3.24")
baeab9b8
RW
962 (source (origin
963 (method url-fetch)
964 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
965 "XML-Compile-SOAP-" version ".tar.gz"))
966 (sha256
967 (base32
1d9b041c 968 "0pkcph562l2ij7rlwlvm58v6y062qsbydfpaz2qnph2ixqy0xfd1"))))
baeab9b8
RW
969 (build-system perl-build-system)
970 (propagated-inputs
971 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
972 ("perl-libwww" ,perl-libwww)
973 ("perl-log-report" ,perl-log-report)
974 ("perl-xml-compile" ,perl-xml-compile)
975 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
976 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
9aba9b12 977 (home-page "https://metacpan.org/release/XML-Compile-SOAP")
baeab9b8
RW
978 (synopsis "Base-class for SOAP implementations")
979 (description
980 "This module provides a class to handle the SOAP protocol. The first
981implementation is @url{SOAP1.1,
982http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
983used.")
2f3108ad 984 (license license:perl-license)))
baeab9b8 985
6a914948
RW
986(define-public perl-xml-compile-wsdl11
987 (package
988 (name "perl-xml-compile-wsdl11")
4b4a4f5c 989 (version "3.07")
6a914948
RW
990 (source (origin
991 (method url-fetch)
992 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
993 "XML-Compile-WSDL11-" version ".tar.gz"))
994 (sha256
995 (base32
4b4a4f5c 996 "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba"))))
6a914948
RW
997 (build-system perl-build-system)
998 (propagated-inputs
999 `(("perl-log-report" ,perl-log-report)
1000 ("perl-xml-compile" ,perl-xml-compile)
1001 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
1002 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
9aba9b12 1003 (home-page "https://metacpan.org/release/XML-Compile-WSDL11")
6a914948
RW
1004 (synopsis "Create SOAP messages defined by WSDL 1.1")
1005 (description
1006 "This module understands WSDL version 1.1. A WSDL file defines a set of
1007messages to be send and received over SOAP connections. This involves
1008encoding of the message to be send into XML, sending the message to the
1009server, collect the answer, and finally decoding the XML to Perl.")
2f3108ad 1010 (license license:perl-license)))
6a914948 1011
246455c2 1012(define-public perl-xml-feed
1013 (package
1014 (name "perl-xml-feed")
8dfdd746 1015 (version "0.59")
246455c2 1016 (source (origin
1017 (method url-fetch)
1018 (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
1019 "XML-Feed-" version ".tar.gz"))
1020 (sha256
1021 (base32
8dfdd746 1022 "1z1a88bpy64j42bbyl8acbfl3dn9iaz47gx6clkgy5sbn4kr0kgk"))))
246455c2 1023 (build-system perl-build-system)
246455c2 1024 (native-inputs
1025 `(("perl-module-build" ,perl-module-build)
1026 ("perl-uri" ,perl-uri)
1027 ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
40b793fd 1028 (propagated-inputs
246455c2 1029 `(("perl-class-errorhandler" ,perl-class-errorhandler)
1030 ("perl-datetime" ,perl-datetime)
f2a53a4a
PG
1031 ("perl-datetime-format-flexible" ,perl-datetime-format-flexible)
1032 ("perl-datetime-format-iso8601" ,perl-datetime-format-iso8601)
246455c2 1033 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
f2a53a4a 1034 ("perl-datetime-format-natural" ,perl-datetime-format-natural)
246455c2 1035 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
1036 ("perl-feed-find" ,perl-feed-find)
1037 ("perl-html-parser" ,perl-html-parser)
1038 ("perl-libwww-perl" ,perl-libwww)
1039 ("perl-module-pluggable" ,perl-module-pluggable)
1040 ("perl-uri-fetch" ,perl-uri-fetch)
1041 ("perl-xml-atom" ,perl-xml-atom)
1042 ("perl-xml-libxml" ,perl-xml-libxml)
1043 ("perl-xml-rss" ,perl-xml-rss)))
9aba9b12 1044 (home-page "https://metacpan.org/release/XML-Feed")
246455c2 1045 (synopsis "XML Syndication Feed Support")
1046 (description "@code{XML::Feed} is a syndication feed parser for both RSS and
1047Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
1048@code{XML::Feed} supports the following syndication feed formats:
1049RSS 0.91, RSS 1.0, RSS 2.0, Atom")
2f3108ad 1050 (license license:perl-license)))
246455c2 1051
0c1bab36 1052(define-public perl-xml-xpath
1053 (package
1054 (name "perl-xml-xpath")
fc82538c 1055 (version "1.44")
0c1bab36 1056 (source (origin
1057 (method url-fetch)
1058 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
1059 "XML-XPath-" version ".tar.gz"))
1060 (sha256
1061 (base32
fc82538c 1062 "03yxj7w5a43ibbpiqsvb3lswj2b71dydsx4rs2fw0p8n0l3i3j8w"))))
0c1bab36 1063 (build-system perl-build-system)
1064 (native-inputs
1065 `(("perl-path-tiny" ,perl-path-tiny)))
9332d706 1066 (propagated-inputs
0c1bab36 1067 `(("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 1068 (home-page "https://metacpan.org/release/XML-XPath")
0c1bab36 1069 (synopsis "Parse and evaluate XPath statements")
1070 (description
1071 "This module aims to comply exactly to the @url{XPath specification,
1072https://www.w3.org/TR/xpath} and yet allow extensions to be added in
1073the form of functions.")
2f3108ad 1074 (license license:perl-license)))
0c1bab36 1075
6ce212b8
RW
1076(define-public pugixml
1077 (package
1078 (name "pugixml")
c5c69451 1079 (version "1.11")
6ce212b8
RW
1080 (source
1081 (origin
1082 (method url-fetch)
0562a81e
EF
1083 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
1084 version "/pugixml-" version ".tar.gz"))
6ce212b8 1085 (sha256
c5c69451 1086 (base32 "0b5apqiisq8yk51x0cwks4h2m0zd2zgjdy0w80qp9h5rccz3v496"))))
6ce212b8
RW
1087 (build-system cmake-build-system)
1088 (arguments
7fda7b8f 1089 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
bc134c77 1090 #:tests? #f)) ; no tests
7fda7b8f
MB
1091 (native-inputs
1092 `(("pkg-config" ,pkg-config)))
28655227 1093 (home-page "https://pugixml.org")
6ce212b8
RW
1094 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
1095 (description
1096 "pugixml is a C++ XML processing library, which consists of a DOM-like
1097interface with rich traversal/modification capabilities, a fast XML parser
1098which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
1099implementation for complex data-driven tree queries. Full Unicode support is
1100also available, with Unicode interface variants and conversions between
1101different Unicode encodings which happen automatically during
1102parsing/saving.")
1103 (license license:expat)))
1104
c2efe1ae
MB
1105(define-public python-pyxb
1106 (package
1107 (name "python-pyxb")
4ef6cfef 1108 (version "1.2.6")
c2efe1ae
MB
1109 (source (origin
1110 (method url-fetch)
1111 (uri (pypi-uri "PyXB" version))
1112 (sha256
1113 (base32
4ef6cfef 1114 "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a"))))
c2efe1ae
MB
1115 (build-system python-build-system)
1116 (home-page "http://pyxb.sourceforge.net/")
1117 (synopsis "Python XML Schema Bindings")
1118 (description
1119 "PyXB (\"pixbee\") is a pure Python package that generates Python source
1120code for classes that correspond to data structures defined by XMLSchema.")
1121 (license (list license:asl2.0 ; Most files.
1122 license:expat ; pyxb/utils/six.py
1123 license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
1124 license:psfl)))) ; pyxb/utils/activestate.py
1125
1126(define-public python2-pyxb
1127 (package-with-python2 python-pyxb))
1128
37f9ff63
AE
1129(define-public xmlto
1130 (package
1131 (name "xmlto")
877a6466 1132 (version "0.0.28")
37f9ff63
AE
1133 (source
1134 (origin
1135 (method url-fetch)
7bc19c92
LF
1136 ;; The old source on fedorahosted.org is offline permanently:
1137 ;; <https://bugs.gnu.org/25989>
1138 (uri (string-append "mirror://debian/pool/main/x/xmlto/"
1139 "xmlto_" version ".orig.tar.bz2"))
1140 (file-name (string-append name "-" version ".tar.bz2"))
37f9ff63
AE
1141 (sha256
1142 (base32
877a6466 1143 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 1144 (build-system gnu-build-system)
ae0c1202
LC
1145 (arguments
1146 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
1147 '(#:configure-flags (list (string-append "GETOPT="
1148 (assoc-ref %build-inputs
1149 "util-linux")
1150 "/bin/getopt"))))
14755541
MO
1151 (native-inputs
1152 `(("util-linux" ,util-linux)))
37f9ff63 1153 (inputs
ae0c1202
LC
1154 `(("util-linux" ,util-linux) ; for 'getopt'
1155 ("libxml2" ,libxml2) ; for 'xmllint'
1156 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
1157 (home-page "http://cyberelk.net/tim/software/xmlto/")
1158 (synopsis "Front-end to an XSL toolchain")
1159 (description
1160 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
1161stylesheet for the conversion you want and applies it using an external
1162XSL-T processor. It also performs any necessary post-processing.")
1163 (license license:gpl2+)))
0899144f
AE
1164
1165(define-public xmlsec
1166 (package
1167 (name "xmlsec")
abe13f19 1168 (version "1.2.31")
0899144f 1169 (source (origin
50f5aa4b
TGR
1170 (method url-fetch)
1171 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
1172 "xmlsec1-" version ".tar.gz"))
1173 (sha256
1174 (base32
abe13f19 1175 "09hbbaz2d9hw645q27apkjs1mdr6vd85x5z3c9hzgr1iri9bq44v"))))
0899144f 1176 (build-system gnu-build-system)
50f5aa4b 1177 (propagated-inputs ; according to xmlsec1.pc
0899144f
AE
1178 `(("libxml2" ,libxml2)
1179 ("libxslt" ,libxslt)))
1180 (inputs
1181 `(("gnutls" ,gnutls)
1182 ("libgcrypt" ,libgcrypt)
1183 ("libltdl" ,libltdl)))
e4aab734
RW
1184 (native-inputs
1185 `(("pkg-config" ,pkg-config)))
a5b570b4 1186 (home-page "https://www.aleksey.com/xmlsec/")
0899144f
AE
1187 (synopsis "XML Security Library")
1188 (description
1189 "The XML Security Library is a C library based on Libxml2. It
1190supports XML security standards such as XML Signature, XML Encryption,
1191Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
1192Libxml2).")
1193 (license (license:x11-style "file://COPYING"
1194 "See 'COPYING' in the distribution."))))
96f8d991 1195
b4c9a317 1196(define-public xmlsec-nss
1a265842 1197 (package/inherit xmlsec
b4c9a317 1198 (name "xmlsec-nss")
3825b444
TGR
1199 (native-inputs
1200 ;; For tests.
1201 `(("nss:bin" ,nss "bin") ; for certutil
1202 ,@(package-native-inputs xmlsec)))
b4c9a317
MB
1203 (inputs
1204 `(("nss" ,nss)
1205 ("libltdl" ,libltdl)))
9128ca04
MB
1206 (arguments
1207 ;; NSS no longer supports MD5 since 3.59, don't attempt to use it.
1208 '(#:configure-flags '("--disable-md5")))
b4c9a317
MB
1209 (synopsis "XML Security Library (using NSS instead of GnuTLS)")))
1210
96f8d991
RW
1211(define-public minixml
1212 (package
1213 (name "minixml")
e29432ac 1214 (version "3.2")
96f8d991 1215 (source (origin
ee4e439a 1216 (method url-fetch)
eba9ecd4 1217 (uri (string-append "https://github.com/michaelrsweet/mxml/"
b7cbcee5 1218 "releases/download/v" version
eba9ecd4 1219 "/mxml-" version ".tar.gz"))
96f8d991
RW
1220 (sha256
1221 (base32
e29432ac 1222 "0x698ayv00vrjg0yfm20lakpgl7m02x1fk2n09wygwk4973gd55q"))))
96f8d991
RW
1223 (build-system gnu-build-system)
1224 (arguments
5b59c775
TGR
1225 `(#:configure-flags
1226 (list (string-append "LDFLAGS=-Wl,-rpath="
1227 (assoc-ref %outputs "out") "/lib"))
b7cbcee5 1228 #:tests? #f)) ; tests are run during build
e29432ac 1229 (home-page "https://www.msweet.org/mxml/")
96f8d991
RW
1230 (synopsis "Small XML parsing library")
1231 (description
1232 "Mini-XML is a small C library to read and write XML files and strings in
1233UTF-8 and UTF-16 encoding.")
1234 ;; LGPL 2.0+ with additional exceptions for static linking
1235 (license license:lgpl2.0+)))
33ae9107
DT
1236
1237;; TinyXML is an unmaintained piece of software, so the patches and build
1238;; system massaging have no upstream potential.
1239(define-public tinyxml
1240 (package
1241 (name "tinyxml")
1242 (version "2.6.2")
1243 (source (origin
1244 (method url-fetch)
de67e922
LF
1245 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
1246 version "/tinyxml_"
33ae9107
DT
1247 (string-join (string-split version #\.) "_")
1248 ".tar.gz"))
671249b9 1249 (file-name (string-append name "-" version ".tar.gz"))
33ae9107
DT
1250 (sha256
1251 (base32
1252 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 1253 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
1254 (build-system gnu-build-system)
1255 ;; This library is missing *a lot* of the steps to make it usable, so we
1256 ;; have to add them here, like every other distro must do.
1257 (arguments
1258 `(#:phases
1259 (modify-phases %standard-phases
1260 (delete 'configure)
1261 (add-after 'build 'build-shared-library
1262 (lambda _
0efb6452
EF
1263 (invoke "g++" "-Wall" "-O2" "-shared" "-fpic"
1264 "tinyxml.cpp" "tinyxmlerror.cpp"
1265 "tinyxmlparser.cpp" "tinystr.cpp"
1266 "-o" "libtinyxml.so")))
33ae9107 1267 (replace 'check
0efb6452 1268 (lambda _ (invoke "./xmltest")))
33ae9107
DT
1269 (replace 'install
1270 (lambda* (#:key outputs #:allow-other-keys)
1271 (let* ((out (assoc-ref outputs "out"))
1272 (include (string-append out "/include"))
1273 (lib (string-append out "/lib"))
1274 (pkgconfig (string-append out "/lib/pkgconfig"))
1275 (doc (string-append out "/share/doc")))
1276 ;; Install libs and headers.
1277 (install-file "libtinyxml.so" lib)
1278 (install-file "tinystr.h" include)
1279 (install-file "tinyxml.h" include)
1280 ;; Generate and install pkg-config file.
1281 (mkdir-p pkgconfig)
1282 ;; Software such as Kodi expect this file to be present, but
1283 ;; it's not provided in the source code.
1284 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
1285 (lambda (port)
1286 (format port "prefix=~a
1287exec_prefix=${prefix}
1288libdir=${exec_prefix}/lib
1289includedir=${prefix}/include
1290
1291Name: TinyXML
1292Description: A simple, small, C++ XML parser
1293Version: ~a
1294Libs: -L${libdir} -ltinyxml
1295Cflags: -I${includedir}
1296"
1297 out ,version)))
1298 ;; Install docs.
1299 (mkdir-p doc)
1300 (copy-recursively "docs" (string-append doc "tinyxml"))
1301 #t))))))
1302 (synopsis "Small XML parser for C++")
1303 (description "TinyXML is a small and simple XML parsing library for the
05077200 1304C++ programming language.")
33ae9107
DT
1305 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
1306 (license license:zlib)))
fe9451c5 1307
931bd7f6
TGR
1308(define-public tinyxml2
1309 (package
1310 (name "tinyxml2")
70d1e971 1311 (version "8.0.0")
931bd7f6
TGR
1312 (source
1313 (origin
4bad4fbd
TGR
1314 (method git-fetch)
1315 (uri (git-reference
b0e7b699 1316 (url "https://github.com/leethomason/tinyxml2")
4bad4fbd
TGR
1317 (commit version)))
1318 (file-name (git-file-name name version))
931bd7f6 1319 (sha256
70d1e971 1320 (base32 "0raa8r2hsagk7gjlqjwax95ib8d47ba79n91r4aws2zg8y6ssv1d"))))
931bd7f6 1321 (build-system cmake-build-system)
931bd7f6
TGR
1322 (synopsis "Small XML parser for C++")
1323 (description "TinyXML2 is a small and simple XML parsing library for the
1324C++ programming language.")
1325 (home-page "http://www.grinninglizard.com/tinyxml2/")
1326 (license license:zlib)))
1327
fe9451c5
RG
1328(define-public xmlstarlet
1329 (package
1330 (name "xmlstarlet")
1331 (version "1.6.1")
1332 (source
1333 (origin
1334 (method url-fetch)
1335 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
1336 version "/xmlstarlet-" version ".tar.gz"))
1337 (sha256
1338 (base32
1339 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
1340 (build-system gnu-build-system)
22ea0235
MB
1341 (arguments
1342 '(#:phases
1343 (modify-phases %standard-phases
1344 (add-before 'check 'drop-failing-tests
1345 (lambda _
1346 ;; FIXME: Why are these tests failing.
1347 (substitute* "Makefile"
1348 (("^examples/schema1\\\\") "\\")
1349 (("^examples/valid1\\\\") "\\"))
b04198a1
PL
1350 #t))
1351 (add-after 'install 'symlink-xmlstarlet
1352 (lambda* (#:key outputs #:allow-other-keys)
1353 ;; Other distros usually either rename or symlink the `xml' binary
1354 ;; as `xmlstarlet', let's do it as well for compatibility.
1355 (let* ((out (assoc-ref outputs "out"))
1356 (bin (string-append out "/bin")))
1357 (symlink "xml" (string-append bin "/xmlstarlet"))
1358 #t))))))
fe9451c5
RG
1359 (inputs
1360 `(("libxslt" ,libxslt)
1361 ("libxml2" ,libxml2)))
1362 (home-page "http://xmlstar.sourceforge.net/")
1363 (synopsis "Command line XML toolkit")
1364 (description "XMLStarlet is a set of command line utilities which can be
1365used to transform, query, validate, and edit XML documents. XPath is used to
1366match and extract data, and elements can be added, deleted or modified using
1367XSLT and EXSLT.")
1368 (license license:x11)))
19c33040 1369
767d24e8
SR
1370(define-public html-xml-utils
1371 (package
1372 (name "html-xml-utils")
57f5a774 1373 (version "7.9")
767d24e8
SR
1374 (source
1375 (origin
1376 (method url-fetch)
1377 (uri (string-append
1378 "https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-"
1379 version ".tar.gz"))
1380 (sha256
57f5a774 1381 (base32 "0gs3xvdbzhk5k12i95p5d4fgkkaldnlv45sch7pnncb0lrpcjsnq"))))
767d24e8
SR
1382 (build-system gnu-build-system)
1383 (home-page "https://www.w3.org/Tools/HTML-XML-utils/")
1384 (synopsis "Command line utilities to manipulate HTML and XML files")
1385 (description "HTML-XML-utils provides a number of simple utilities for
1386manipulating and converting HTML and XML files in various ways. The suite
1387consists of the following tools:
1388
1389@itemize
1390 @item @command{asc2xml} convert from @code{UTF-8} to @code{&#nnn;} entities
1391 @item @command{xml2asc} convert from @code{&#nnn;} entities to @code{UTF-8}
1392 @item @command{hxaddid} add IDs to selected elements
1393 @item @command{hxcite} replace bibliographic references by hyperlinks
1394 @item @command{hxcite} mkbib - expand references and create bibliography
1395 @item @command{hxclean} apply heuristics to correct an HTML file
1396 @item @command{hxcopy} copy an HTML file while preserving relative links
1397 @item @command{hxcount} count elements and attributes in HTML or XML files
1398 @item @command{hxextract} extract selected elements
1399 @item @command{hxincl} expand included HTML or XML files
1400 @item @command{hxindex} create an alphabetically sorted index
1401 @item @command{hxmkbib} create bibliography from a template
1402 @item @command{hxmultitoc} create a table of contents for a set of HTML files
1403 @item @command{hxname2id} move some @code{ID=} or @code{NAME=} from A
1404elements to their parents
1405 @item @command{hxnormalize} pretty-print an HTML file
1406 @item @command{hxnsxml} convert output of hxxmlns back to normal XML
1407 @item @command{hxnum} number section headings in an HTML file
1408 @item @command{hxpipe} convert XML to a format easier to parse with Perl or AWK
1409 @item @command{hxprintlinks} number links and add table of URLs at end of an HTML file
1410 @item @command{hxprune} remove marked elements from an HTML file
1411 @item @command{hxref} generate cross-references
1412 @item @command{hxselect} extract elements that match a (CSS) selector
1413 @item @command{hxtoc} insert a table of contents in an HTML file
1414 @item @command{hxuncdata} replace CDATA sections by character entities
1415 @item @command{hxunent} replace HTML predefined character entities to @code{UTF-8}
1416 @item @command{hxunpipe} convert output of pipe back to XML format
1417 @item @command{hxunxmlns} replace \"global names\" by XML Namespace prefixes
1418 @item @command{hxwls} list links in an HTML file
1419 @item @command{hxxmlns} replace XML Namespace prefixes by \"global names\"
1420@end itemize
1421")
1422 (license license:expat)))
1423
19c33040
JN
1424(define-public xlsx2csv
1425 (package
1426 (name "xlsx2csv")
3255fc3b 1427 (version "0.7.4")
3047c7ba
TGR
1428 (source
1429 (origin
1430 (method git-fetch)
1431 (uri (git-reference
b0e7b699 1432 (url "https://github.com/dilshod/xlsx2csv")
3047c7ba
TGR
1433 (commit version)))
1434 (file-name (git-file-name name version))
1435 (sha256
1436 (base32 "168dm6p7w6pvgd87yb9hcxv9y0liv6mxgril202nfva68cp8y939"))))
19c33040
JN
1437 (build-system python-build-system)
1438 (arguments
3255fc3b 1439 `(#:python ,python-2 ; use python-2 for the test script
19c33040
JN
1440 #:phases
1441 (modify-phases %standard-phases
1442 (replace 'check
1443 (lambda _
1444 (substitute* "test/run"
3255fc3b 1445 ;; Run tests with `python' only.
19c33040 1446 (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
aa6f87a2 1447 (invoke "test/run"))))))
19c33040
JN
1448 (home-page "https://github.com/dilshod/xlsx2csv")
1449 (synopsis "XLSX to CSV converter")
1450 (description
1451 "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
1452XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
1453files. It is designed to be fast and to handle large input files.")
1454 (license license:gpl2+)))
d2b51c08 1455
1456(define-public python-defusedxml
1457 (package
1458 (name "python-defusedxml")
4ee948e3 1459 (version "0.6.0")
d2b51c08 1460 (source
1461 (origin
1462 (method url-fetch)
1463 (uri (pypi-uri "defusedxml" version))
1464 (sha256
1465 (base32
4ee948e3 1466 "1xbp8fivl3wlbyg2jrvs4lalaqv1xp9a9f29p75wdx2s2d6h717n"))))
d2b51c08 1467 (build-system python-build-system)
1468 (home-page "https://bitbucket.org/tiran/defusedxml")
1469 (synopsis "XML bomb protection for Python stdlib modules")
1470 (description
1471 "Defusedxml provides XML bomb protection for Python stdlib modules.")
1472 (license license:psfl)))
1473
1474(define-public python2-defusedxml
1475 (package-with-python2 python-defusedxml))
ca8f3f9a 1476
623fb4d1
AP
1477(define-public freexl
1478 (package
1479 (name "freexl")
6dce1251 1480 (version "1.0.6")
623fb4d1
AP
1481 (source (origin
1482 (method url-fetch)
4edc6bbd
TGR
1483 (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
1484 "freexl-" version ".tar.gz"))
623fb4d1
AP
1485 (sha256
1486 (base32
6dce1251 1487 "08pwj17l0lgp6zms9nmpawdxpvhzrslklbd53s4b430k7mxbbs1x"))))
623fb4d1
AP
1488 (build-system gnu-build-system)
1489 (home-page "https://www.gaia-gis.it/fossil/freexl/index")
1490 (synopsis "Read Excel files")
1491 (description
1492 "FreeXL is a C library to extract valid data from within an Excel (.xls)
1493spreadsheet.")
1494 ;; Any of these licenses may be picked.
1495 (license (list license:gpl2+
1496 license:lgpl2.1+
1497 license:mpl1.1))))
d00d6cea
RW
1498
1499(define-public xerces-c
1500 (package
1501 (name "xerces-c")
3e7a4867 1502 (version "3.2.3")
d00d6cea
RW
1503 (source (origin
1504 (method url-fetch)
1505 (uri (string-append "mirror://apache/xerces/c/3/sources/"
1506 "xerces-c-" version ".tar.xz"))
1507 (sha256
1508 (base32
3e7a4867 1509 "0jf1khvlssg31vkxbc25dxjxcxm56xb8nywj1sypj6hxzjlrkz0j"))))
d00d6cea
RW
1510 (build-system gnu-build-system)
1511 (arguments
1512 (let ((system (or (%current-target-system)
1513 (%current-system))))
1514 (if (string-prefix? "x86_64" system)
1515 '()
1516 '(#:configure-flags '("--disable-sse2")))))
1517 (native-inputs
1518 `(("perl" ,perl)))
c61bfa08 1519 (home-page "https://xerces.apache.org/xerces-c/")
d00d6cea
RW
1520 (synopsis "Validating XML parser library for C++")
1521 (description "Xerces-C++ is a validating XML parser written in a portable
1522subset of C++. Xerces-C++ makes it easy to give your application the ability
1523to read and write XML data. A shared library is provided for parsing,
1524generating, manipulating, and validating XML documents using the DOM, SAX, and
1525SAX2 APIs.")
1526 (license license:asl2.0)))
77d7b57c 1527
53657739
EK
1528(define-public xlsxio
1529 (package
1530 (name "xlsxio")
38e5bc92 1531 (version "0.2.29")
53657739
EK
1532 (source
1533 (origin
1534 (method git-fetch)
1535 (uri (git-reference
1536 (url "https://github.com/brechtsanders/xlsxio")
1537 (commit version)))
1538 (file-name (git-file-name name version))
1539 (sha256
38e5bc92 1540 (base32 "0jr6ggzhd8aakdvppcl8scy9j9jafg82zbzr4ih996sz8lrj90fn"))))
53657739
EK
1541 (native-inputs
1542 `(("expat" ,expat)
1543 ("make" ,gnu-make)
1544 ("minizip" ,minizip)
1545 ("which" ,which)))
1546 (build-system gnu-build-system)
1547 (arguments
1548 `(#:phases
1549 (modify-phases %standard-phases
1550 (delete 'configure)
1551 (delete 'check)
1552 (replace 'install
1553 (lambda* (#:key outputs #:allow-other-keys)
1554 (invoke "make" "install"
1555 (string-append
1556 "PREFIX=" (assoc-ref outputs "out"))))))))
1557 (synopsis "C library for reading and writing .xlsx files")
1558 (description "XLSX I/O aims to provide a C library for reading and writing
1559.xlsx files. The .xlsx file format is the native format used by Microsoft(R)
1560Excel(TM) since version 2007.")
1561 (home-page "https://github.com/brechtsanders/xlsxio")
1562 (license license:expat)))
1563
77d7b57c
RW
1564(define-public java-simple-xml
1565 (package
1566 (name "java-simple-xml")
1567 (version "2.7.1")
1568 (source (origin
1569 (method url-fetch)
1570 (uri (string-append "mirror://sourceforge/simple/simple-xml-"
1571 version ".zip"))
1572 (sha256
1573 (base32
3c274149
GB
1574 "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
1575 (patches (search-patches "java-simple-xml-fix-tests.patch"))))
77d7b57c
RW
1576 (build-system ant-build-system)
1577 (arguments
1578 `(#:build-target "build"
1579 #:test-target "test"
1580 #:phases
1581 (modify-phases %standard-phases
1582 (replace 'install (install-jars "jar")))))
1583 (native-inputs
1584 `(("unzip" ,unzip)))
1585 (home-page "http://simple.sourceforge.net/")
1586 (synopsis "XML serialization framework for Java")
1587 (description "Simple is a high performance XML serialization and
1588configuration framework for Java. Its goal is to provide an XML framework
1589that enables rapid development of XML configuration and communication systems.
1590This framework aids the development of XML systems with minimal effort and
1591reduced errors. It offers full object serialization and deserialization,
1592maintaining each reference encountered.")
1593 (license license:asl2.0)))
3b695802
P
1594
1595(define-public perl-xml-xpathengine
1596 (package
1597 (name "perl-xml-xpathengine")
1598 (version "0.14")
1599 (source (origin
1600 (method url-fetch)
1601 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1602 "XML-XPathEngine-" version ".tar.gz"))
1603 (sha256
1604 (base32
1605 "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
1606 (build-system perl-build-system)
9aba9b12 1607 (home-page "https://metacpan.org/release/XML-XPathEngine")
3b695802
P
1608 (synopsis "Re-usable XPath engine for DOM-like trees")
1609 (description
1610 "This module provides an XPath engine, that can be re-used by other
1611modules/classes that implement trees.
1612
2847df6b 1613In order to use the XPath engine, nodes in the user module need to mimic DOM
3b695802
P
1614nodes. The degree of similitude between the user tree and a DOM dictates how
1615much of the XPath features can be used. A module implementing all of the DOM
1616should be able to use this module very easily (you might need to add the
1617@code{cmp} method on nodes in order to get ordered result sets).")
1618 (license license:perl-license)))
9e1c3581
P
1619
1620(define-public perl-tree-xpathengine
1621 (package
1622 (name "perl-tree-xpathengine")
1623 (version "0.05")
1624 (source (origin
1625 (method url-fetch)
1626 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1627 "Tree-XPathEngine-" version ".tar.gz"))
1628 (sha256
1629 (base32
1630 "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
1631 (build-system perl-build-system)
9aba9b12 1632 (home-page "https://metacpan.org/release/Tree-XPathEngine")
9e1c3581
P
1633 (synopsis "Re-usable XPath engine")
1634 (description
1635 "This module provides an XPath engine, that can be re-used by other
1636module/classes that implement trees. It is designed to be compatible with
1637@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
1638by @code{Tree::XPathEngine}.")
1639 (license license:perl-license)))
b7c59195
P
1640
1641(define-public perl-xml-filter-buffertext
1642 (package
1643 (name "perl-xml-filter-buffertext")
1644 (version "1.01")
1645 (source
1646 (origin
1647 (method url-fetch)
1648 (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
1649 "XML-Filter-BufferText-" version ".tar.gz"))
1650 (sha256
1651 (base32
1652 "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
1653 (build-system perl-build-system)
1654 (propagated-inputs
1655 `(("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1656 (home-page "https://metacpan.org/release/XML-Filter-BufferText")
b7c59195
P
1657 (synopsis "Filter to put all characters() in one event")
1658 (description "This is a very simple filter. One common cause of
1659grief (and programmer error) is that XML parsers aren't required to provide
1660character events in one chunk. They can, but are not forced to, and most
1661don't. This filter does the trivial but oft-repeated task of putting all
1662characters into a single event.")
1663 (license license:perl-license)))
33b592ee
P
1664
1665(define-public perl-xml-sax-writer
1666 (package
1667 (name "perl-xml-sax-writer")
1668 (version "0.57")
1669 (source (origin
1670 (method url-fetch)
1671 (uri (string-append
1672 "mirror://cpan/authors/id/P/PE/PERIGRIN/"
1673 "XML-SAX-Writer-" version ".tar.gz"))
1674 (sha256
1675 (base32
1676 "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
1677 (build-system perl-build-system)
1678 (propagated-inputs
1679 `(("perl-libxml" ,perl-libxml)
1680 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
c695fb76 1681 ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
33b592ee 1682 ("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1683 (home-page "https://metacpan.org/release/XML-SAX-Writer")
33b592ee
P
1684 (synopsis "SAX2 XML Writer")
1685 (description
1686 "This is an XML writer that understands SAX2. It is based on
1687@code{XML::Handler::YAWriter}.")
1688 (license license:perl-license)))
9e88b210
P
1689
1690(define-public perl-xml-handler-yawriter
1691 (package
1692 (name "perl-xml-handler-yawriter")
1693 (version "0.23")
1694 (source
1695 (origin
1696 (method url-fetch)
1697 (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
1698 "XML-Handler-YAWriter-" version ".tar.gz"))
1699 (sha256
1700 (base32
1701 "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
1702 (build-system perl-build-system)
1703 (propagated-inputs
1704 `(("perl-libxml" ,perl-libxml)))
9aba9b12 1705 (home-page "https://metacpan.org/release/XML-Handler-YAWriter")
9e88b210
P
1706 (synopsis "Yet another Perl SAX XML Writer")
1707 (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
1708It provides a flexible escaping technique and pretty printing.")
1709 (license license:perl-license)))
85f225fb
P
1710
1711(define-public perl-xml-twig
1712 (package
1713 (name "perl-xml-twig")
1714 (version "3.52")
1715 (source (origin
1716 (method url-fetch)
1717 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1718 "XML-Twig-" version ".tar.gz"))
1719 (sha256
1720 (base32
1721 "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
1722 (build-system perl-build-system)
1723 (inputs
1724 `(("expat" ,expat)))
1725 (propagated-inputs
1726 `(("perl-html-tidy" ,perl-html-tidy)
1727 ("perl-html-tree" ,perl-html-tree)
1728 ("perl-io-captureoutput" ,perl-io-captureoutput)
1729 ("perl-io-string" ,perl-io-string)
1730 ("perl-io-stringy" ,perl-io-stringy)
1731 ("perl-libxml" ,perl-libxml)
1732 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
1733 ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
1734 ("perl-xml-parser" ,perl-xml-parser)
1735 ("perl-xml-sax-writer" ,perl-xml-sax-writer)
1736 ("perl-xml-simple" ,perl-xml-simple)
1737 ("perl-xml-xpathengine" ,perl-xml-xpathengine)
c695fb76 1738 ("perl-test-pod" ,perl-test-pod)
85f225fb 1739 ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
9aba9b12 1740 (home-page "https://metacpan.org/release/XML-Twig")
85f225fb
P
1741 (synopsis "Perl module for processing huge XML documents in tree mode")
1742 (description "@code{XML::Twig} is an XML transformation module. Its
1743strong points: can be used to process huge documents while still being in tree
1744mode; not bound by DOM or SAX, so it is very perlish and offers a very
1745comprehensive set of methods; simple to use; DWIMs as much as possible.
1746
1747What it doesn't offer: full SAX support (it can export SAX, but only reads
1748XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
1749support.")
1750 (license license:perl-license)))
1a17ca26
JL
1751
1752;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
1753;; xml-apis.jar and xml-apis-1.4.01.jar.
1754(define-public java-jaxp
1755 (package
1756 (name "java-jaxp")
1757 (version "1.4.01")
1758 (source
1759 (origin
1760 (method url-fetch)
1761 (uri (string-append "mirror://apache/xerces/xml-commons/source/"
1762 "xml-commons-external-" version "-src.tar.gz"))
1763 (sha256
1764 (base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
1765 (build-system ant-build-system)
1766 (arguments
1767 `(#:jar-name "jaxp.jar"
1768 #:jdk ,icedtea-8
1769 #:source-dir ".."
1770 #:tests? #f)); no tests
1771 (home-page "http://xerces.apache.org/xml-commons/")
1772 (synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
1773 (description "Jaxp from the Apache XML Commons project is used by
1774the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
1775
1776@itemize
1777@item Document Object Model (DOM)
1778@item Simple API for XML (SAX)
1779@item Java APIs for XML Processing (JAXP)
1780@item Transformation API for XML (TrAX)
1781@item Document Object Model (DOM) Load and Save
1782@item JSR 206 Java API for XML Processing
1783@end itemize")
1784 (license (list license:asl2.0
1785 license:w3c ;; Files under org.w3c
1786 license:public-domain)))) ;; org.xml.sax
9a86ee78
JL
1787
1788(define-public java-apache-xml-commons-resolver
1789 (package
1790 (name "java-apache-xml-commons-resolver")
1791 (version "1.2")
1792 (source
1793 (origin
1794 (method url-fetch)
1795 (uri (string-append "mirror://apache/xerces/xml-commons/"
1796 "xml-commons-resolver-" version ".tar.gz"))
1797 (sha256
1798 (base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
1799 (modules '((guix build utils)))
1800 (snippet
1801 '(begin
1802 (for-each delete-file (find-files "." ".*\\.(jar|zip)"))
1803 #t))))
1804 (build-system ant-build-system)
1805 (arguments
1806 `(#:jar-name (string-append "xml-resolver.jar")
1807 #:tests? #f)); no tests
1808 (inputs
1809 `(("java-junit" ,java-junit)))
1810 (home-page "http://xerces.apache.org/xml-commons/")
1811 (synopsis "Catalog-based entity and URI resolution")
1812 (description "The resolver class implements the full semantics of OASIS Technical
1813Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
18142001 Committee Specification of OASIS XML Catalogs.
1815
1816It also includes a framework of classes designed to read catalog files
1817in a number of formats:
1818
1819@itemize
1820@item The plain-text flavor described by TR9401.
1821@item The XCatalog XML format defined by John Cowan
1822@item The XML Catalog format defined by the OASIS Entity Resolution
1823 Technical Committee.
1824@end itemize")
1825 (license license:asl2.0)))
7eae94d8
JL
1826
1827;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
1828;; This package is a bootstrap version without dependencies on dom4j and xom.
1829(define java-jaxen-bootstrap
1830 (package
1831 (name "java-jaxen-bootstrap")
1832 (version "1.1.6")
1833 (source (origin
1834 (method url-fetch)
1835 ;; No release on github
1836 (uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
1837 version "/jaxen-" version "-sources.jar"))
1838 (sha256
1839 (base32
1840 "18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
1841 (build-system ant-build-system)
1842 (arguments
1843 `(#:jar-name "jaxen.jar"
1844 #:source-dir "src"
1845 #:tests? #f; no tests
1846 #:phases
1847 (modify-phases %standard-phases
1848 (add-before 'build 'remove-dom4j
1849 (lambda _
1850 (delete-file-recursively "src/org/jaxen/dom4j")
1851 (delete-file-recursively "src/org/jaxen/xom")
1852 #t)))))
1853 (inputs
1854 `(("java-jdom" ,java-jdom)))
1855 (home-page "https://github.com/jaxen-xpath/jaxen")
1856 (synopsis "XPath library")
1857 (description "Jaxen is an XPath library written in Java. It is adaptable
1858to many different object models, including DOM, XOM, dom4j, and JDOM. It is
1859also possible to write adapters that treat non-XML trees such as compiled
1860Java byte code or Java beans as XML, thus enabling you to query these trees
1861with XPath too.")
1862 (license license:bsd-3)))
5552080d 1863
be0524f4
JL
1864(define-public java-jaxen
1865 (package
1866 (inherit java-jaxen-bootstrap)
1867 (name "java-jaxen")
1868 (inputs
1869 `(("java-jdom" ,java-jdom)
1870 ("java-xom" ,java-xom)
1871 ("java-dom4j" ,java-dom4j)))))
1872
5552080d
JL
1873(define-public java-xom
1874 (package
1875 (name "java-xom")
1876 (version "127")
1877 (source (origin
eed5e162
TGR
1878 (method git-fetch)
1879 (uri (git-reference
b0e7b699 1880 (url "https://github.com/elharo/xom")
eed5e162
TGR
1881 (commit (string-append "XOM_" version))))
1882 (file-name (git-file-name name version))
5552080d
JL
1883 (sha256
1884 (base32
eed5e162 1885 "1jh6y03g5zzdhsb5jm6ms1xnamr460qmn96y3w6aw0ikfwqlg0bq"))
5552080d
JL
1886 (modules '((guix build utils)))
1887 (snippet
1888 '(begin
1889 (for-each delete-file
1890 (find-files "." "\\.jar$"))
1891 #t))))
1892 (build-system ant-build-system)
1893 (arguments
1894 `(#:jar-name "xom.jar"
1895 #:jdk ,icedtea-8
eed5e162 1896 #:tests? #f ; no tests
5552080d
JL
1897 #:phases
1898 (modify-phases %standard-phases
eed5e162
TGR
1899 (add-after 'unpack 'make-git-checkout-writable
1900 (lambda _
1901 (for-each make-file-writable (find-files "."))
1902 #t))
5552080d
JL
1903 (add-before 'configure 'fix-tagsoup-dep
1904 (lambda _
1905 ;; FIXME: Where is tagsoup source?
1906 (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
1907 #t)))))
1908 (inputs
1909 `(("java-jdom" ,java-jdom)
1910 ("java-junit" ,java-junit)
1911 ("java-classpathx-servletapi" ,java-classpathx-servletapi)
1912 ("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1913 ("java-xerces" ,java-xerces)))
1914 (home-page "https://xom.nu/")
1915 (synopsis "XML Object Model")
1916 (description "XOM is a new XML Object Model for processing XML with Java
1917that strives for correctness and simplicity.")
1918 ;; 2.1 only
1919 (license license:lgpl2.1)))
96f31935
JL
1920
1921(define-public java-xsdlib
1922 (package
1923 (name "java-xsdlib")
1924 (version "2013.2")
1925 (source (origin
1926 (method url-fetch)
c3d56df5 1927 (uri (string-append "https://repo1.maven.org/maven2/com/sun/msv/"
96f31935
JL
1928 "datatype/xsd/xsdlib/" version "/xsdlib-"
1929 version "-sources.jar"))
1930 (sha256
1931 (base32
1932 "185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
1933 (build-system ant-build-system)
1934 (arguments
1935 `(#:tests? #f; no tests
1936 #:jar-name "xsdlib.jar"
1937 #:jdk ,icedtea-8))
1938 (inputs
1939 `(("java-xerces" ,java-xerces)))
c3d56df5
BH
1940 (home-page (string-append "https://web.archive.org/web/20161127144537/"
1941 "https://msv.java.net//"))
96f31935
JL
1942 (synopsis "Sun Multi-Schema Validator")
1943 (description "Xsdlib contains an implementation of sun.com.msv, an XML
1944validator.")
1945 (license license:bsd-2)))
82d7d4e1
JL
1946
1947(define-public java-xpp3
1948 (package
1949 (name "java-xpp3")
1950 (version "1.1.4")
1951 (source (origin
1952 (method url-fetch)
1953 (uri (string-append "http://www.extreme.indiana.edu/dist/"
1954 "java-repository/xpp3/distributions/xpp3-"
1955 version "_src.tgz"))
1956 (sha256
1957 (base32
1958 "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
1959 (modules '((guix build utils)))
1960 (snippet
1961 '(begin ;; Delete bundled jar archives.
1962 (for-each delete-file (find-files "." ".*\\.jar"))
1963 #t))))
1964 (build-system ant-build-system)
1965 (arguments
1966 `(#:tests? #f; no tests
1967 #:build-target "jar"
1968 #:phases
1969 (modify-phases %standard-phases
1970 (replace 'install (install-jars "build")))))
1971 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1972 (synopsis "Streaming pull XML parser")
1973 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1974parser and should be used when there is a need to process quickly and
1975efficiently all input elements (for example in SOAP processors). This
1976package is a stable XmlPull parsing engine that is based on ideas from XPP
1977and in particular XPP2 but completely revised and rewritten to take the best
1978advantage of JIT JVMs.")
1979 (license (license:non-copyleft "file://LICENSE.txt"))))
9421f682
JL
1980
1981(define-public java-xmlpull2
1982 (package
1983 (name "java-xmlpull2")
1984 (version "2.1.10")
1985 (source (origin
1986 (method url-fetch)
1987 (uri (string-append "http://www.extreme.indiana.edu/xgws/xsoap/"
1988 "PullParser/PullParser" version ".tgz"))
1989 (sha256
1990 (base32
1991 "1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
1992 (modules '((guix build utils)))
1993 (snippet
1994 '(begin ;; Delete bundled jar archives.
1995 (for-each delete-file (find-files "." ".*\\.jar"))
1996 #t))))
1997 (build-system ant-build-system)
1998 (arguments
1999 `(#:tests? #f; no tests
2000 #:build-target "impl"
2001 #:phases
2002 (modify-phases %standard-phases
2003 (replace 'install (install-jars "build/lib")))))
2004 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
2005 (synopsis "Streaming pull XML parser")
2006 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
2007parser and should be used when there is a need to process quickly and
2008efficiently all input elements (for example in SOAP processors). This
2009package is in maintenance mode.")
2010 (license (license:non-copyleft "file:///LICENSE.txt"))))
605c23df 2011
4490dff9
JL
2012(define-public java-xmlpull-api-v1
2013 (package
2014 (name "java-xmlpull-api-v1")
2015 (version "1.1.3.4b")
2016 (source (origin
2017 ;; The package is originally from Extreme! Lab, but the website
2018 ;; is now gone. This repositories contains the sources of the
2019 ;; latest version.
2020 (method git-fetch)
2021 (uri (git-reference
2022 (url "https://github.com/aslom/xmlpull-api-v1")
2023 ;; No releases, this is the latest commit
2024 (commit "abeaa4aa87b2625af70c32f658f44e11355fe568")))
2025 (file-name (git-file-name name version))
2026 (sha256
2027 (base32
2028 "15bdqxfncnakskna4m9gsh4f9iczxy83qxn2anqiqd15z406a5ih"))
2029 (modules '((guix build utils)))
2030 (snippet
2031 `(begin
2032 (delete-file-recursively "lib")
2033 (mkdir-p "lib")
2034 ;; prevents a failure in "dist_lite"
2035 (substitute* "build.xml"
2036 (("README.html") "README.md"))))))
2037 (build-system ant-build-system)
2038 (arguments
2039 `(#:test-target "junit"
2040 #:build-target "dist"
2041 #:phases
2042 (modify-phases %standard-phases
2043 (replace 'install
2044 (lambda* (#:key outputs #:allow-other-keys)
2045 (let* ((out (assoc-ref outputs "out"))
2046 (doc (string-append out "/share/doc/" ,name "-" ,version))
2047 (java (string-append out "/share/java"))
2048 (project (string-append
2049 "xmlpull_"
2050 ,(string-join (string-split version #\.) "_"))))
2051 (mkdir-p doc)
2052 (copy-recursively (string-append "build/dist/" project "/doc/")
2053 doc)
2054 (mkdir-p java)
2055 (copy-file (string-append "build/dist/" project "/" project ".jar")
2056 (string-append java "/" project ".jar")))
2057 )))))
2058 (home-page "https://github.com/aslom/xmlpull-api-v1")
2059 (synopsis "XML pull parsing API")
2060 (description "XmlPull v1 API is a simple to use XML pull parsing API. XML
2061pull parsing allows incremental (sometimes called streaming) parsing of XML
2062where application is in control - the parsing can be interrupted at any given
2063moment and resumed when application is ready to consume more input.")
2064 (license license:public-domain)))
2065
605c23df
JL
2066(define-public java-dom4j
2067 (package
2068 (name "java-dom4j")
f1afdaf4 2069 (version "2.1.1")
605c23df 2070 (source (origin
9d670526
TGR
2071 (method git-fetch)
2072 (uri (git-reference
b0e7b699 2073 (url "https://github.com/dom4j/dom4j")
9d670526
TGR
2074 (commit (string-append "version-" version))))
2075 (file-name (git-file-name name version))
605c23df
JL
2076 (sha256
2077 (base32
f1afdaf4 2078 "0q907srj9v4hwicpcrn4slyld5npf2jv7hzchsgrg29q2xmbwkdl"))
605c23df
JL
2079 (modules '((guix build utils)))
2080 (snippet
2081 '(begin ;; Delete bundled jar archives.
2082 (for-each delete-file (find-files "." ".*\\.jar"))
2083 #t))))
2084 (build-system ant-build-system)
2085 (arguments
2086 `(#:jar-name "dom4j.jar"
2087 #:jdk ,icedtea-8
2088 #:source-dir "src/main/java"
2089 ;; FIXME: Requires xalan, but xalan depends on java-cup which has a
2090 ;; dependency on itself through jflex.
2091 #:tests? #f
2092 #:phases
2093 (modify-phases %standard-phases
2094 (add-before 'build 'copy-jaxen-sources
2095 ;; java-jaxen-bootstrap is not enough. These files have a circular
2096 ;; dependency and there is no subset of dom4j that would allow
2097 ;; breaking the circle.
2098 (lambda* (#:key inputs #:allow-other-keys)
2099 (mkdir-p "jaxen-sources")
2100 (with-directory-excursion "jaxen-sources"
2101 (system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
2102 (mkdir-p "src/main/java/org/jaxen/dom4j")
2103 (copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
2104 "src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
2105 (copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
2106 "src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
2107 #t))
2108 (add-before 'build 'fix-old-xpp2
2109 (lambda _
2110 ;; This package normally depends on xpp2 2.0, but version 2.1.10
2111 ;; is the only version whose source code is published.
2112 (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
2113 (("public void resetStartTag")
2114 "public boolean removeAttributeByRawName(String name) {\n
2115 return false;\n
2116}\n
2117public boolean removeAttributeByName(String name, String name2) {\n
2118 return false;\n
2119}\n\npublic void resetStartTag")
2120 (("Atttribute") "Attribute"))
2121 #t)))))
2122 (inputs
2123 `(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
2124 ("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
2125 ("java-xmlpull2" ,java-xmlpull2)
2126 ("java-xpp3" ,java-xpp3)
2127 ("java-xsdlib" ,java-xsdlib)))
2128 (native-inputs
2129 `(("java-testng" ,java-testng)
2130 ("java-xerces" ,java-xerces)))
2131 (home-page "https://dom4j.github.io/")
2132 (synopsis "Flexible XML framework for Java")
2133 (description "Dom4j is a flexible XML framework for Java. DOM4J works
2134with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
2135low memory footprint.")
2136 ;; some BSD-like 5-clause license
2137 (license (license:non-copyleft "file://LICENSE"))))
3058d8ec
JL
2138
2139(define-public java-kxml2
2140 (package
2141 (name "java-kxml2")
2142 (version "2.4.2")
2143 (source (origin
00fc9389
TGR
2144 (method git-fetch)
2145 (uri (git-reference
b0e7b699 2146 (url "https://github.com/stefanhaustein/kxml2")
00fc9389
TGR
2147 (commit (string-append "v" version))))
2148 (file-name (git-file-name name version))
3058d8ec
JL
2149 (sha256
2150 (base32
00fc9389 2151 "0g6d8c9r9sh3x04sf4wdpgwvhkqvk11k3kq9skx91i60h4vn01hg"))))
3058d8ec
JL
2152 (build-system ant-build-system)
2153 (arguments
2154 `(#:jar-name "kxml2.jar"
2155 #:source-dir "src/main/java"
2156 #:test-include (list "TestWb.java")
2157 ;; Test failure: it was expected to get an XML entity but got the
2158 ;; equivalent Unicode character instead.
2159 #:tests? #f
2160 #:phases
2161 (modify-phases %standard-phases
00fc9389
TGR
2162 (add-after 'unpack 'make-git-checkout-writable
2163 (lambda _
2164 (for-each make-file-writable (find-files "."))
2165 #t))
3058d8ec
JL
2166 (add-before 'build 'copy-resources
2167 (lambda _
aa6f87a2
MW
2168 (copy-recursively "src/main/resources" "build/classes")
2169 #t)))))
3058d8ec
JL
2170 (inputs
2171 `(("java-xpp3" ,java-xpp3)))
2172 (native-inputs
2173 `(("java-junit" ,java-junit)))
2174 (home-page "http://kxml.org")
2175 (synopsis "XML pull parser")
2176 (description "kXML is a small XML pull parser, specially designed for
2177constrained environments such as Applets, Personal Java or devices compliant
2178with the Mobile Information Device Profile (MIDP).")
2179 (license license:expat)))
4c7759f0
JL
2180
2181(define-public java-stax
2182 (package
2183 (name "java-stax")
2184 (version "1.2.0")
2185 (source (origin
2186 (method url-fetch)
2187 (uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
2188 version "/stax-" version "-sources.jar"))
2189 (sha256
2190 (base32
2191 "04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
2192 (build-system ant-build-system)
2193 (arguments
2194 `(#:jar-name "stax.jar"
2195 #:tests? #f; no tests
2196 #:phases
2197 (modify-phases %standard-phases
2198 (add-before 'configure 'fix-utf8
2199 (lambda _
2200 ;; This file is ISO-8859-1 but java expects UTF-8.
2201 ;; Remove special characters in comments.
2202 (with-fluids ((%default-port-encoding "ISO-8859-1"))
2203 (substitute* "src/com/wutka/dtd/Scanner.java"
2204 (("//.*") "\n")))
2205 #t)))))
2206 (home-page "https://repo1.maven.org/maven2/stax/stax/")
2207 (synopsis "Streaming API for XML")
2208 (description "This package provides the reference implementation of the
2209@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
2210and from a Java application. It provides a standard pull parser interface.")
2211 (license license:asl2.0)))
b8798817
JL
2212
2213(define-public java-jettison
2214 (package
2215 (name "java-jettison")
2216 (version "1.3.7")
2217 (source (origin
a4b96726
TGR
2218 (method git-fetch)
2219 (uri (git-reference
b0e7b699 2220 (url "https://github.com/codehaus/jettison")
a4b96726
TGR
2221 (commit (string-append "jettison-" version))))
2222 (file-name (git-file-name name version))
b8798817
JL
2223 (sha256
2224 (base32
a4b96726 2225 "15sydmi5chdh4126qc7v8bsrp7fp4ldaya8a05iby4pq2324q0qw"))))
b8798817
JL
2226 (build-system ant-build-system)
2227 (arguments
2228 `(#:jar-name "jettison.jar"
2229 #:source-dir "src/main/java"
2230 #:test-exclude (list "**/Abstract*.java"
2231 ;; Abstract classes
2232 "**/DOMTest.java"
2233 "**/BadgerFishDOMTest.java"
2234 "**/MappedDOMTest.java")))
2235 (native-inputs
2236 `(("java-junit" ,java-junit)))
2237 (home-page "https://github.com/codehaus/jettison")
2238 (synopsis "StAX implementation for JSON")
2239 (description "Jettison is a Java library for converting XML to JSON and
2240vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
2241implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
2242@code{Mapped} and @code{BadgerFish} conventions.")
2243 (license license:asl2.0)))
a5ec8a5c
JL
2244
2245(define-public java-jdom2
2246 (package
2247 (name "java-jdom")
2248 (version "2.0.6")
2249 (source (origin
951bdf5a
TGR
2250 (method git-fetch)
2251 (uri (git-reference
b0e7b699 2252 (url "https://github.com/hunterhacker/jdom")
951bdf5a
TGR
2253 (commit (string-append "JDOM-" version))))
2254 (file-name (git-file-name name version))
a5ec8a5c
JL
2255 (sha256
2256 (base32
951bdf5a 2257 "14vv1kxrsdvwi4cz3rx6r48w5y6fvk9cymil8qhvxwp56xxrgxiq"))))
a5ec8a5c
JL
2258 (build-system ant-build-system)
2259 (arguments
2260 `(#:build-target "package"
951bdf5a 2261 #:tests? #f ; tests are run as part of the build process
a5ec8a5c
JL
2262 #:phases
2263 (modify-phases %standard-phases
2264 (replace 'install
2265 (install-jars "build")))))
2266 (home-page "http://jdom.org/")
2267 (synopsis "Access, manipulate, and output XML data")
2268 (description "Jdom is a Java-based solution for accessing, manipulating, and
2269outputting XML data from Java code.")
2270 (license license:bsd-4)))
5ee7b02f
JL
2271
2272(define-public java-xstream
2273 (package
2274 (name "java-xstream")
fdf7095e 2275 (version "1.4.15")
b05bc3c4
TGR
2276 (source
2277 (origin
2278 (method git-fetch)
2279 (uri (git-reference
b0e7b699 2280 (url "https://github.com/x-stream/xstream")
b05bc3c4
TGR
2281 (commit (string-append
2282 "XSTREAM_"
2283 (string-map (lambda (x) (if (eq? x #\.) #\_ x))
2284 version)))))
2285 (file-name (git-file-name name version))
2286 (sha256
fdf7095e 2287 (base32 "1178qryrjwjp44439pi5dxzd32896r5zs429z1qhlc09951r7mi9"))))
5ee7b02f
JL
2288 (build-system ant-build-system)
2289 (arguments
2290 `(#:jar-name "xstream.jar"
b05bc3c4 2291 ;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system.
5ee7b02f
JL
2292 #:tests? #f
2293 #:jdk ,icedtea-8
2294 #:source-dir "xstream/src/java"))
2295 (inputs
2296 `(("java-jdom" ,java-jdom)
2297 ("java-jdom2" ,java-jdom2)
2298 ("java-cglib" ,java-cglib)
2299 ("java-joda-time" ,java-joda-time)
2300 ("java-jettison" ,java-jettison)
2301 ("java-xom" ,java-xom)
2302 ("java-xpp3" ,java-xpp3)
2303 ("java-dom4j" ,java-dom4j)
2304 ("java-stax2-api" ,java-stax2-api)
2305 ("java-woodstox-core" ,java-woodstox-core)
2306 ("java-kxml2" ,java-kxml2)
2307 ("java-stax" ,java-stax)))
2308 (home-page "https://x-stream.github.io")
2309 (synopsis "XML serialization library")
2310 (description "XStream is a simple library to serialize Java objects to XML
2311and back again.")
2312 (license license:bsd-3)))
5c1cf7f3 2313
2cce23bf
PN
2314(define-public xmlrpc-c
2315 (package
2316 (name "xmlrpc-c")
2317 (version "1.43.08")
2318 (source (origin
2319 (method url-fetch)
2320 (uri (string-append "mirror://sourceforge/xmlrpc-c/Xmlrpc-c%20Super%20Stable/"
2321 version "/xmlrpc-c-" version ".tgz"))
2322 (sha256
2323 (base32
2324 "18zwbj6i2hpcn5riiyp8i6rml0sfv60dd7phw1x8g4r4lj2bbxf9"))))
2325 (build-system gnu-build-system)
2326 (inputs
2327 `(("curl" ,curl)))
2328 (native-inputs
2329 `(;; For tools, if ever needed.
2330 ("perl" ,perl)))
2331 (arguments
2332 `(#:make-flags ; Add $libdir to the RUNPATH of all the executables.
2333 (list (string-append "LDFLAGS_PERSONAL=-Wl,-rpath=" %output "/lib"))
2334 #:phases
2335 (modify-phases %standard-phases
2336 (add-after 'unpack 'fix-/bin/sh-in-tests
2337 (lambda _
2338 (substitute* "GNUmakefile"
2339 (("#! /bin/sh") (which "sh")))
2340 #t)))))
2341 (home-page "http://xmlrpc-c.sourceforge.net/")
2342 (synopsis "Lightweight RPC library based on XML and HTTP")
2343 (description
2344 "XML-RPC is a quick-and-easy way to make procedure calls over the Internet.
2345It converts the procedure call into an XML document, sends it to a remote
2346server using HTTP, and gets back the response as XML. This library provides a
2347modular implementation of XML-RPC for C and C++.")
2348 (license (list license:psfl license:expat))))
79a0eabd 2349
a34eafce
MC
2350(define-public opensp
2351 (package
2352 (name "opensp")
2353 (version "1.5.2")
2354 (source (origin
2355 (method url-fetch)
2356 (uri (string-append "mirror://sourceforge/openjade/opensp/"
2357 version "/OpenSP-" version ".tar.gz"))
2358 (sha256
2359 (base32
2360 "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p"))))
de99dc48 2361 (outputs '("out" "doc"))
a34eafce
MC
2362 (build-system gnu-build-system)
2363 (native-inputs
a34eafce
MC
2364 `(("docbook-xml" ,docbook-xml-4.1.2)
2365 ("docbook-xsl" ,docbook-xsl)
de99dc48
MC
2366 ("libxml2" ,libxml2) ;for XML_CATALOG_DIR
2367 ("xmlto" ,xmlto)
2368 ;; Dependencies to regenerate the 'configure' script.
2369 ("autoconf" ,autoconf)
2370 ("automake" ,automake)
2371 ("gettext" ,gettext-minimal)
2372 ("libtool" ,libtool)))
a34eafce 2373 (arguments
de99dc48
MC
2374 `( ;; Note: we cannot use '--enable-full-doc-build' as this would require
2375 ;; Openjade, which in turn requires this package.
2376
2377 ;; Skip the tests that are known to fail (see:
2378 ;; https://sourceforge.net/p/openjade/mailman/message/6182316/)
2379 #:make-flags '("TESTS_THAT_FAIL=")
a34eafce
MC
2380 #:phases
2381 (modify-phases %standard-phases
2382 (add-after 'unpack 'patch-docbook-paths
2383 (lambda* (#:key inputs #:allow-other-keys)
2384 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
2385 "/xml/dtd/docbook"))
2386 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
2387 "/xml/xsl/docbook-xsl-"
2388 ,(package-version docbook-xsl))))
2389 (substitute* (find-files "docsrc" "\\.xml$")
2390 (("/usr/share/sgml/docbook/xml-dtd-4.1.2") xmldoc)
2391 (("http://.*/docbookx\\.dtd")
2392 (string-append xmldoc "/docbookx.dtd")))
de99dc48
MC
2393 #t)))
2394 (add-after 'patch-docbook-paths 'delete-configure
2395 ;; The configure script in the release was made with an older
2396 ;; Autoconf and lacks support for the `--docdir' option.
2397 (lambda _
2398 (delete-file "configure")
2399 #t))
2400 (add-after 'delete-configure 'honor-docdir
2401 ;; docdir is not honored due to being hardcoded in the various
2402 ;; Makefile.am (see: https://sourceforge.net/p/openjade/bugs/147/).
2403 (lambda _
2404 (substitute* '("Makefile.am" "doc/Makefile.am" "docsrc/Makefile.am")
2405 (("^docdir = .*") "docdir = @docdir@\n"))
2406 #t))
2407 (add-after 'delete-configure 'fix-tests-makefile.am
2408 ;; Remove the trailing $(SHELL) from the TESTS_ENVIRONMENT variable
2409 ;; definition. Otherwise, when targets are built using
2410 ;; "$(am__check_pre) $(LOG_DRIVER) [...]", there would be two
2411 ;; $(SHELL) expansion which fails the build.
2412 (lambda _
2413 (substitute* "tests/Makefile.am"
2414 (("^\tOSGMLNORM=`echo osgmlnorm\\|sed '\\$\\(transform\\)'`\\\\")
2415 "\tOSGMLNORM=`echo osgmlnorm|sed '$(transform)'`")
2416 (("^\t\\$\\(SHELL\\)\n") ""))
2417 #t)))))
2418 ;; $SGML_CATALOG_FILES lists 'catalog' or 'CATALOG' or '*.cat' files found
2419 ;; under the 'sgml' sub-directory of any given package.
2420 (native-search-paths (list (search-path-specification
2421 (variable "SGML_CATALOG_FILES")
2422 (separator ":")
2423 (files '("sgml"))
2424 (file-pattern "^catalog$|^CATALOG$|^.*\\.cat$")
2425 (file-type 'regular))))
a34eafce
MC
2426 (home-page "http://openjade.sourceforge.net/")
2427 (synopsis "Suite of SGML/XML processing tools")
2428 (description "OpenSP is an object-oriented toolkit for SGML parsing and
de99dc48
MC
2429entity management. It is a fork of James Clark's SP suite. The tools it
2430contains can be used to parse, validate, and normalize SGML and XML files.
2431The central program included in this package is @code{onsgmls}, which replaces
2432@code{sgmls}, @code{ospam}, @code{ospent}, @code{osgmlnorm}, and @code{osx}.")
a34eafce
MC
2433 (license
2434 ;; expat license with added clause regarding advertising
2435 (license:non-copyleft
2436 "file://COPYING"
2437 "See COPYING in the distribution."))))
2438
8fda8b7d
MB
2439(define-public python-elementpath
2440 (package
2441 (name "python-elementpath")
e272783b 2442 (version "1.4.0")
8fda8b7d
MB
2443 (source
2444 (origin
2445 (method url-fetch)
2446 (uri (pypi-uri "elementpath" version))
2447 (sha256
2448 (base32
e272783b 2449 "15h7d41v48q31hzjay7qzixdv531hnga3h35hksk7x52pgqcrkz7"))))
8fda8b7d
MB
2450 (build-system python-build-system)
2451 (home-page
2452 "https://github.com/sissaschool/elementpath")
2453 (synopsis
2454 "XPath 1.0/2.0 parsers and selectors for ElementTree and lxml")
2455 (description
2456 "The proposal of this package is to provide XPath 1.0 and 2.0 selectors
2457for Python's ElementTree XML data structures, both for the standard
2458ElementTree library and for the @uref{http://lxml.de, lxml.etree} library.
2459
2460For lxml.etree this package can be useful for providing XPath 2.0 selectors,
2461because lxml.etree already has it's own implementation of XPath 1.0.")
2462 (license license:expat)))
2463
55e1475c
MB
2464(define-public python-lxml
2465 (package
2466 (name "python-lxml")
2467 (version "4.4.2")
2468 (source
2469 (origin
2470 (method url-fetch)
2471 (uri (pypi-uri "lxml" version))
2472 (sha256
2473 (base32 "01nvb5j8vs9nk4z5s3250b1m22b4d08kffa36if3g1mdygdrvxpg"))))
2474 (build-system python-build-system)
2475 (arguments
2476 `(#:phases (modify-phases %standard-phases
2477 (replace 'check
2478 (lambda _
2479 (invoke "make" "test"))))))
2480 (inputs
2481 `(("libxml2" ,libxml2)
2482 ("libxslt" ,libxslt)))
2483 (home-page "https://lxml.de/")
2484 (synopsis "Python XML processing library")
2485 (description
2486 "The lxml XML toolkit is a Pythonic binding for the C libraries
2487libxml2 and libxslt.")
2488 (license license:bsd-3))) ; and a few more, see LICENSES.txt
2489
2490(define-public python2-lxml
2491 (package-with-python2 python-lxml))
2492
c950a2a5
MB
2493(define-public python-xmlschema
2494 (package
2495 (name "python-xmlschema")
447f9acf 2496 (version "1.1.2")
c950a2a5 2497 (source (origin
f8a94609
MB
2498 ;; Unit tests are not distributed with the PyPI archive.
2499 (method git-fetch)
2500 (uri (git-reference
2501 (url "https://github.com/sissaschool/xmlschema")
2502 (commit (string-append "v" version))))
2503 (file-name (git-file-name name version))
c950a2a5
MB
2504 (sha256
2505 (base32
447f9acf 2506 "03bz5mp45y4shmlc1gxq1h69vjx60z1acg9cy4kq7fczgx8qg9jw"))))
c950a2a5
MB
2507 (build-system python-build-system)
2508 (arguments
2509 '(#:phases
2510 (modify-phases %standard-phases
2511 (replace 'check
2512 (lambda* (#:key (tests? #t) #:allow-other-keys)
2513 (if tests?
2514 (begin
2515 (setenv "PYTHONPATH"
2516 (string-append "./build/lib:"
2517 (getenv "PYTHONPATH")))
f8a94609 2518 (invoke "python" "-m" "unittest" "-v"))
c950a2a5
MB
2519 (format #t "test suite not run~%"))
2520 #t)))))
2521 (native-inputs
2522 `(("python-lxml" ,python-lxml))) ;for tests
2523 (propagated-inputs
2524 `(("python-elementpath" ,python-elementpath)))
2525 (home-page "https://github.com/sissaschool/xmlschema")
2526 (synopsis "XML Schema validator and data conversion library")
2527 (description
2528 "The @code{xmlschema} library is an implementation of
2529@url{https://www.w3.org/2001/XMLSchema, XML Schema} for Python. It has
2530full support for the XSD 1.0 and 1.1 standards, an XPath-based API for
2531finding schema's elements and attributes; and can encode and decode
2532XML data to JSON and other formats.")
2533 (license license:expat)))
2534
79a0eabd
OP
2535(define-public python-xmltodict
2536 (package
2537 (name "python-xmltodict")
f3e073b4 2538 (version "0.12.0")
79a0eabd 2539 (source
db1adb42
BG
2540 (origin
2541 (method url-fetch)
2542 (uri (pypi-uri "xmltodict" version))
2543 (sha256
2544 (base32
2545 "08cadlb9vsb4pmzc99lz3a2lx6qcfazyvgk10pcqijvyxlwcdn2h"))))
79a0eabd
OP
2546 (build-system python-build-system)
2547 (native-inputs
2548 `(("python-coverage" ,python-coverage)
2549 ("python-nose" ,python-nose)))
2550 (home-page "https://github.com/martinblech/xmltodict")
2551 (synopsis "Work with XML like you are working with JSON")
2552 (description "This package provides a Python library to convert XML to
2553@code{OrderedDict}.")
2554 (license license:expat)))