pyxb icon indicating copy to clipboard operation
pyxb copied to clipboard

XInclude processing

Open hcw70 opened this issue 4 years ago • 3 comments

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?

hcw70 avatar Jul 08 '20 13:07 hcw70

http://www.w3.org/2001/XInclude is not supported by PyXB. You would have to preprocess the document to incorporate the included material.

pabigot avatar Jul 08 '20 13:07 pabigot

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

?

hcw70 avatar Jul 08 '20 13:07 hcw70

Because #100.

pabigot avatar Jul 08 '20 13:07 pabigot