diff options
Diffstat (limited to 'documentation/xsde.1')
-rw-r--r-- | documentation/xsde.1 | 2110 |
1 files changed, 0 insertions, 2110 deletions
diff --git a/documentation/xsde.1 b/documentation/xsde.1 deleted file mode 100644 index eee915e..0000000 --- a/documentation/xsde.1 +++ /dev/null @@ -1,2110 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii xsde.1 -.\" -.TH XSD/e 1 "September 2011" "XSD/e 3.3.0" -.SH NAME -xsde \- W3C XML Schema to C++ Compiler for Embedded Systems -.\" -.\" -.\" -.\"-------------------------------------------------------------------- -.SH SYNOPSIS -.\"-------------------------------------------------------------------- -.B xsde -.I command -.B [ -.I options -.B ] -.I file -.B [ -.I file -.B ...] -.in -.B xsde help -.B [ -.I command -.B ] -.in -.B xsde version -.\" -.\" -.\" -.\"-------------------------------------------------------------------- -.SH DESCRIPTION -.\"-------------------------------------------------------------------- -.B xsde -generates vocabulary-specific, statically-typed C++ mapping from W3C XML -Schema definitions. Particular mapping to produce is selected by a -.IR command . -Each mapping has a number of mapping-specific -.I options -that should appear, if any, after the -.IR command . -Input files should be W3C XML Schema definitions. The exact set of the -generated files depends on the selected mapping and options. -.\" -.\" -.\" -.\"-------------------------------------------------------------------- -.SH COMMANDS -.\"-------------------------------------------------------------------- -.IP \fBcxx-hybrid\fR -Generate the Embedded C++/Hybrid mapping. For each input file in the -form -.B name.xsd -the following C++ files are generated: -.B name.hxx -(object model header file), -.B name.ixx -(object model inline file, generated only if the -.B --generate-inline -option is specified), -.B name.cxx -(object model source file), and -.B name-fwd.hxx -(object model forward declaration file, generated only if the -.B --generate-forward -option is specified). - -If the -.B --generate-parser -option is specified, the Embedded C++/Parser mapping is invoked and the -.BR name-pskel.hxx , -.BR name-pskel.ixx , -and -.B name-pskel.cxx -parser skeleton files are generated, as described below. Additionally, -the following parser implementation files are generated: -.B name-pimpl.hxx -(parser implementation header file) and -.B name-pimpl.cxx -(parser implementation source file). - -If the -.B --generate-serializer -option is specified, the Embedded C++/Serializer mapping is invoked and the -.BR name-sskel.hxx , -.BR name-sskel.ixx , -and -.B name-sskel.cxx -serializer skeleton files are generated, as described below. Additionally, -the following serializer implementation files are generated: -.B name-simpl.hxx -(serializer implementation header file) and -.B name-simpl.cxx -(serializer implementation source file). - -.IP \fBcxx-parser\fR -Generate the Embedded C++/Parser mapping. For each input file in the form -.B name.xsd -the following C++ files are generated: -.B name-pskel.hxx -(parser skeleton header file), -.B name-pskel.ixx -(parser skeleton inline file, generated only if the -.B --generate-inline -option is specified), and -.B name-pskel.cxx -(parser skeleton source file). If the -.B --generate-noop-impl -or -.B --generate-print-impl -option is specified, the following additional sample implementation files -are generated: -.B name-pimpl.hxx -(parser implementation header file) and -.B name-pimpl.cxx -(parser implementation source file). If the -.B --generate-test-driver -option is specified, the additional -.B name-pdriver.cxx -test driver file is generated. - -.IP \fBcxx-parser\fR -Generate the Embedded C++/Serializer mapping. For each input file in the form -.B name.xsd -the following C++ files are generated: -.B name-sskel.hxx -(serializer skeleton header file), -.B name-sskel.ixx -(serializer skeleton inline file, generated only if the -.B --generate-inline -option is specified), and -.B name-sskel.cxx -(serializer skeleton source file). If the -.B --generate-empty-impl -option is specified, the following additional sample implementation files -are generated: -.B name-simpl.hxx -(serializer implementation header file) and -.B name-simpl.cxx -(serializer implementation source file). If the -.B --generate-test-driver -option is specified, the additional -.B name-sdriver.cxx -test driver file is generated. - -.IP \fBhelp\fR -Print usage information and exit. Use -.PP -.RS -.RS 3 -.B xsde help -.I command -.RE -.PP -for command-specific help. -.RE -.IP \fBversion\fR -Print version and exit. -.\"-------------------------------------------------------------------- -.SH OPTIONS -.\"-------------------------------------------------------------------- -Command-specific -.IR options , -if any, should appear after the corresponding -.IR command . - -.\" -.\" Common options -.\" -.SS common options - -.IP "\fB\--output-dir \fIdir\fR" -Write generated files to -.I dir -instead of the current directory. - -.IP "\fB\--char-encoding \fIenc\fR" -Specify the application character encoding. Valid values are -.B utf8 -(default) and -.BR iso8859-1 . -Note that this encoding is not the same as the XML document encoding -that is being parsed or serialized. Rather, it is the encoding that -is used inside the application. When an XML document is parsed, the -character data is automatically converted to the application encoding. -Similarly, when an XML document is serialized, the data in the -application encoding is automatically converted to the resulting -document encoding. - -.IP "\fB\--no-stl\fR" -Generate code that does not use the Standard Template Library (STL). - -.IP "\fB\--no-iostream\fR" -Generate code that does not use the standard input/output stream -library (iostream). - -.IP "\fB\--no-exceptions\fR" -Generate code that does not use C++ exceptions. - -.IP "\fB\--no-long-long\fR" -Generate code that does not use the -.B long long -and -.B unsigned long long -types. The 64 bit -.B long -and -.B unsignedLong -built-in XML Schema types are then mapped to -.B long -and -.B unsigned -.BR long . - -.IP "\fB\--custom-allocator\fR" -Generate code that performs memory management using custom allocator -functions provided by your application instead of the standard operator -new/delete. - -.IP "\fB\--generate-inline\fR" -Generate simple functions inline. This option triggers creation of the -inline file. - -.IP "\fB\--namespace-map \fIxns\fB=\fIcns" -Map XML Schema namespace -.I xns -to C++ namespace -.IR cns . -Repeat this option to specify mapping for more than one XML Schema namespace. -For example, the following option: - -.B --namespace-map http://example.com/foo/bar=foo::bar - -will map the -.B http://example.com/foo/bar -XML Schema namespace to the -.B foo::bar -C++ namespace. -. -.IP "\fB\--namespace-regex \fIregex\fR" -Add -.I regex -to the list of regular expressions used to translate XML Schema namespace -names to C++ namespace names. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -Any character can be used as a delimiter instead of -.BR / . -Escaping of the delimiter character in -.I pattern -or -.I replacement -is not supported. - -All the regular expressions are pushed into a stack with the last specified -expression considered first. The first match that succeeds is used. Regular -expressions are applied to a string in the form - -.I filename namespace - -For example, if you have file -.B hello.xsd -with namespace -.B http://example.com/hello -and you run -.B xsd -on this file, then the string in question will be: - -.B hello.xsd. http://example.com/hello - -For the built-in XML Schema namespace the string is: - -.B XMLSchema.xsd http://www.w3.org/2001/XMLSchema - -The following three steps are performed for each regular expression until -the match is found: -.RS -.RS 3 -.TP 3 -1. -The expression is applied and if the result is empty the next expression -is considered. -.TP 3 -2. -All -.B / -are replaced with -.BR :: . -.TP 3 -3. -The result is verified to be a valid C++ scope name (e.g., -.BR foo::bar ). -If this test succeeds, the result is used as a C++ namespace name. -.RE -.PP -As an example, the following expression maps XML Schema namespaces in the -form -.B http://example.com/foo/bar -to C++ namespaces in the form -.BR foo::bar : -.PP -.B "%.* http://example.com/(.+)%$1%" - -See also the REGEX AND SHELL QUOTING section below. -.RE - -.IP "\fB\--namespace-regex-trace\fR" -Trace the process of applying regular expressions specified with -the -.B --namespace-regex -option. Use this option to find out why your regular expressions -don't do what you expected them to do. - -\" -\" Reserved names. -\" - -.IP "\fB\--reserved-name \fIname\fR[\fB=\fIrep\fR]" -Add -.I name -to the list of names that should not be used as identifiers. The name -can optionally be followed by -.B = -and the replacement name that should be used instead. All the C++ keywords -are already in this list. - -.IP "\fB\--include-with-brackets\fR" -Use angle brackets (<>) instead of quotes ("") in generated -.B #include -directives. - -.IP "\fB\--include-prefix \fIprefix\fR" -Add -.I prefix -to generated -.B #include -directive paths. - -For example, if you had the following import element in your schema - -.B <import namespace="..." schemaLocation="base.xsd"/> - -and compiled this fragment with -.B --include-prefix schemas/\fR, -then the include directive in the generated code would be: - -.B #include "schemas/base.hxx" - -.IP "\fB\--include-regex \fIregex\fR" -Add -.I regex -to the list of regular expressions used to transform -.B #include -directive paths. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -Any character can be used as a delimiter instead of -.BR / . -Escaping of the delimiter character in -.I pattern -or -.I replacement -is not supported. - -All the regular expressions are pushed into a stack with the last specified -expression considered first. The first match that succeeds is used. - -As an example, the following expression transforms paths in the form -.B schemas/foo/bar -to paths in the form -.BR generated/foo/bar : - -.B "%schemas/(.+)%generated/$1%" - -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--include-regex-trace\fR" -Trace the process of applying regular expressions specified with -the -.B --include-regex -option. Use this option to find out why your regular expressions -don't do what you expected them to do. - -.IP "\fB\--guard-prefix \fIprefix\fR" -Add -.I prefix -to generated header inclusion guards. The prefix is transformed to upper -case and characters that are illegal in a preprocessor macro name are -replaced with underscores. If this option is not specified then the -directory part of the input schema file is used as a prefix. - -.IP "\fB\--hxx-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B .hxx -to construct the name of the header file. Note that this suffix is also -used to construct names for included/imported schemas. -.IP "\fB\--ixx-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B .ixx -to construct the name of the inline file. -.IP "\fB\--cxx-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B .cxx -to construct the name of the source file. -.IP "\fB\--fwd-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B -fwd.hxx -to construct the name of the forward declaration file (C++/Hybrid -mapping only). - -.IP "\fB\--hxx-regex \fIregex\fR" -Use the provided expression to construct the name of the header file. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -This expression is also used to construct names for included/imported schemas. - -For the C++/Hybrid mapping, the -.I regex -argument can be optionally prefixed with a file key in the form -.IB key = regex\fR. -The valid values for -.I key -are -.B pskel -(parser skeleton files), -.B pimpl -(parser implementation files), -.B sskel -(serializer skeleton files), -.B simpl -(serializer implementation files), and -.B * -(all files). If -.I key -is empty or not present then the expression is used for the object model -files only. - -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--ixx-regex \fIregex\fR" -Use the provided expression to construct the name of the inline file. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -For the C++/Hybrid mapping, the -.I regex -argument can be optionally prefixed with a file key. See the -.B --hxx-regex -option for details. -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--cxx-regex \fIregex\fR" -Use the provided expression to construct the name of the source file. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -For the C++/Hybrid mapping, the -.I regex -argument can be optionally prefixed with a file key. See the -.B --hxx-regex -option for details. -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--fwd-regex \fIregex\fR" -Use the provided expression to construct the name of the forward -declaration file (C++/Hybrid mapping only). -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--hxx-prologue \fItext\fR" -Insert -.I text -at the beginning of the header file. - -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key in the form -.IB key = text\fR. -The valid values for -.I key -are -.B pskel -(parser skeleton files), -.B pimpl -(parser implementation files), -.B sskel -(serializer skeleton files), -.B simpl -(serializer implementation files), and -.B * -(all files). If -.I key -is empty or not present then the text is used for the object model files only. - -.IP "\fB\--ixx-prologue \fItext\fR" -Insert -.I text -at the beginning of the inline file. -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue -option for details. - -.IP "\fB\--cxx-prologue \fItext\fR" -Insert -.I text -at the beginning of the source file. -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue -option for details. - -.IP "\fB\--fwd-prologue \fItext\fR" -Insert -.I text -at the beginning of the forward declaration file (C++/Hybrid mapping only). - -.IP "\fB\--prologue \fItext\fR" -Insert -.I text -at the beginning of each generated file for which there is no file-specific -prologue. -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue -option for details. - -.IP "\fB\--hxx-epilogue \fItext\fR" -Insert -.I text -at the end of the header file. -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue -option for details. - -.IP "\fB\--ixx-epilogue \fItext\fR" -Insert -.I text -at the end of the inline file. -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue -option for details. - -.IP "\fB\--cxx-epilogue \fItext\fR" -Insert -.I text -at the end of the source file. -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue -option for details. - -.IP "\fB\--fwd-epilogue \fItext\fR" -Insert -.I text -at the end of the forward declaration file (C++/Hybrid mapping only). - -.IP "\fB\--epilogue \fItext\fR" -Insert -.I text -at the end of each generated file for which there is no file-specific -epilogue. -For the C++/Hybrid mapping, the -.I text -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue -option for details. - -.IP "\fB\--hxx-prologue-file \fIfile\fR" -Insert the content of the -.I file -at the beginning of the header file. - -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key in the form -.IB key = file\fR. -The valid values for -.I key -are -.B pskel -(parser skeleton files), -.B pimpl -(parser implementation files), -.B sskel -(serializer skeleton files), -.B simpl -(serializer implementation files), and -.B * -(all files). If -.I key -is empty or not present then the file is used for the object model files only. - -.IP "\fB\--ixx-prologue-file \fIfile\fR" -Insert the content of the -.I file -at the beginning of the inline file. -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue-file -option for details. - -.IP "\fB\--cxx-prologue-file \fIfile\fR" -Insert the content of the -.I file -at the beginning of the source file. -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue-file -option for details. - -.IP "\fB\--fwd-prologue-file \fIfile\fR" -Insert the content of the -.I file -at the beginning of the forward declaration file (C++/Hybrid mapping only). - -.IP "\fB\--prologue-file \fIfile\fR" -Insert the content of the -.I file -at the beginning of each generated file for which there is no file-specific -prologue file. -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue-file -option for details. - -.IP "\fB\--hxx-epilogue-file \fIfile\fR" -Insert the content of the -.I file -at the end of the header file. -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue-file -option for details. - -.IP "\fB\--ixx-epilogue-file \fIfile\fR" -Insert the content of the -.I file -at the end of the inline file. -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue-file -option for details. - -.IP "\fB\--cxx-epilogue-file \fIfile\fR" -Insert the content of the -.I file -at the end of the source file. -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue-file -option for details. - -.IP "\fB\--fwd-epilogue-file \fIfile\fR" -Insert the content of the -.I file -at the end of the forward declaration file (C++/Hybrid mapping only). - -.IP "\fB\--epilogue-file \fIfile\fR" -Insert the content of the -.I file -at the end of each generated file for which there is no file-specific -epilogue file. -For the C++/Hybrid mapping, the -.I file -argument can be optionally prefixed with a file key. See the -.B --hxx-prologue-file -option for details. - -.IP "\fB\--disable-warning \fIwarn\fR" -Disable printing warning with id -.IR warn . -If -.B all -is specified for the warning id then all the warnings are disabled. - -.IP "\fB\--show-sloc\fR" -Show the number of generated physical source lines of code (SLOC). - -.IP "\fB\--sloc-limit \fInum\fR" -Check that the number of generated physical source lines of code (SLOC) -does not exceed -.I num. - -.IP "\fB\--options-file \fIfile\fR" -Read additional options from -.IR file . -Each option should appear on a separate line optionally followed by -space and an argument. Empty lines and lines starting with -.B # -are ignored. The semantics of providing options in a file is equivalent -to providing the same set of options in the same order in the command -line at the point where the -.B --options-file -option is specified except that shell escaping and quoting is not -required. Repeat this option to specify more than one options files. - -.IP "\fB\--proprietary-license\fR" -Indicate that the generated code is licensed under a proprietary license -instead of the GPL. - -.IP "\fB\--preserve-anonymous\fR" -Preserve anonymous types. By default anonymous types are -automatically named with names derived from the enclosing -elements/attributes. Because mappings implemented by this -compiler require all types to be named, this option is only -useful if you want to make sure your schemas don't have -anonymous types. - -.IP "\fB\--show-anonymous\fR" -Show elements and attributes that are of anonymous types. This option -only makes sense together with the -.B --preserve-anonymous -option. - -.IP "\fB\--anonymous-regex \fIregex\fR" -Add -.I regex -to the list of regular expressions used to derive names for anonymous -types from the enclosing attributes/elements. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -Any character can be used as a delimiter instead of -.BR / . -Escaping of the delimiter character in -.I pattern -or -.I replacement -is not supported. - -All the regular expressions are pushed into a stack with the last -specified expression considered first. The first match that -succeeds is used. Regular expressions are applied to a string -in the form - -.I filename namespace xpath - -For instance: - -.B hello.xsd http://example.com/hello element - -.B hello.xsd http://example.com/hello type/element - -As an example, the following expression makes all the derived -names start with capital letters. This could be useful when -your naming convention requires type names to start with -capital letters: - -.B %.* .* (.+/)*(.+)%\\\\u$2% - -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--anonymous-regex-trace\fR" -Trace the process of applying regular expressions specified with -the -.B --anonymous-regex -option. Use this option to find out why your regular expressions -don't do what you expected them to do. - -.IP "\fB\--location-map \fIol\fB=\fInl" -Map the original schema location -.I ol -that is specified in the XML Schema include or import elements to new -schema location -.IR nl . -Repeat this option to map more than one schema location. For example, -the following option maps the -.B http://example.com/foo.xsd -URL to the -.B foo.xsd -local file. - -.B --location-map http://example.com/foo.xsd=foo.xsd - -.IP "\fB\--location-regex \fIregex\fR" -Add -.I regex -to the list of regular expressions used to map schema locations that are -specified in the XML Schema include or import elements. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -Any character can be used as a delimiter instead of -.BR / . -Escaping of the delimiter character in -.I pattern -or -.I replacement -is not supported. All the regular expressions are pushed into a stack with the -last specified expression considered first. The first match that succeeds -is used. - -For example, the following expression maps URL locations in the form -.B http://example.com/foo/bar.xsd -to local files in the form -.BR bar.xsd : - -.B %http://.+/(.+)%$1% - -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--location-regex-trace\fR" -Trace the process of applying regular expressions specified with -the -.B --location-regex -option. Use this option to find out why your regular expressions -don't do what you expected them to do. - -.IP "\fB\--file-per-type\fR" -Generate a separate set of C++ files for each type defined in XML Schema. -Note that in this mode you only need to compile the root schema(s) and the -code will be generated for all included and imported schemas. This -compilation mode is primarily useful when some of your schemas cannot be -compiled separately or have cyclic dependencies which involve type -inheritance. Other options related to this mode are: -.BR --type-file-regex , -.BR --schema-file-regex, -and -.BR --file-list . - -.IP "\fB\--type-file-regex \fIregex\fR" -Add -.I regex -to the list of regular expressions used to translate type names to file -names when the -.B --file-per-type -option is specified. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -Any character can be used as a delimiter instead of -.BR / . -Escaping of the delimiter character in -.I pattern -or -.I replacement -is not supported. All the regular expressions are pushed into a stack with -the last specified expression considered first. The first match that -succeeds is used. Regular expressions are applied to a string -in the form - -.I namespace type-name - -For example, the following expression maps type -.B foo -that is defined in the -.B http://example.com/bar -namespace to file name -.BR bar-foo : - -.B %http://example.com/(.+) (.+)%$1-$2% - -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--type-file-regex-trace\fR" -Trace the process of applying regular expressions specified with -the -.B --type-file-regex -option. Use this option to find out why your regular expressions -don't do what you expected them to do. - -.IP "\fB\--schema-file-regex \fIregex\fR" -Add -.I regex -to the list of regular expressions used to translate schema file names -when the -.B --file-per-type -option is specified. -.I regex -is a perl-like regular expression in the form -.BI / pattern / replacement /\fR. -Any character can be used as a delimiter instead of -.BR / . -Escaping of the delimiter character in -.I pattern -or -.I replacement -is not supported. All the regular expressions are pushed into a stack -with the last specified expression considered first. The first match -that succeeds is used. Regular expressions are applied to the absolute -filesystem path of a schema file and the result, including the directory -part, if any, is used to derive the -.B #include -directive paths as well as the generated C++ file paths. This option, along -with -.B --type-file-regex -are primarily used to place the generated files into subdirectories or to -resolve file name conflicts. - -For example, the following expression maps schema files in the -.B foo/1.0.0/ -subdirectory to the files in the -.B foo/ -subdirectory. As a result, the -.B #include -directive paths for such schemas will be in the -.B foo/schema.hxx -form and the generated C++ files will be placed into the -.B foo/ -subdirectory: - -.B %.*/foo/1.0.0/(.+)%foo/$1% - -See also the REGEX AND SHELL QUOTING section below. - -.IP "\fB\--schema-file-regex-trace\fR" -Trace the process of applying regular expressions specified with -the -.B --schema-file-regex -option. Use this option to find out why your regular expressions -don't do what you expected them to do. - -.IP "\fB\--fat-type-file\fR" -Generate code corresponding to global elements into type files -instead of schema files when the -.B --type-file-regex -option is specified. This option is primarily useful when trying -to minimize the amount of object code that is linked to an executable -by packaging compiled generated code into a static (archive) library. - -.IP "\fB\--file-list \fIfile\fR" -Write a list of generated C++ files to -.IR file . -This option is primarily useful in the file-per-type compilation mode -.RB ( --file-per-type ) -to create a list of generated C++ files, for example, as a makefile fragment. - -.IP "\fB\--file-list-prologue \fItext\fR" -Insert -.I text -at the beginning of the file list. As a convenience, all occurrences of the -\\n character sequence in -.I text -are replaced with new lines. This option can, for example, be used to assign -the generated file list to a makefile variable. - -.IP "\fB\--file-list-epilogue \fItext\fR" -Insert -.I text -at the end of the file list. As a convenience, all occurrences of the -\\n character sequence in -.I text -are replaced with new lines. - -.IP "\fB\--file-list-delim \fItext\fR" -Delimit file names written to the file list with -.I text -instead of new lines. As a convenience, all occurrences of the \\n character -sequence in -.I text -are replaced with new lines. - -.\" -.\" C++/Hybrid options -.\" -.SS cxx-hybrid command options - -.IP "\fB\--generate-parser\fR" -Generate XML parsing code. - -.IP "\fB\--generate-serializer\fR" -Generate XML serialization code. - -.IP "\fB\--generate-aggregate\fR" -Generate parser/serializer aggregates for root elements and/or -types. See also the -.B --root-element-* -and -.B --root-type -options. - -.IP "\fB\--suppress-validation\fR" -Suppress the generation of validation code in parser and serializer. - -.IP "\fB\--suppress-parser-val\fR" -Suppress the generation of validation code in parser. - -.IP "\fB\--suppress-serializer-val\fR" -Suppress the generation of validation code in serializer. - -.IP "\fB\--omit-default-attributes\fR" -Omit attributes with default and fixed values from serialized XML -documents. - -.IP "\fB\--suppress-enum\fR" -Suppress the generation of the XML Schema enumeration to C++ enum mapping. - -.IP "\fB\--generate-clone\fR" -Generate clone functions for variable-length types. These functions allow -you to make dynamically-allocated copies of variable-length objects. - -.IP "\fB\--generate-detach\fR" -Generate detach functions for elements and attributes of variable-length -types. These functions, for example, allow you to move sub-trees in the -object model either within the same tree or between different trees. - -.IP "\fB\--generate-insertion \fIos\fR" -Generate data representation stream insertion operators for the -.I os -output stream type. Repeat this option to specify more than one stream -type. The special -.B CDR -and -.B XDR -arguments are recognized as ACE CDR and Sun RPC XDR stream types and the -corresponding stream wrappers provided by the XSD/e runtime are automatically -used. For custom stream types use the -.B --hxx-prologue* -options to include the necessary declarations. - -.IP "\fB\--generate-extraction \fIis\fR" -Generate data representation stream extraction operators for the -.I is -input stream type. Repeat this option to specify more than one stream -type. The special -.B CDR -and -.B XDR -arguments are recognized as ACE CDR and Sun RPC XDR stream types and the -corresponding stream wrappers provided by the XSD/e runtime are automatically -used. For custom stream types use the -.B --hxx-prologue* -options to include the necessary declarations. - -.IP "\fB\--generate-forward\fR" -Generate forward declaration file. - -.IP "\fB\--generate-xml-schema\fR" -Generate C++ header files as if the schema being compiled defines -the XML Schema namespace. In particular, the resulting files will -have definitions for all object model types, parser skeletons and -implementations, as well as serializer skeletons and implementations -corresponding to the XML Schema built-in types. The schema file -provided to the compiler need not exist and is only used to derive -the names of the resulting header files. Use the -.B --extern-xml-schema -option to include these file in the generated files for other schemas. - -.IP "\fB\--extern-xml-schema \fIfile\fR" -Include header files derived from -.I file -instead of generating the XML Schema namespace mapping inline. The -provided file need not exist and is only used to derive the names -of the included header files. Use the -.B --generate-xml-schema -option to generate these header files. - -.IP "\fB\--suppress-reset\fR" -Suppress the generation of parser and serializer reset code. -Reset support allows you to reuse parsers and serializers -after an error. - -.IP "\fB\--generate-polymorphic\fR" -Generate polymorphism-aware code. Specify this option if you use substitution -groups or -.BR xsi:type . -Use the -.B --polymorphic-type -option to specify which type hierarchies are polymorphic. - -.IP "\fB\--runtime-polymorphic\fR" -Generate non-polymorphic code that uses the runtime library configured with -polymorphism support. - -.IP "\fB\--polymorphic-type \fItype\fR" -Indicate that -.I type -is a root of a polymorphic type hierarchy. The compiler can often -automatically determine which types are polymorphic based on the -substitution group declarations. However, you may need to use this -option if you are not using substitution groups or if substitution -groups are defined in another schema. You need to specify this option -when compiling every schema file that references -.IR type . - -.IP "\fB\--generate-typeinfo\fR" -Generate custom type information querying functions for polymorphic -object model types. These functions can be used instead of the standard -C++ RTTI mechanism to determine object's type at runtime. - -.IP "\fB\--polymorphic-schema \fIfile\fR" -Indicate that -.I file -contains derivations of polymorphic types that are not otherwise visible -from the schema being compiled. This option is used to make sure that -during the generation of parser and serializer aggregates the compiler -is aware of all possible derivations of polymorphic types. Repeat this -option to specify more than one schema file. - -.IP "\fB\--reuse-style-mixin\fR" -Generate code that supports the mixin base parser/serializer -implementation reuse style. Note that this reuse style -relies on virtual inheritance and may result in a substantial -object code size increase for large vocabularies. By default -the tiein reuse style is used. - -.IP "\fB\--custom-data \fItype\fR" -Add the ability to store custom data to the C++ class generated -for XML Schema type -.IR type . -To add custom data to a nested compositor class use the qualified -name starting from the XML Schema type containing the compositor, -for example, -.BR foo::sequence::choise1 . - -.IP "\fB\--custom-type \fIname\fR[\fB=\fR[\fIflags\fR][\fB/\fR[\fIbase\fR][\fB/\fR[\fItype\fR][\fB/\fIinclude\fR]]]]" -Use a custom type implementation instead of the generated version. The -.I name -component is the XML Schema type name being customized. Optional -.I flags -allow you to specify whether the custom type is fixed or variable-length. The -.B f -flag indicates the type is fixed-length and the -.B v -flag indicates the type is variable-length. If omitted, the default rules -are used to determine the type length. Optional -.I type -is a C++ type name that should be used instead. If specified, the object -model type is defined as a -.B typedef -alias for this C++ type. Optional -.I base -is a C++ name that should be given to the generated version. It is normally -used as a base for the custom implementation. Optional -.I include -is the header file that defines the custom implementation. It is -.BR #include 'ed -into the generated code immediately after (if -.I base -is specified) or instead of the generated version. - -.IP "\fB\--custom-parser \fIname\fR[\fB=\fR[\fIbase\fR][\fB/\fIinclude\fR]]" -Use a custom parser implementation instead of the generated version. -The -.I name -component is the XML Schema type name being customized. Optional -.I base -is a C++ name that should be given to the generated version. It is -normally used as a base for the custom implementation. Optional -.I include -is the header file that defines the custom implementation. It is -.BR #include 'ed -into the generated code immediately after (if -.I base -is specified) or instead of the generated version. - -.IP "\fB\--custom-serializer \fIname\fR[\fB=\fR[\fIbase\fR][\fB/\fIinclude\fR]]" -Use a custom serializer implementation instead of the generated version. -The -.I name -component is the XML Schema type name being customized. Optional -.I base -is a C++ name that should be given to the generated version. It is -normally used as a base for the custom implementation. Optional -.I include -is the header file that defines the custom implementation. It is -.BR #include 'ed -into the generated code immediately after (if -.I base -is specified) or instead of the generated version. - -.IP "\fB\--root-element-first\fR" -Treat only the first global element as a document root. This -determines for which elements parser and serializer aggregates -are generated. By default all global elements are considered -document roots. See also the -.B --generate-aggregate -option. - -.IP "\fB\--root-element-last\fR" -Treat only the last global element as a document root. This -determines for which elements parser and serializer aggregates -are generated. By default all global elements are considered -document roots. See also the -.B --generate-aggregate -option. - -.IP "\fB\--root-element-all\fR" -Treat all global elements as document roots (the default -behavior). This determines for which elements parser and -serializer aggregates are generated. By explicitly specifying -this option you can suppress the warning that is issued if -more than one global element is defined. See also the -.B --generate-aggregate -option. - -.IP "\fB\--root-element-none\fR" -Do not treat any global elements as document roots. This -determines for which elements parser and serializer aggregates -are generated. By default all global elements are considered -document roots. See also the -.B --generate-aggregate -option. - -.IP "\fB\--root-element \fIelement\fR" -Treat only -.I element -as a document root. This -determines for which elements parser and serializer aggregates -are generated. Repeat this option to specify more than one root -element. See also the -.B --generate-aggregate -option. - -.IP "\fB\--root-type \fItype\fR" -Generate parser/serializer aggregate for -.IR type . -Repeat this option to specify more than one type. See also the -.B --generate-aggregate -option. - -.IP "\fB\--pskel-type-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B _pskel -to construct the names of generated parser skeletons. - -.IP "\fB\--sskel-type-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B _sskel -to construct the names of generated serializer skeletons. - -.IP "\fB\--pskel-file-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B -pskel -to construct the names of generated parser skeleton files. - -.IP "\fB\--sskel-file-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B -sskel -to construct the names of generated serializer skeleton files. - -.IP "\fB\--pimpl-type-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B _pimpl -to construct the names of generated parser implementations. - -.IP "\fB\--simpl-type-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B _simpl -to construct the names of generated serializer implementations. - -.IP "\fB\--pimpl-file-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B -pimpl -to construct the names of generated parser implementation files. - -.IP "\fB\--simpl-file-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B -simpl -to construct the names of generated serializer implementation files. - -.IP "\fB\--paggr-type-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B _paggs -to construct the names of generated parser aggregates. - -.IP "\fB\--saggr-type-suffix \fIsuffix\fR" -Use -.I suffix -instead of the default -.B _saggr -to construct the names of generated serializer aggregates. - -.\" -.\" C++/Parser options -.\" -.SS cxx-parser command options - -.IP "\fB\--type-map \fImapfile\fR" -Read XML Schema to C++ type mapping information from -.I mapfile -Repeat this option to specify several type maps. Type maps are -considered in order of appearance and the first match is used. -By default all user-defined types are mapped to -.BR void . -See the TYPE MAP section below for more information. - -.IP "\fB\--reuse-style-mixin\fR" -Generate code that supports the mixin base parser implementation reuse -style. Note that this reuse style relies on virtual inheritance and may -result in a substantial object code size increase for large vocabularies. -By default support for the tiein style is generated. - -.IP "\fB\--reuse-style-none\fR" -Do not generate any support for base parser implementation reuse. By -default support for the tiein style is generated. - -.IP "\fB\--suppress-validation\fR" -Suppress the generation of validation code. - -.IP "\fB\--generate-polymorphic\fR" -Generate polymorphism-aware code. Specify this option if you use substitution -groups or -.BR xsi:type . - -.IP "\fB\--runtime-polymorphic\fR" -Generate non-polymorphic code that uses the runtime library configured with -polymorphism support. - -.IP "\fB\--suppress-reset\fR" -Suppress the generation of parser reset code. Reset support allows you to reuse -parsers after an error. - -.IP "\fB\--generate-noop-impl\fR" -Generate a sample parser implementation that does nothing (no operation). -The sample implementation can then be filled with the application-specific -code. For an input file in the form -.B name.xsd -this option triggers the generation of the two additional C++ files in the form: -.B name-pimpl.hxx -(parser implementation header file) and -.B name-pimpl.cxx -(parser implementation source file). - -.IP "\fB\--generate-print-impl\fR" -Generate a sample parser implementation that prints the XML data to STDOUT. -For an input file in the form -.B name.xsd -this option triggers the generation of the two additional C++ files in the form: -.B name-pimpl.hxx -(parser implementation header file) and -.B name-pimpl.cxx -(parser implementation source file). - -.IP "\fB\--generate-test-driver\fR" -Generate a test driver for the sample parser implementation. For an input -file in the form -.B name.xsd -this option triggers the generation of an additional C++ file in the form -.BR name-pdriver.cxx . - -.IP "\fB\--force-overwrite\fR" -Force overwriting of the existing implementation and test driver files. -Use this option only if you do not mind loosing the changes you have made -in the sample implementation or test driver files. - -.IP "\fB\--root-element-first\fR" -Indicate that the first global element is the document root. This information -is used to generate the test driver for the sample implementation. - -.IP "\fB\--root-element-last\fR" -Indicate that the last global element is the document root. This information -is used to generate the test driver for the sample implementation. - -.IP "\fB\--root-element \fIelement\fR" -Indicate that -.I element -is the document root. This information is used to generate the test driver -for the sample implementation. - -.IP "\fB\--generate-xml-schema\fR" -Generate a C++ header file as if the schema being compiled defines the -XML Schema namespace. In particular, the resulting file will have -definitions for all parser skeletons and implementations corresponding -to the XML Schema built-in types. The schema file provided to the compiler -need not exist and is only used to derive the name of the resulting header -file. Use the -.B --extern-xml-schema -option to include this file in the generated files for other schemas. - -.IP "\fB\--extern-xml-schema \fIfile\fR" -Include a header file derived from -.I file -instead of generating the XML Schema namespace mapping inline. The provided -file need not exist and is only used to derive the name of the included -header file. Use the -.B --generate-xml-schema -option to generate this header file. - -.IP "\fB\--skel-type-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B _pskel -to construct the names of generated parser skeletons. - -.IP "\fB\--skel-file-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B -pskel -to construct the names of generated parser skeleton files. - -.IP "\fB\--impl-type-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B _pimpl -to construct the names of parser implementations for the built-in XML -Schema types and sample parser implementations. - -.IP "\fB\--impl-file-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B -pimpl -to construct the names of generated sample parser implementation files. - -.\" -.\" C++/Serializer options -.\" -.SS cxx-serializer command options - -.IP "\fB\--type-map \fImapfile\fR" -Read XML Schema to C++ type mapping information from -.I mapfile -Repeat this option to specify several type maps. Type maps are -considered in order of appearance and the first match is used. -By default all user-defined types are mapped to -.BR void . -See the TYPE MAP section below for more information. - -.IP "\fB\--reuse-style-mixin\fR" -Generate code that supports the mixin base serializer implementation reuse -style. Note that this reuse style relies on virtual inheritance and may -result in a substantial object code size increase for large vocabularies. -By default support for the tiein style is generated. - -.IP "\fB\--reuse-style-none\fR" -Do not generate any support for base serializer implementation reuse. By -default support for the tiein style is generated. - -.IP "\fB\--suppress-validation\fR" -Suppress the generation of validation code. - -.IP "\fB\--generate-polymorphic\fR" -Generate polymorphism-aware code. Specify this option if you use substitution -groups or -.BR xsi:type . - -.IP "\fB\--runtime-polymorphic\fR" -Generate non-polymorphic code that uses the runtime library configured with -polymorphism support. - -.IP "\fB\--suppress-reset\fR" -Suppress the generation of serializer reset code. Reset support allows you to -reuse serializers after an error. - -.IP "\fB\--generate-empty-impl\fR" -Generate a sample serializer implementation with empty function bodies -which can then be filled with the application-specific code. For an input -file in the form -.B name.xsd -this option triggers the generation of the two additional C++ files in the form: -.B name-simpl.hxx -(serializer implementation header file) and -.B name-simpl.cxx -(serializer implementation source file). - -.IP "\fB\--generate-test-driver\fR" -Generate a test driver for the sample serializer implementation. For an input -file in the form -.B name.xsd -this option triggers the generation of an additional C++ file in the form -.BR name-sdriver.cxx . - -.IP "\fB\--force-overwrite\fR" -Force overwriting of the existing implementation and test driver files. -Use this option only if you do not mind loosing the changes you have made -in the sample implementation or test driver files. - -.IP "\fB\--root-element-first\fR" -Indicate that the first global element is the document root. This information -is used to generate the test driver for the sample implementation. - -.IP "\fB\--root-element-last\fR" -Indicate that the last global element is the document root. This information -is used to generate the test driver for the sample implementation. - -.IP "\fB\--root-element \fIelement\fR" -Indicate that -.I element -is the document root. This information is used to generate the test driver -for the sample implementation. - -.IP "\fB\--generate-xml-schema\fR" -Generate a C++ header file as if the schema being compiled defines the -XML Schema namespace. In particular, the resulting file will have -definitions for all serializer skeletons and implementations corresponding -to the XML Schema built-in types. The schema file provided to the compiler -need not exist and is only used to derive the name of the resulting header -file. Use the -.B --extern-xml-schema -option to include this file in the generated files for other schemas. - -.IP "\fB\--extern-xml-schema \fIfile\fR" -Include a header file derived from -.I file -instead of generating the XML Schema namespace mapping inline. The provided -file need not exist and is only used to derive the name of the included -header file. Use the -.B --generate-xml-schema -option to generate this header file. - -.IP "\fB\--skel-type-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B _sskel -to construct the names of generated serializer skeletons. - -.IP "\fB\--skel-file-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B -sskel -to construct the names of generated serializer skeleton files. - -.IP "\fB\--impl-type-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B _simpl -to construct the names of serializer implementations for the built-in XML -Schema types and sample serializer implementations. - -.IP "\fB\--impl-file-suffix \fIsuffix\fR" -Use the provided -.I suffix -instead of the default -.B -simpl -to construct the names of generated sample serializer implementation files. - -.\" -.\" Type map -.\" -.SH TYPE MAP - -Type map files are used to define a mapping between XML Schema and -C++ types. For C++/Parser, the compiler uses this information to -determine the return types of -.B post_* -functions in parser skeletons corresponding to XML Schema types as -well as argument types for callbacks corresponding to elements and -attributes of these types. For C++/Serializer, type maps are used -to determine the argument type of -.B pre -functions in serializer skeletons corresponding to XML Schema types -as well as return types for callbacks corresponding to elements and -attributes of these types. - -The compiler has a set of predefined mapping rules that map the -built-in XML Schema types to suitable C++ types (discussed in -the following sub-sections) and all other types to -.BR void . -By providing your own type maps you can override these predefined -rules. The format of the type map file is presented below: - - -.RS -.B namespace -.I schema-namespace -[ -.I cxx-namespace -] -.br -.B { -.br - ( -.B include -.IB file-name ; -)* -.br - ([ -.B type -] -.I schema-type cxx-ret-type -[ -.I cxx-arg-type -.RB ] ; -)* -.br -.B } -.br -.RE - -Both -.I schema-namespace -and -.I schema-type -are regex patterns while -.IR cxx-namespace , -.IR cxx-ret-type , -and -.I cxx-arg-type -are regex pattern substitutions. All names can be optionally enclosed -in \fR" "\fR, for example, to include white-spaces. - -.I schema-namespace -determines XML Schema namespace. Optional -.I cxx-namespace -is prefixed to every C++ type name in this namespace declaration. -.I cxx-ret-type -is a C++ type name that is used as a return type for the -.B post_* -function in C++/Parser or for element/attribute callbacks in C++/Serializer. -Optional -.I cxx-arg-type -is an argument type for element/attribute callbacks in C++/Parser or for the -.B pre -function in C++/Serializer. If -.I cxx-arg-type -is not specified, it defaults to -.I cxx-ret-type -if -.I cxx-ret-type -ends with -.B * -or -.B & -(that is, it is a pointer or a reference) and -.B const -\fIcxx-ret-type\fB&\fR otherwise. -.I file-name -is a file name either in the \fR" "\fR or < > format and is added with the -.B #include -directive to the generated code. - -The \fB#\fR character starts a comment that ends with a new line or end of -file. To specify a name that contains \fB#\fR enclose it in \fR" "\fR. For -example: - -.RS -namespace http://www.example.com/xmlns/my my -.br -{ -.br - include "my.hxx"; -.br - - # Pass apples by value. - # - apple apple; -.br - - # Pass oranges as pointers. - # - orange orange_t*; -.br -} -.br -.RE - -In the example above, for the -.B http://www.example.com/xmlns/my#orange -XML Schema type, the -.B my::orange_t* -C++ type will be used as both return and argument types. - -Several namespace declarations can be specified in a single file. -The namespace declaration can also be completely omitted to map -types in a schema without a namespace. For instance: - -.RS -include "my.hxx"; -.br -apple apple; -.br - -namespace http://www.example.com/xmlns/my -.br -{ -.br - orange "const orange_t*"; -.br -} -.br -.RE - -The compiler has a number of predefined mapping rules for the built-in -XML Schema types that vary depending on the mapping used. They are -described in the following subsections. The last predefined rule -for all the mappings maps anything that wasn't mapped by previous rules to -.BR void : - -.RS -namespace .* -.br -{ -.br - .* void void; -.br -} -.br -.RE - -When you provide your own type maps with the -.B --type-map -option, they are evaluated first. This allows you to selectively override -predefined rules. - -.\" -.\" Predefined C++/Parser Type Maps -.\" -.SS Predefined C++/Parser Type Maps - -The C++/Parser mapping provides a number of predefined type map rules -for the built-in XML Schema types. They can be presented as the -following map files: - -.RS -namespace http://www.w3.org/2001/XMLSchema -.br -{ -.br - boolean bool bool; -.br - - byte "signed char" "signed char"; -.br - unsignedByte "unsigned char" "unsigned char"; -.br - - short short short; -.br - unsignedShort "unsigned short" "unsigned short"; -.br - - int int int; -.br - unsignedInt "unsigned int" "unsigned int"; -.br - - long "long long" "long long"; -.br - unsignedLong "unsigned long long" "unsigned long long"; -.br - - integer long long; -.br - - negativeInteger long long; -.br - nonPositiveInteger long long; -.br - - positiveInteger "unsigned long" "unsigned long"; -.br - nonNegativeInteger "unsigned long" "unsigned long"; -.br - - float float float; -.br - double double double; -.br - decimal double double; -.br - - NMTOKENS xml_schema::string_sequence*; -.br - IDREFS xml_schema::string_sequence*; -.br - - base64Binary xml_schema::buffer*; -.br - hexBinary xml_schema::buffer*; -.br - - date xml_schema::date; -.br - dateTime xml_schema::date_time; -.br - duration xml_schema::duration; -.br - gDay xml_schema::gday; -.br - gMonth xml_schema::gmonth; -.br - gMonthDay xml_schema::gmonth_day; -.br - gYear xml_schema::gyear; -.br - gYearMonth xml_schema::gyear_month; -.br - time xml_schema::time; -.br -} -.br -.RE - -If the -.B --no-stl -option is not specified, the following mapping is used for the -string-based XML Schema built-in types: - -.RS -namespace http://www.w3.org/2001/XMLSchema -.br -{ -.br - include <string>; -.br - - string std::string; -.br - normalizedString std::string; -.br - token std::string; -.br - Name std::string; -.br - NMTOKEN std::string; -.br - NCName std::string; -.br - ID std::string; -.br - IDREF std::string; -.br - language std::string; -.br - anyURI std::string; -.br - - QName xml_schema::qname; -.br -} -.br -.RE - -Otherwise, a C string-based mapping is used: - -.RS -namespace http://www.w3.org/2001/XMLSchema -.br -{ -.br - string char*; -.br - normalizedString char*; -.br - token char*; -.br - Name char*; -.br - NMTOKEN char*; -.br - NCName char*; -.br - ID char*; -.br - IDREF char*; -.br - language char*; -.br - anyURI char*; -.br - - QName xml_schema::qname*; -.br -} -.br -.RE - -.\" -.\" Predefined C++/Serializer Type Maps -.\" -.SS Predefined C++/Serializer Type Maps - -The C++/Serializer mapping provides a number of predefined type map -rules for the built-in XML Schema types. They can be presented as the -following map files: - -.RS -namespace http://www.w3.org/2001/XMLSchema -.br -{ -.br - boolean bool bool; -.br - - byte "signed char" "signed char"; -.br - unsignedByte "unsigned char" "unsigned char"; -.br - - short short short; -.br - unsignedShort "unsigned short" "unsigned short"; -.br - - int int int; -.br - unsignedInt "unsigned int" "unsigned int"; -.br - - long "long long" "long long"; -.br - unsignedLong "unsigned long long" "unsigned long long"; -.br - - integer long long; -.br - - negativeInteger long long; -.br - nonPositiveInteger long long; -.br - - positiveInteger "unsigned long" "unsigned long"; -.br - nonNegativeInteger "unsigned long" "unsigned long"; -.br - - float float float; -.br - double double double; -.br - decimal double double; -.br - - NMTOKENS "const xml_schema::string_sequence*"; -.br - IDREFS "const xml_schema::string_sequence*"; -.br - - base64Binary "const xml_schema::buffer*"; -.br - hexBinary "const xml_schema::buffer*"; -.br - - date xml_schema::date; -.br - dateTime xml_schema::date_time; -.br - duration xml_schema::duration; -.br - gDay xml_schema::gday; -.br - gMonth xml_schema::gmonth; -.br - gMonthDay xml_schema::gmonth_day; -.br - gYear xml_schema::gyear; -.br - gYearMonth xml_schema::gyear_month; -.br - time xml_schema::time; -.br -} -.br -.RE - -If the -.B --no-stl -option is not specified, the following mapping is used for the -string-based XML Schema built-in types: - -.RS -namespace http://www.w3.org/2001/XMLSchema -.br -{ -.br - include <string>; -.br - - string std::string; -.br - normalizedString std::string; -.br - token std::string; -.br - Name std::string; -.br - NMTOKEN std::string; -.br - NCName std::string; -.br - ID std::string; -.br - IDREF std::string; -.br - language std::string; -.br - anyURI std::string; -.br - - QName xml_schema::qname; -.br -} -.br -.RE - -Otherwise, a C string-based mapping is used: - -.RS -namespace http://www.w3.org/2001/XMLSchema -.br -{ -.br - string "const char*"; -.br - normalizedString "const char*"; -.br - token "const char*"; -.br - Name "const char*"; -.br - NMTOKEN "const char*"; -.br - NCName "const char*"; -.br - ID "const char*"; -.br - IDREF "const char*"; -.br - language "const char*"; -.br - anyURI "const char*"; -.br - - QName "const xml_schema::qname*"; -.br -} -.br -.RE - -.\" -.\" REGEX AND SHELL QUOTING -.\" -.SH REGEX AND SHELL QUOTING -When entering a regular expression argument in the shell command line -it is often necessary to use quoting (enclosing the argument in " " -or ' ') in order to prevent the shell from interpreting certain -characters, for example, spaces as argument separators and $ as -variable expansions. - -Unfortunately it is hard to achieve this in a manner that is portable -across POSIX shells, such as those found on GNU/Linux and UNIX, and -Windows shell. For example, if you use " " for quoting you will get -a wrong result with POSIX shells if your expression contains $. The -standard way of dealing with this on POSIX systems is to use ' ' -instead. Unfortunately, Windows shell does not remove ' ' from -arguments when they are passed to applications. As a result you may -have to use ' ' for POSIX and " " for Windows ($ is not treated as -a special character on Windows). - -Alternatively, you can save regular expression options into a file, -one option per line, and use this file with the -.B --options-file -option. With this approach you don't need to worry about shell quoting. - -.\" -.\" DIAGNOSTICS -.\" -.SH DIAGNOSTICS -If the input file is not a valid W3C XML Schema definition, -.B xsde -will issue diagnostic messages to -.B STDERR -and exit with non-zero exit code. - -.SH BUGS -Send bug reports to the xsde-users@codesynthesis.com mailing list. - -.SH COPYRIGHT -Copyright (c) 2005-2011 Code Synthesis Tools CC. - -Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, -version 1.2; with no Invariant Sections, no Front-Cover Texts and -no Back-Cover Texts. Copy of the license can be obtained from -http://codesynthesis.com/licenses/fdl-1.2.txt |