[xsd-users] XSD serialize to and from wstring

George Vassilakes george at sbdev.net
Thu Oct 16 06:26:34 EDT 2008


Thanks this is very helpful.

Boris Kolpackov wrote:
> Hi George,
>
> George Vassilakes <george at sbdev.net> writes:
>
>   
>> Another question I have is if its possible to get xsd to generate c++ 
>> header files describing the schema so when the application runs it does 
>> not need to find the .xsd file on the disk. Is it possible to supply 
>> this file from memory?
>> What I would like to do is to get my executable running without 
>> requiring to find the .xsd files on some location on the disk.
>>     
>
> There are two ways you can achieve this. The first is to embed the
> schema into your application as a text file or string and then
> load it before parsing XML documents. This approach is described
> in the following posts to xsd-users:
>
> http://www.codesynthesis.com/pipermail/xsd-users/2006-September/000536.html
> http://www.codesynthesis.com/pipermail/xsd-users/2006-September/000540.html
>
> This approach gets complicated if you need to embed schemas with 
> imports/includes. The easiest way to handle this situation is to
> use the binary representation of the schema grammar instead of the
> text representation. Xerces-C++ support storing pre-parsed schema
> grammar (all the imported/included schemas as one grammar object)
> in a binary format which you can then embed into your application
> and load at runtime. It has an extra benefit of being quite a bit
> faster than parsing the actual schemas. The following article on
> IBM developerWorks has more information on the binary grammar
> serialization feature:
>
> http://www-128.ibm.com/developerworks/webservices/library/x-xsdxerc.html
>
> It is also possible to use textual representation in multi-schema
> case. For this to work you will need to implement XMLEntityResolver
> interface which, if provided, gets called to resolve various
> external entities, including included/imported schema files.
> In your implementation you could search a map of embedded files
> and return MemBufInputSource for each.
>
> Boris
>
>
>   





More information about the xsd-users mailing list