Package: saxoncpe
Welcome to SaxonC-PEThis is the officialSaxonicaPython wheel package for
Saxon, an XML document processor.SaxonCprovides APIs to run XSLT 3.0 transformations, XQuery 3.1 queries, XPath 3.1, and
XML Schema validation.The SaxonC release comes in separate wheels for the three product editions:saxonche(SaxonC-HE: open-source Home Edition)saxoncpe(SaxonC-PE: Professional Edition)saxoncee(SaxonC-EE: Enterprise Edition)SaxonC-PE and SaxonC-EE are commercial products that require a valid
license key. Licenses can be purchased from theSaxonica online store.
Alternatively a 30-dayevaluation licenseis available free of charge. By downloading the software, you are agreeing to ourterms and conditions.For full documentation for the latest SaxonC release, see theSaxonC 12 documentation.Why choose SaxonC?The main reason for using SaxonC in preference to other XML
tools available for Python is that it supports all the latest W3C
standards: XSLT 3.0, XPath 3.1, XQuery 3.1, and XSD 1.1. It even
includes experimental support for the draft 4.0 specifications
currently under development.About SaxonCSaxonC is a version of Saxon developed by compiling the Java source code to native
executables that run on the C/C++ platform, with extensions for PHP and Python. All
features of Saxon have been ported, other than those (such as collations) that are
necessarily platform dependent. In particular, SaxonC provides processing in XSLT,
XQuery and XPath, and Schema validation. It therefore makes these processing capabilities
available to a plethora of other languages that are strongly coupled to C/C++ such as PHP,
Perl, Python, and Ruby.About SaxonicaSaxon is developed by Saxonica, a company created in 2004 by Michael Kay, who was
the editor of the XSLT 2.0 and 3.0 specifications in W3C. The original Saxon product
on the Java platform has been continually developed for over 20 years, and has
acquired a reputation for standards conformance, performance, and reliability.InstallationpipinstallsaxoncpeGetting startedEither import the whole API:fromsaxoncpeimport*Or specific modules:fromsaxoncpeimportPySaxonProcessorThe SaxonC API includes classes for constructing XDM data models
and for a variety of processors. For full details see theSaxonC Python API
documentation.The following short example shows how to get the Saxon version from
thePySaxonProcessor:fromsaxoncpeimportPySaxonProcessorwithPySaxonProcessor(license=False)asproc:print(proc.version)It will print something like this:SaxonC-PE12.4.2fromSaxonicaNote:license=Falserequests the open-source version of Saxon, whereaslicense=Truerequests the commercial product - which requires a license file.
SaxonC looks for the license key in the directory where the main SaxonC library has been
installed, and the directory identified by the environment variableSAXONC_HOME.Example: Running a transformationThe following basic example shows how an XSLT stylesheet can be run against a source
XML document in Python using SaxonC:fromsaxoncpeimport*withPySaxonProcessor(license=False)asproc:xsltproc=proc.new_xslt30_processor()document=proc.parse_xml(xml_text="<doc><item>text1</item><item>text2</item><item>text3</item></doc>")executable=xsltproc.compile_stylesheet(stylesheet_file="test.xsl")output=executable.transform_to_string(xdm_node=document)print(output)For more Python examples, and further details about installing and configuring the product,
see theSaxonC 12 documentation.SupportAll users are welcome to use the publicsupport sitefor
reporting issues and seeking help (registration required). In addition, many
questions are asked and answered onStackOverflow:
please use thesaxontag.AcknowledgementWe learned a lot about how to create Python wheels for Saxon from the
Saxonpy wheel package, which is a third-party projecton github.