On Thu, Feb 21, 2013 at 11:04 AM, Christophe Fergeau <cfergeau@xxxxxxxxxx> wrote: > On Wed, Feb 20, 2013 at 11:59:58PM +0200, Zeeshan Ali (Khattak) wrote: >> From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> >> >> Sometimes we'll have a lot in common between rather long templates of >> different OSs. To be able to share the templates, we need a way to >> include templates from one XML file to another. >> >> XInclude[1] is the way we achieve that. >> >> http://www.w3.org/TR/xinclude/ >> --- >> data/schemas/libosinfo.rng | 27 ++++++++++++++++++--------- >> osinfo/osinfo_loader.c | 9 +++++++++ >> 2 files changed, 27 insertions(+), 9 deletions(-) >> >> diff --git a/data/schemas/libosinfo.rng b/data/schemas/libosinfo.rng >> index 90b0dfb..5852652 100644 >> --- a/data/schemas/libosinfo.rng >> +++ b/data/schemas/libosinfo.rng >> @@ -579,15 +579,24 @@ >> <ref name='bool'/> >> </element> >> </optional> >> - <element name='template'> >> - <choice> >> - <group> >> - <attribute name="uri"/> >> - <empty/> >> - </group> >> - <ref name="customElement"/> >> - </choice> >> - </element> >> + <choice> >> + <element name='template'> >> + <choice> >> + <group> >> + <attribute name="uri"/> >> + <empty/> >> + </group> >> + <ref name="customElement"/> >> + </choice> >> + </element> >> + <element name='xi:include' xmlns:xi="http://www.w3.org/2001/XInclude"> >> + <interleave> >> + <attribute name="href"/> >> + <attribute name="parse"/> >> + <attribute name="xpointer"/> >> + </interleave> >> + </element> >> + </choice> >> <ref name='product-attr'/> >> <ref name='product-rel'/> >> </interleave> > > Did you try > diff --git a/test/test-xml-validate b/test/test-xml-validate > index a2d20b4..9fb8534 100755 > --- a/test/test-xml-validate > +++ b/test/test-xml-validate > @@ -16,7 +16,7 @@ do > for xml in `echo "$XML" | sort` > do > n=`expr $n + 1` > - cmd="xmllint --relaxng $SCHEMA --noout $xml" > + cmd="xmllint --xinclude --relaxng $SCHEMA --noout $xml" > result=`$cmd 2>&1` > ret=$? > > plus adding a call to xmlXIncludeProcessFlags in > tests/osinfo-db-validate.c:parse_file? > This would seem better to me as this would validates the document with the > XInclude substituted. Now I did and I get error: ................................!xmllint --xinclude --relaxng /home/zeenix/checkout/gnome/libosinfo/test/../data/schemas/libosinfo.rng --noout /home/zeenix/checkout/gnome/libosinfo/test/../data/install-scripts/windows-8-unattend.xml windows-unattend.xml:20: element template: Relax-NG validity error : Invalid attribute base for element template windows-unattend.xml:245: element template: Relax-NG validity error : Invalid attribute base for element template /home/zeenix/checkout/gnome/libosinfo/test/../data/install-scripts/windows-8-unattend.xml fails to validate The 'base' attribute must be added by xmlXIncludeProcessFlags cause its not originally there. I tried XML_PARSE_NOBASEFIX flag with this call but that doesn't seem to help. Here is the patch I tried: http://paste.fedoraproject.org/3837/ -- Regards, Zeeshan Ali (Khattak) FSF member#5124 _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo