pyxb
pyxb copied to clipboard
XInclude processing
Dear authors of pyxb.
I need to process a XML document which is assembled from others by means of XInclude. LibXML and python seems to handle that, but via PyXB it does not seem to work:
<?xml version="1.0" encoding="UTF-8"?>
<MessageDB xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xxx.de/config/xxx msgdb/xsd/MessageDB.xsd"
xmlns="http://xxx.de/config/xxx"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="MessageDB-Example-lib.xml"/>
<module name="MotivatinExample1">
</module>
</MessageDB>
gives:
File "/home/hcw/work/Deuta/xxx/venv/lib/python3.7/site-packages/pyxb/binding/basis.py", line 2567, in append
raise pyxb.UnrecognizedContentError(self, self.__automatonConfiguration, value, location)
pyxb.exceptions_.UnrecognizedContentError: Invalid content include at <unknown>[7:4] (expect {http://xxx.de/config/xxx}doc or {http://xxx.de/config/xxx}altName or {http://xxx.de/config/xxx}module)
Any hints on this?
http://www.w3.org/2001/XInclude
is not supported by PyXB. You would have to preprocess the document to incorporate the included material.
But isnt it using lxml? Then why not simply do like
https://lxml.de/1.3/api.html#xinclude-and-elementinclude ?
Or via ElementTree
http://effbot.org/zone/element-xinclude.htm
?
Because #100.