diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2025-05-02 07:42:02 +0200 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2025-05-02 07:42:02 +0200 | 
| commit | fc486627a4ecbae797fa6856d8a9204ea85f4db8 (patch) | |
| tree | ff3dae4c0e5d980d8e2da4fc6256ae839269bbcd /xsd/examples/cxx/parser/polyroot/README | |
| parent | 1c188393cd2e271ed2581471b601fb5960777fd8 (diff) | |
| parent | ecba0bbd9947036dd82f16ab95252f8db445e149 (diff) | |
Merge tag 'debian/4.0.0-10' into developdevelop
Bugfix release
Diffstat (limited to 'xsd/examples/cxx/parser/polyroot/README')
| -rw-r--r-- | xsd/examples/cxx/parser/polyroot/README | 36 | 
1 files changed, 36 insertions, 0 deletions
diff --git a/xsd/examples/cxx/parser/polyroot/README b/xsd/examples/cxx/parser/polyroot/README new file mode 100644 index 0000000..f41b91c --- /dev/null +++ b/xsd/examples/cxx/parser/polyroot/README @@ -0,0 +1,36 @@ +This example shows how to handle the xsi:type attributes when it is used +on root elements. For general coverage of XML Schema polymorphism handling +in the C++/Parser mapping see the polymorphism example. + +The example consists of the following files: + +supermen.xsd +  XML Schema which describes the "supermen" instance documents. + +person.xml +superman.xml +batman.xml +  Sample XML instance documents. + +supermen-pskel.hxx +supermen-pskel.cxx +  Parser skeletons generated by the XSD compiler from supermen.xsd. +  Note the use of the --generate-polymorphic command line option. + +supermen-pimpl.hxx +supermen-pimpl.cxx +  Parser implementations that print the XML data to STDOUT. + +driver.cxx +  Driver for the example. It implements a custom document parser +  that determines which XML Schema type is being parsed and uses +  the corresponding parser implementation. The driver first +  constructs a parser instance from all the individual parsers +  found in supermen-pimpl.hxx. In then invokes this parser instance +  to parse the input file. + +To run the example on the sample XML instance documents simply execute: + +$ ./driver person.xml +$ ./driver superman.xml +$ ./driver batman.xml  | 
