+(define-public python-elementpath
+ (package
+ (name "python-elementpath")
+ (version "1.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "elementpath" version))
+ (sha256
+ (base32
+ "15h7d41v48q31hzjay7qzixdv531hnga3h35hksk7x52pgqcrkz7"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/sissaschool/elementpath")
+ (synopsis
+ "XPath 1.0/2.0 parsers and selectors for ElementTree and lxml")
+ (description
+ "The proposal of this package is to provide XPath 1.0 and 2.0 selectors
+for Python's ElementTree XML data structures, both for the standard
+ElementTree library and for the @uref{http://lxml.de, lxml.etree} library.
+
+For lxml.etree this package can be useful for providing XPath 2.0 selectors,
+because lxml.etree already has it's own implementation of XPath 1.0.")
+ (license license:expat)))
+
+(define-public python-lxml
+ (package
+ (name "python-lxml")
+ (version "4.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "lxml" version))
+ (sha256
+ (base32 "01nvb5j8vs9nk4z5s3250b1m22b4d08kffa36if3g1mdygdrvxpg"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "make" "test"))))))
+ (inputs
+ `(("libxml2" ,libxml2)
+ ("libxslt" ,libxslt)))
+ (home-page "https://lxml.de/")
+ (synopsis "Python XML processing library")
+ (description
+ "The lxml XML toolkit is a Pythonic binding for the C libraries
+libxml2 and libxslt.")
+ (license license:bsd-3))) ; and a few more, see LICENSES.txt
+
+(define-public python2-lxml
+ (package-with-python2 python-lxml))
+
+(define-public python-xmlschema
+ (package
+ (name "python-xmlschema")
+ (version "1.1.2")
+ (source (origin
+ ;; Unit tests are not distributed with the PyPI archive.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sissaschool/xmlschema")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03bz5mp45y4shmlc1gxq1h69vjx60z1acg9cy4kq7fczgx8qg9jw"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key (tests? #t) #:allow-other-keys)
+ (if tests?
+ (begin
+ (setenv "PYTHONPATH"
+ (string-append "./build/lib:"
+ (getenv "PYTHONPATH")))
+ (invoke "python" "-m" "unittest" "-v"))
+ (format #t "test suite not run~%"))
+ #t)))))
+ (native-inputs
+ `(("python-lxml" ,python-lxml))) ;for tests
+ (propagated-inputs
+ `(("python-elementpath" ,python-elementpath)))
+ (home-page "https://github.com/sissaschool/xmlschema")
+ (synopsis "XML Schema validator and data conversion library")
+ (description
+ "The @code{xmlschema} library is an implementation of
+@url{https://www.w3.org/2001/XMLSchema, XML Schema} for Python. It has
+full support for the XSD 1.0 and 1.1 standards, an XPath-based API for
+finding schema's elements and attributes; and can encode and decode
+XML data to JSON and other formats.")
+ (license license:expat)))
+