On Sat, Mar 26, 2016 at 09:48:59PM +0100, Fabian Wein wrote:
> Hello to the list,
> 
> I know I have a FAQ but I cannot manage it by myself :(
> 
> I have a xsd schema and need to validate *and* parse a xml file making use
> of the default values from the schema. 
> 
> In the end I need it in C++ but I guess it helps to have it first in Python?!
> 
> My minimalistic example is based on 
> http://www.w3schools.com/xml/schema_howto.asp
> extended by attributes, one with default -> see attachment.
> 
> Validating works nicely :) Any error in the xml is detected or ret=0 if the 
> file is ok.
> 
> doc = libxml2.parseFile(„node.xml“)
> s = libxml2.schemaNewParserCtxt(„node.xsd“)
> sp = s.schemaParse()
> ct = sp.schemaNewValidCtxt()  
> ret = ct.schemaValidateDoc(doc)
> 
> But I have no idea on how to get the populated data from this (only from doc).
> 
> Then I tried to extend the reader example:
> 
> def streamFile(filename):
>     reader = libxml2.newTextReaderFilename(filename)
>     s = libxml2.schemaNewParserCtxt(‚node.xsd‘)
>     sp = s.schemaParse()
>     ct = sp.schemaNewValidCtxt()
>     ct.schemaSetValidOptions(libxml2.XML_SCHEMA_VAL_VC_I_CREATE)
>     ct.SchemaValidateCtxt(reader, libxml2.XML_SCHEMA_VAL_VC_I_CREATE)
>     
>     reader.SetSchema(ct)
>     reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS, 1)
>     ret = reader.Read()
>     while ret == 1:
>         processNode(reader)
>         ret = reader.Read()
> 
> However, with the reader api the root element is not recognized and the 
> default attribute is not set:
> 
> Element ‚{http://www.w3schools.com}note‘: No matching global declaration 
> available for the validation root.
> 
> As the schema is validated properly in the first code I believe the schema is 
> ok.
> 
> So my questions are:
> * Which api shall I use to make use of the default values?

  I don't think the toolkit has the support in XML schemas to populate default
values back in the tree.

> * Shall I try in C instead of Python?
> * Is there a link which helps me? I spent two days googling without success :(

  and that explain why,

> Thanks a lot!

   sorry,

Daniel
> Fabian
> 
> 
> 


> 
> 
> 


> _______________________________________________
> xml mailing list, project page  http://xmlsoft.org/
> xml@gnome.org
> https://mail.gnome.org/mailman/listinfo/xml


-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to