summaryrefslogtreecommitdiff
path: root/doc/pregenerated/xsd.1
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2025-03-19 15:41:36 +0100
committerJörg Frings-Fürst <debian@jff.email>2025-03-19 15:41:36 +0100
commit018e1ba581ec6f01f069a45ec4cf89f152b44d5f (patch)
tree0e7dda4bb693a6714066fbe5efcd2f24ff7c1a65 /doc/pregenerated/xsd.1
parent1c188393cd2e271ed2581471b601fb5960777fd8 (diff)
remerge
Diffstat (limited to 'doc/pregenerated/xsd.1')
-rw-r--r--doc/pregenerated/xsd.11500
1 files changed, 0 insertions, 1500 deletions
diff --git a/doc/pregenerated/xsd.1 b/doc/pregenerated/xsd.1
deleted file mode 100644
index 74c9e89..0000000
--- a/doc/pregenerated/xsd.1
+++ /dev/null
@@ -1,1500 +0,0 @@
-.\" Process this file with
-.\" groff -man -Tascii xsd.1
-.\"
-.TH XSD 1 "January 2023" "XSD 4.2.0"
-.SH NAME
-xsd \- W3C XML Schema to C++ Compiler
-.\"
-.\"
-.\"
-.\"--------------------------------------------------------------------
-.SH SYNOPSIS
-.\"--------------------------------------------------------------------
-.B xsd
-.I command
-.B [
-.I options
-.B ]
-.I file
-.B [
-.I file
-.B ...]
-.in
-.B xsd help
-.B [
-.I command
-.B ]
-.in
-.B xsd version
-.\"
-.\"
-.\"
-.\"--------------------------------------------------------------------
-.SH DESCRIPTION
-.\"--------------------------------------------------------------------
-.B xsd
-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-tree\fR
-Generate the C++/Tree mapping. For each input file in the form
-.B name.xsd
-the following C++ files are generated:
-.B name.hxx
-(header file),
-.B name.ixx
-(inline file, generated only if the
-.B --generate-inline
-option is specified),
-.B name.cxx
-(source file), and
-.B name-fwd.hxx
-(forward declaration file, generated only if the
-.B --generate-forward
-option is specified).
-
-.IP \fBcxx-parser\fR
-Generate the 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-driver.cxx
-test driver file is generated.
-
-.IP \fBhelp\fR
-Print usage information and exit. Use
-.PP
-.RS
-.RS 3
-.B xsd 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--std\fR \fIversion\fR"
-Specify the C++ standard that the generated code should conform to\. Valid
-values are \fBc++98\fR, \fBc++11\fR (default), \fBc++14\fR, \fBc++17\fR,
-\fBc++20\fR, and \fBc++23\fR\.
-
-The C++ standard affects various aspects of the generated code that are
-discussed in more detail in various mapping-specific documentation\. Overall,
-when C++11 is selected, the generated code relies on the move semantics and
-uses \fBstd::unique_ptr\fR instead of deprecated \fBstd::auto_ptr\fR\.
-Currently, there is no difference between the C++11 and the later standards
-modes\.
-
-When the C++11 mode is selected, you normally don't need to perform any extra
-steps other than enable C++11 in your C++ compiler, if required\. The XSD
-compiler will automatically add the necessary macro defines to the generated
-header files that will switch the header-only XSD runtime library
-(\fBlibxsd\fR) to the C++11 mode\. However, if you include any of the XSD
-runtime headers directly in your application (normally you just include the
-generated headers), then you will need to define the \fBXSD_CXX11\fR macro for
-your entire project\.
-.IP "\fB--char-type\fR \fItype\fR"
-Generate code using the provided character \fItype\fR instead of the default
-\fBchar\fR\. Valid values are \fBchar\fR and \fBwchar_t\fR\.
-.IP "\fB--char-encoding\fR \fIenc\fR"
-Specify the character encoding that should be used in the generated code\.
-Valid values for the \fBchar\fR character type are \fButf8\fR (default),
-\fBiso8859-1\fR, \fBlcp\fR (Xerces-C++ local code page), and \fBcustom\fR\. If
-you pass \fBcustom\fR as the value then you will need to include the
-transcoder implementation header for your encoding at the beginning of the
-generated header files (see the \fB--hxx-prologue\fR option)\.
-
-For the \fBwchar_t\fR character type the only valid value is \fBauto\fR and
-the encoding is automatically selected between UTF-16 and UTF-32/UCS-4,
-depending on the \fBwchar_t\fR type size\.
-.IP "\fB--output-dir\fR \fIdir\fR"
-Write generated files to \fIdir\fR instead of the current directory\.
-.IP "\fB--generate-inline\fR"
-Generate simple functions inline\. This option triggers creation of the inline
-file\.
-.IP "\fB--generate-xml-schema\fR"
-Generate a C++ header file as if the schema being compiled defines the XML
-Schema namespace\. For the C++/Tree mapping, the resulting file will contain
-definitions for all XML Schema built-in types\. For the C++/Parser mapping,
-the resulting file will contain definitions for all the 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
-\fB--extern-xml-schema\fR option to include this file in the generated files
-for other schemas\.
-.IP "\fB--extern-xml-schema\fR \fIfile\fR"
-Include a header file derived from \fIfile\fR 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
-\fB--generate-xml-schema\fR option to generate this header file\.
-.IP "\fB--namespace-map\fR \fIxns\fR=\fIcns\fR"
-Map XML Schema namespace \fIxns\fR to C++ namespace \fIcns\fR\. Repeat this
-option to specify mapping for more than one XML Schema namespace\. For
-example, the following option:
-
-\fB--namespace-map http://example\.com/foo/bar=foo::bar\fR
-
-Will map the \fBhttp://example\.com/foo/bar\fR XML Schema namespace to the
-\fBfoo::bar\fR C++ namespace\.
-.IP "\fB--namespace-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema namespace names to C++ namespace names\. \fIregex\fR is a Perl-like
-regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. Any character can be
-used as a delimiter instead of '\fB/\fR'\. Escaping of the delimiter character
-in \fIpattern\fR or \fIreplacement\fR 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
-
-\fIfilename\fR \fInamespace\fR\fR
-
-For example, if you have file \fBhello\.xsd\fR with namespace
-\fBhttp://example\.com/hello\fR and you run \fBxsd\fR on this file, then the
-string in question will be:
-
-\fBhello\.xsd\. http://example\.com/hello\fR
-
-For the built-in XML Schema namespace the string is:
-
-\fBXMLSchema\.xsd http://www\.w3\.org/2001/XMLSchema\fR
-
-The following three steps are performed for each regular expression until the
-match is found:
-
-1\. The expression is applied and if the result is empty the next expression
-is considered\.
-
-2\. All '\fB/\fR' are replaced with '\fB::\fR'\.
-
-3\. The result is verified to be a valid C++ scope name (e\.g\.,
-\fBfoo::bar\fR)\. If this test succeeds, the result is used as a C++ namespace
-name\.
-
-As an example, the following expression maps XML Schema namespaces in the
-form \fBhttp://example\.com/foo/bar\fR to C++ namespaces in the form
-\fBfoo::bar\fR:
-
-\fB%\.* http://example\.com/(\.+)%$1%\fR
-
-See also the REGEX AND SHELL QUOTING section below\.
-.IP "\fB--namespace-regex-trace\fR"
-Trace the process of applying regular expressions specified with the
-\fB--namespace-regex\fR option\. Use this option to find out why your regular
-expressions don't do what you expected them to do\.
-.IP "\fB--reserved-name\fR \fIn\fR[=\fIr\fR]"
-Add name \fIn\fR to the list of names that should not be used as identifiers\.
-The name can optionally be followed by \fB=\fR and the replacement name
-\fIr\fR 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 \fB#include\fR
-directives\.
-.IP "\fB--include-prefix\fR \fIprefix\fR"
-Add \fIprefix\fR to generated \fB#include\fR directive paths\.
-
-For example, if you had the following import element in your schema
-
-\fB<import namespace="\.\.\." schemaLocation="base\.xsd"/>\fR
-
-and compiled this fragment with \fB--include-prefix schemas/\fR, then the
-include directive in the generated code would be:
-
-\fB#include "schemas/base\.hxx"\fR
-.IP "\fB--include-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to transform
-\fB#include\fR directive paths\. \fIregex\fR is a Perl-like regular expression
-in the form \fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. Any
-character can be used as a delimiter instead of '\fB/\fR'\. Escaping of the
-delimiter character in \fIpattern\fR or \fIreplacement\fR 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
-\fBschemas/foo/bar\fR to paths in the form \fBgenerated/foo/bar\fR:
-
-\fB%schemas/(\.+)%generated/$1%\fR
-
-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
-\fB--include-regex\fR option\. Use this option to find out why your regular
-expressions don't do what you expected them to do\.
-.IP "\fB--guard-prefix\fR \fIprefix\fR"
-Add \fIprefix\fR 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\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB\.hxx\fR to construct
-the name of the header file\. Note that this suffix is also used to construct
-names of header files corresponding to included/imported schemas\.
-.IP "\fB--ixx-suffix\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB\.ixx\fR to construct
-the name of the inline file\.
-.IP "\fB--cxx-suffix\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB\.cxx\fR to construct
-the name of the source file\.
-.IP "\fB--fwd-suffix\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB-fwd\.hxx\fR to
-construct the name of the forward declaration file\.
-.IP "\fB--hxx-regex\fR \fIregex\fR"
-Use the provided expression to construct the name of the header file\.
-\fIregex\fR is a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. Note that this
-expression is also used to construct names of header files corresponding to
-included/imported schemas\. See also the REGEX AND SHELL QUOTING section
-below\.
-.IP "\fB--ixx-regex\fR \fIregex\fR"
-Use the provided expression to construct the name of the inline file\.
-\fIregex\fR is a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. See also the REGEX
-AND SHELL QUOTING section below\.
-.IP "\fB--cxx-regex\fR \fIregex\fR"
-Use the provided expression to construct the name of the source file\.
-\fIregex\fR is a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. See also the REGEX
-AND SHELL QUOTING section below\.
-.IP "\fB--fwd-regex\fR \fIregex\fR"
-Use the provided expression to construct the name of the forward declaration
-file\. \fIregex\fR is a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. See also the REGEX
-AND SHELL QUOTING section below\.
-.IP "\fB--hxx-prologue\fR \fItext\fR"
-Insert \fItext\fR at the beginning of the header file\.
-.IP "\fB--ixx-prologue\fR \fItext\fR"
-Insert \fItext\fR at the beginning of the inline file\.
-.IP "\fB--cxx-prologue\fR \fItext\fR"
-Insert \fItext\fR at the beginning of the source file\.
-.IP "\fB--fwd-prologue\fR \fItext\fR"
-Insert \fItext\fR at the beginning of the forward declaration file\.
-.IP "\fB--prologue\fR \fItext\fR"
-Insert \fItext\fR at the beginning of each generated file for which there is
-no file-specific prologue\.
-.IP "\fB--hxx-epilogue\fR \fItext\fR"
-Insert \fItext\fR at the end of the header file\.
-.IP "\fB--ixx-epilogue\fR \fItext\fR"
-Insert \fItext\fR at the end of the inline file\.
-.IP "\fB--cxx-epilogue\fR \fItext\fR"
-Insert \fItext\fR at the end of the source file\.
-.IP "\fB--fwd-epilogue\fR \fItext\fR"
-Insert \fItext\fR at the end of the forward declaration file\.
-.IP "\fB--epilogue\fR \fItext\fR"
-Insert \fItext\fR at the end of each generated file for which there is no
-file-specific epilogue\.
-.IP "\fB--hxx-prologue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the beginning of the header file\.
-.IP "\fB--ixx-prologue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the beginning of the inline file\.
-.IP "\fB--cxx-prologue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the beginning of the source file\.
-.IP "\fB--fwd-prologue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the beginning of the forward
-declaration file\.
-.IP "\fB--prologue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the beginning of each generated file
-for which there is no file-specific prologue file\.
-.IP "\fB--hxx-epilogue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the end of the header file\.
-.IP "\fB--ixx-epilogue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the end of the inline file\.
-.IP "\fB--cxx-epilogue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the end of the source file\.
-.IP "\fB--fwd-epilogue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the end of the forward declaration
-file\.
-.IP "\fB--epilogue-file\fR \fIfile\fR"
-Insert the content of the \fIfile\fR at the end of each generated file for
-which there is no file-specific epilogue file\.
-.IP "\fB--export-symbol\fR \fIsymbol\fR"
-Insert \fIsymbol\fR in places where DLL export/import control statements
-(\fB__declspec(dllexport/dllimport)\fR) are necessary\.
-.IP "\fB--export-xml-schema\fR"
-Export/import types in the XML Schema namespace using the export symbol
-provided with the \fB--export-symbol\fR option\. The \fBXSD_NO_EXPORT\fR macro
-can be used to omit this code during C++ compilation, which may be useful if
-you would like to use the same generated code across multiple platforms\.
-.IP "\fB--export-maps\fR"
-Export polymorphism support maps from a Win32 DLL into which this generated
-code is placed\. This is necessary when your type hierarchy is split across
-several DLLs since otherwise each DLL will have its own set of maps\. In this
-situation the generated code for the DLL which contains base types and/or
-substitution group heads should be compiled with this option and the generated
-code for all other DLLs should be compiled with \fB--import-maps\fR\. This
-option is only valid together with \fB--generate-polymorphic\fR\. The
-\fBXSD_NO_EXPORT\fR macro can be used to omit this code during C++
-compilation, which may be useful if you would like to use the same generated
-code across multiple platforms\.
-.IP "\fB--import-maps\fR"
-Import polymorphism support maps to a Win32 DLL or executable into which this
-generated code is linked\. See the \fB--export-maps\fR option documentation
-for details\. This options is only valid together with
-\fB--generate-polymorphic\fR\. The \fBXSD_NO_EXPORT\fR macro can be used to
-omit this code during C++ compilation, which may be useful if you would like
-to use the same generated code across multiple platforms\.
-.IP "\fB--generate-dep\fR"
-Generate \fBmake\fR dependency information\. This option triggers the creation
-of the \fB\.d\fR file containing the dependencies of the generated files on
-the main schema file as well as all the schema files that it includes/imports,
-transitively\. This dependency file is then normally included into the main
-\fBmakefile\fR to implement automatic dependency tracking\. See also the
-\fB--dep-*\fR options\.
-
-Note also that automatic dependency generation is not supported in the
-file-per-type mode (\fB--file-per-type\fR)\. In this case, all the generated
-files are produced with a single compiler invocation and depend on all the
-schemas\. As a result, it is easier to establish such a dependency manually,
-perhaps with the help of the \fB--file-list*\fR options\.
-.IP "\fB--generate-dep-only\fR"
-Generate \fBmake\fR dependency information only\.
-.IP "\fB--dep-phony\fR"
-Generate phony targets for included/imported schema files, causing each to
-depend on nothing\. Such dummy rules work around \fBmake\fR errors caused by
-the removal of schema files without also updating the dependency file to
-match\.
-.IP "\fB--dep-target\fR \fItarget\fR"
-Change the target of the dependency rule\. By default it contains all the
-generated C++ files as well as the dependency file itself, without any
-directory prefixes\. If you require multiple targets, then you can specify
-them as a single, space-separated argument or you can repeat this option
-multiple times\.
-.IP "\fB--dep-suffix\fR \fIsuffix\fR"
-Use \fIsuffix\fR instead of the default \fB\.d\fR to construct the name of the
-dependency file\. See also \fB--dep-file\fR\.
-.IP "\fB--dep-file\fR \fIpath\fR"
-Use \fIpath\fR as the generated dependency file path instead of deriving it
-from the input file name\. Write the dependency information to \fBstdout\fR if
-\fIpath\fR is \fB-\fR\. See also \fB--dep-regex\fR\.
-.IP "\fB--dep-regex\fR \fIregex\fR"
-Use the provided expression to construct the name of the dependency file\.
-\fIregex\fR is a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. See also the REGEX
-AND SHELL QUOTING section below\.
-.IP "\fB--disable-warning\fR \fIwarn\fR"
-Disable printing warning with id \fIwarn\fR\. If \fBall\fR is specified for
-the warning id then all warnings are disabled\.
-.IP "\fB--options-file\fR \fIfile\fR"
-Read additional options from \fIfile\fR\. Each option should appearing on a
-separate line optionally followed by space and an option value\. Empty lines
-and lines starting with \fB#\fR are ignored\. Option values can be enclosed in
-double (\fB"\fR) or single (\fB'\fR) quotes to preserve leading and trailing
-whitespaces as well as to specify empty values\. If the value itself contains
-trailing or leading quotes, enclose it with an extra pair of quotes, for
-example \fB'"x"'\fR\. Non-leading and non-trailing quotes are interpreted as
-being part of the option value\.
-
-The semantics of providing options in a file is equivalent to providing the
-same set of options in the same order on the command line at the point where
-the \fB--options-file\fR option is specified except that the shell escaping
-and quoting is not required\. You can repeat this option to specify more than
-one options file\.
-.IP "\fB--show-sloc\fR"
-Show the number of generated physical source lines of code (SLOC)\.
-.IP "\fB--sloc-limit\fR \fInum\fR"
-Check that the number of generated physical source lines of code (SLOC) does
-not exceed \fInum\fR\.
-.IP "\fB--proprietary-license\fR"
-Indicate that the generated code is licensed under a proprietary license
-instead of the GPL\.
-.IP "\fB--custom-literals\fR \fIfile\fR"
-Load custom XML string to C++ literal mappings from \fIfile\fR\. This
-mechanism can be useful if you are using a custom character encoding and some
-of the strings in your schemas, for example element/attribute names or
-enumeration values, contain non-ASCII characters\. In this case you will need
-to provide a custom mapping to C++ literals for such strings\. The format of
-this file is specified in the \fBcustom-literals\.xsd\fR XML Schema file that
-can be found in the documentation directory\.
-.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 \fB--preserve-anonymous\fR option\.
-.IP "\fB--anonymous-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to derive names for
-anonymous types from the enclosing attributes/elements\. \fIregex\fR is a
-Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. Any character can be
-used as a delimiter instead of '\fB/\fR'\. Escaping of the delimiter character
-in \fIpattern\fR or \fIreplacement\fR 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
-
-\fIfilename\fR \fInamespace\fR \fIxpath\fR\fR
-
-For instance:
-
-\fBhello\.xsd http://example\.com/hello element\fR
-
-\fBhello\.xsd http://example\.com/hello type/element\fR
-
-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:
-
-\fB%\.* \.* (\.+/)*(\.+)%\eu$2%\fR
-
-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
-\fB--anonymous-regex\fR option\. Use this option to find out why your regular
-expressions don't do what you expected them to do\.
-.IP "\fB--location-map\fR \fIol\fR=\fInl\fR"
-Map the original schema location \fIol\fR that is specified in the XML Schema
-include or import elements to new schema location \fInl\fR\. Repeat this
-option to map more than one schema location\. For example, the following
-option maps the \fBhttp://example\.com/foo\.xsd\fR URL to the \fBfoo\.xsd\fR
-local file\.
-
-\fB--location-map http://example\.com/foo\.xsd=foo\.xsd\fR
-.IP "\fB--location-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to map schema
-locations that are specified in the XML Schema include or import elements\.
-\fIregex\fR is a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. Any character can be
-used as a delimiter instead of '\fB/\fR'\. Escaping of the delimiter character
-in \fIpattern\fR or \fIreplacement\fR 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
-\fBhttp://example\.com/foo/bar\.xsd\fR to local files in the form
-\fBbar\.xsd\fR:
-
-\fB%http://\.+/(\.+)%$1%\fR
-
-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
-\fB--location-regex\fR 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: \fB--type-file-regex\fR,
-\fB--schema-file-regex\fR, \fB--fat-type-file\fR, and \fB--file-list\fR\.
-.IP "\fB--type-file-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate type
-names to file names when the \fB--file-per-type\fR option is specified\.
-\fIregex\fR is a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. Any character can be
-used as a delimiter instead of '\fB/\fR'\. Escaping of the delimiter character
-in \fIpattern\fR or \fIreplacement\fR 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
-
-\fInamespace\fR \fItype-name\fR\fR
-
-For example, the following expression maps type \fBfoo\fR that is defined in
-the \fBhttp://example\.com/bar\fR namespace to file name \fBbar-foo\fR:
-
-\fB%http://example\.com/(\.+) (\.+)%$1-$2%\fR
-
-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
-\fB--type-file-regex\fR 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\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate schema
-file names when the \fB--file-per-type\fR option is specified\. \fIregex\fR is
-a Perl-like regular expression in the form
-\fB/\fR\fIpattern\fR\fB/\fR\fIreplacement\fR\fB/\fR\fR\. Any character can be
-used as a delimiter instead of '\fB/\fR'\. Escaping of the delimiter character
-in \fIpattern\fR or \fIreplacement\fR 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 \fB#include\fR
-directive paths as well as the generated C++ file paths\. This option, along
-with \fB--type-file-regex\fR are primarily useful to place the generated files
-into subdirectories or to resolve file name conflicts\.
-
-For example, the following expression maps schema files in the
-\fBfoo/1\.0\.0/\fR subdirectory to the files in the \fBfoo/\fR subdirectory\.
-As a result, the \fB#include\fR directive paths for such schemas will be in
-the \fBfoo/schema\.hxx\fR form and the generated C++ files will be placed into
-the \fBfoo/\fR subdirectory:
-
-\fB%\.*/foo/1\.0\.0/(\.+)%foo/$1%\fR
-
-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
-\fB--schema-file-regex\fR 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 \fB--type-file-regex\fR 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\fR \fIfile\fR"
-Write a list of generated C++ files to \fIfile\fR or to \fBstdout\fR if
-\fIfile\fR is \fB-\fR\. This option is primarily useful in the file-per-type
-compilation mode (\fB--file-per-type\fR) to create a list of generated C++
-files, for example, as a makefile fragment\.
-.IP "\fB--file-list-only\fR"
-Only write the list of C++ files that would be generated without actually
-generating them\. This option only makes sense together with
-\fB--file-list\fR\.
-.IP "\fB--file-list-prologue\fR \fItext\fR"
-Insert \fItext\fR at the beginning of the file list\. As a convenience, all
-occurrences of the \fB\en\fR character sequence in \fItext\fR 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\fR \fItext\fR"
-Insert \fItext\fR at the end of the file list\. As a convenience, all
-occurrences of the \fB\en\fR character sequence in \fItext\fR are replaced
-with new lines\.
-.IP "\fB--file-list-delim\fR \fItext\fR"
-Delimit file names written to the file list with \fItext\fR instead of new
-lines\. As a convenience, all occurrences of the \fB\en\fR character sequence
-in \fItext\fR are replaced with new lines\.
-.\"
-.\" C++/Tree options.
-.\"
-.SS cxx-tree command options
-.IP "\fB--generate-polymorphic\fR"
-Generate polymorphism-aware code\. Specify this option if you use substitution
-groups or \fBxsi:type\fR\. Use the \fB--polymorphic-type\fR or
-\fB--polymorphic-type-all\fR option to specify which type hierarchies are
-polymorphic\.
-.IP "\fB--polymorphic-type\fR \fItype\fR"
-Indicate that \fItype\fR 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 \fItype\fR\. The \fItype\fR argument is an
-XML Schema type name that can be optionally qualified with a namespace in the
-\fInamespace\fR\fB#\fR\fIname\fR\fR form\.
-.IP "\fB--polymorphic-type-all\fR"
-Indicate that all types should be treated as polymorphic\.
-.IP "\fB--polymorphic-plate\fR \fInum\fR"
-Specify the polymorphic map plate the generated code should register on\. This
-functionality is primarily useful to segregate multiple schemas that define
-the same polymorphic types\.
-.IP "\fB--ordered-type\fR \fItype\fR"
-Indicate that element order in \fItype\fR is significant\. An example would be
-a complex type with unbounded choice as a content model where the element
-order in XML has application-specific semantics\. For ordered types the
-compiler generates a special container data member and a corresponding set of
-accessors and modifiers that are used to capture the order of elements and,
-for mixed content, of text\.
-
-The \fItype\fR argument is an XML Schema type name that can be optionally
-qualified with a namespace in the \fInamespace\fR\fB#\fR\fIname\fR\fR form\.
-Note also that you will need to specify this option when compiling every
-schema file that has other ordered types derived from this type\.
-.IP "\fB--ordered-type-derived\fR"
-Automatically treat types derived from ordered bases as also ordered\. This is
-primarily useful if you would like to be able to iterate over the complete
-content using the content order container\.
-.IP "\fB--ordered-type-mixed\fR"
-Automatically treat complex types with mixed content as ordered\.
-.IP "\fB--ordered-type-all\fR"
-Indicate that element order in all types is significant\.
-.IP "\fB--order-container\fR \fItype\fR"
-Specify a custom class template that should be used as a container for the
-content order in ordered types instead of the default \fBstd::vector\fR\. See
-\fB--ordered-type\fR for more information on ordered type\. This option is
-primarily useful if you need to perform more complex lookups in the content
-order container, for example by element id\. In this case, a container like
-Boost multi-index may be more convenient\. Note that if using a custom
-container, you will also most likely need to include the relevant headers
-using the \fB--hxx-prologue*\fR options\.
-.IP "\fB--generate-serialization\fR"
-Generate serialization functions\. Serialization functions convert the object
-model back to XML\.
-.IP "\fB--generate-ostream\fR"
-Generate ostream insertion operators (\fBoperator<<\fR) for generated types\.
-This allows one to easily print a fragment or the whole object model for
-debugging or logging\.
-.IP "\fB--generate-doxygen\fR"
-Generate documentation comments suitable for extraction by the Doxygen
-documentation system\. Documentation from annotations is added to the comments
-if present in the schema\.
-.IP "\fB--generate-comparison\fR"
-Generate comparison operators (\fBoperator==\fR and \fBoperator!=\fR) for
-complex types\. Comparison is performed member-wise\.
-.IP "\fB--generate-default-ctor\fR"
-Generate default constructors even for types that have required members\.
-Required members of an instance constructed using such a constructor are not
-initialized and accessing them results in undefined behavior\.
-.IP "\fB--generate-from-base-ctor\fR"
-Generate constructors that expect an instance of a base type followed by all
-required members\.
-.IP "\fB--suppress-assignment\fR"
-Suppress the generation of copy assignment operators for complex types\. If
-this option is specified, the copy assignment operators for such types are
-declared private and left unimplemented\.
-.IP "\fB--generate-detach\fR"
-Generate detach functions for required elements and attributes\. Detach
-functions for optional and sequence cardinalities are provided by the
-respective containers\. 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-wildcard\fR"
-Generate accessors and modifiers as well as parsing and serialization code for
-XML Schema wildcards (\fBany\fR and \fBanyAttribute\fR)\. XML content matched
-by wildcards is presented as DOM fragments\. Note that you need to initialize
-the Xerces-C++ runtime if you are using this option\.
-.IP "\fB--generate-any-type\fR"
-Extract and store content of the XML Schema \fBanyType\fR type as a DOM
-fragment\. Note that you need to initialize the Xerces-C++ runtime if you are
-using this option\.
-.IP "\fB--generate-insertion\fR \fIos\fR"
-Generate data representation stream insertion operators for the \fIos\fR
-output stream type\. Repeat this option to specify more than one stream type\.
-The ACE CDR stream (\fBACE_OutputCDR\fR) and RPC XDR are recognized by the
-compiler and the necessary \fB#include\fR directives are automatically
-generated\. For custom stream types use the \fB--hxx-prologue*\fR options to
-provide the necessary declarations\.
-.IP "\fB--generate-extraction\fR \fIis\fR"
-Generate data representation stream extraction constructors for the \fIis\fR
-input stream type\. Repeat this option to specify more than one stream type\.
-The ACE CDR stream (\fBACE_InputCDR\fR) and RPC XDR are recognized by the
-compiler and the necessary \fB#include\fR directives are automatically
-generated\. For custom stream types use the \fB--hxx-prologue*\fR options to
-provide the necessary declarations\.
-.IP "\fB--generate-forward\fR"
-Generate a separate header file with forward declarations for the types being
-generated\.
-.IP "\fB--suppress-parsing\fR"
-Suppress the generation of the parsing functions and constructors\. Use this
-option to reduce the generated code size when parsing from XML is not needed\.
-.IP "\fB--generate-element-type\fR"
-Generate types instead of parsing and serialization functions for root
-elements\. This is primarily useful to distinguish object models with the same
-root type but with different root elements\.
-.IP "\fB--generate-element-map\fR"
-Generate a root element map that allows uniform parsing and serialization of
-multiple root elements\. This option is only valid together with
-\fB--generate-element-type\fR\.
-.IP "\fB--generate-intellisense\fR"
-Generate workarounds for IntelliSense bugs in Visual Studio 2005 (8\.0)\. When
-this option is used, the resulting code is slightly more verbose\.
-IntelliSense in Visual Studio 2008 (9\.0) and later does not require these
-workarounds\. Support for IntelliSense in Visual Studio 2003 (7\.1) is
-improved with this option but is still incomplete\.
-.IP "\fB--omit-default-attributes\fR"
-Omit attributes with default and fixed values from serialized XML documents\.
-.IP "\fB--type-naming\fR \fIstyle\fR"
-Specify the type naming convention that should be used in the generated code\.
-Valid styles are \fBknr\fR (default), \fBucc\fR, and \fBjava\fR\. See the
-NAMING CONVENTION section below for more information\.
-.IP "\fB--function-naming\fR \fIstyle\fR"
-Specify the function naming convention that should be used in the generated
-code\. Valid styles are \fBknr\fR (default), \fBlcc\fR, \fBucc\fR, and
-\fBjava\fR\. See the NAMING CONVENTION section below for more information\.
-.IP "\fB--type-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema type names to C++ type names\. See the NAMING CONVENTION section below
-for more information\.
-.IP "\fB--accessor-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes to C++ accessor function names\. See the
-NAMING CONVENTION section below for more information\.
-.IP "\fB--one-accessor-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes with cardinality one to C++ accessor
-function names\. See the NAMING CONVENTION section below for more
-information\.
-.IP "\fB--opt-accessor-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes with cardinality optional to C++ accessor
-function names\. See the NAMING CONVENTION section below for more
-information\.
-.IP "\fB--seq-accessor-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes with cardinality sequence to C++ accessor
-function names\. See the NAMING CONVENTION section below for more
-information\.
-.IP "\fB--modifier-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes to C++ modifier function names\. See the
-NAMING CONVENTION section below for more information\.
-.IP "\fB--one-modifier-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes with cardinality one to C++ modifier
-function names\. See the NAMING CONVENTION section below for more
-information\.
-.IP "\fB--opt-modifier-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes with cardinality optional to C++ modifier
-function names\. See the NAMING CONVENTION section below for more
-information\.
-.IP "\fB--seq-modifier-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema names of elements/attributes with cardinality sequence to C++ modifier
-function names\. See the NAMING CONVENTION section below for more
-information\.
-.IP "\fB--parser-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema element names to C++ parsing function names\. See the NAMING CONVENTION
-section below for more information\.
-.IP "\fB--serializer-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema element names to C++ serialization function names\. See the NAMING
-CONVENTION section below for more information\.
-.IP "\fB--const-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema-derived names to C++ constant names\. See the NAMING CONVENTION section
-below for more information\.
-.IP "\fB--enumerator-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema enumeration values to C++ enumerator names\. See the NAMING CONVENTION
-section below for more information\.
-.IP "\fB--element-type-regex\fR \fIregex\fR"
-Add \fIregex\fR to the list of regular expressions used to translate XML
-Schema element names to C++ element type names\. See the NAMING CONVENTION
-section below for more information\.
-.IP "\fB--name-regex-trace\fR"
-Trace the process of applying regular expressions specified with the name
-transformation options\. Use this option to find out why your regular
-expressions don't do what you expected them to do\.
-.IP "\fB--root-element-first\fR"
-Treat only the first global element as a document root\. By default all global
-elements are considered document roots\.
-.IP "\fB--root-element-last\fR"
-Treat only the last global element as a document root\. By default all global
-elements are considered document roots\.
-.IP "\fB--root-element-all\fR"
-Treat all global elements as document roots\. This is the default behavior\.
-By explicitly specifying this option you can suppress the warning that is
-issued if more than one global element is defined\.
-.IP "\fB--root-element-none\fR"
-Do not treat any global elements as document roots\. By default all global
-elements are considered document roots\.
-.IP "\fB--root-element\fR \fIelement\fR"
-Treat only \fIelement\fR as a document root\. Repeat this option to specify
-more than one root element\.
-.IP "\fB--custom-type\fR \fImap\fR"
-Use a custom C++ type instead of the generated class\. The \fImap\fR argument
-is in the form \fIname\fR[\fB=\fR\fItype\fR[\fB/\fR\fIbase\fR]]\fR, where
-\fIname\fR is a type name as defined in XML Schema and \fItype\fR is a C++
-type name that should be used instead\. If \fItype\fR is not present or empty
-then the custom type is assumed to have the same name and be defined in the
-same namespace as the generated class would have\. If \fIbase\fR is specified
-then the generated class is still generated but with that name\.
-.IP "\fB--custom-type-regex\fR \fIregex\fR"
-Use custom C++ types instead of the generated classes\. The \fIregex\fR
-argument is in the form
-\fB/\fR\fIname-pat\fR\fB/\fR[\fItype-sub\fR\fB/\fR[\fIbase-sub\fR\fB/\fR]]\fR,
-where \fIname-pat\fR is a regex pattern that will be matched against type
-names as defined in XML Schema and \fItype-sub\fR is a C++ type name
-substitution that should be used instead\. If \fItype-sub\fR is not present or
-its substitution results in an empty string then the custom type is assumed to
-have the same name and be defined in the same namespace as the generated class
-would have\. If \fIbase-sub\fR is present and its substitution results in a
-non-empty string then the generated class is still generated but with the
-result of this substitution as its name\. The pattern and substitutions are in
-the Perl regular expression format\. See also the REGEX AND SHELL QUOTING
-section below\.
-.IP "\fB--parts\fR \fInum\fR"
-Split generated source code into \fInum\fR parts\. This is useful when
-translating large, monolithic schemas and a C++ compiler is not able to
-compile the resulting source code at once (usually due to insufficient
-memory)\.
-.IP "\fB--parts-suffix\fR \fIsuffix\fR"
-Use \fIsuffix\fR instead of the default '\fB-\fR' to separate the file name
-from the part number\.
-\"
-\" C++/Parser
-\"
-.SS cxx-parser command options
-.IP "\fB--type-map\fR \fImapfile\fR"
-Read XML Schema to C++ type mapping information from \fImapfile\fR\. 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 \fBvoid\fR\. See the TYPE MAP section below for more
-information\.
-.IP "\fB--xml-parser\fR \fIparser\fR"
-Use \fIparser\fR as the underlying XML parser\. Valid values are \fBxerces\fR
-for Xerces-C++ (default) and \fBexpat\fR for Expat\.
-.IP "\fB--generate-validation\fR"
-Generate validation code\. The validation code ("perfect parser") ensures that
-instance documents conform to the schema\. Validation code is generated by
-default when the selected underlying XML parser is non-validating
-(\fBexpat\fR)\.
-.IP "\fB--suppress-validation\fR"
-Suppress the generation of validation code\. Validation is suppressed by
-default when the selected underlying XML parser is validating (\fBxerces\fR)\.
-.IP "\fB--generate-polymorphic\fR"
-Generate polymorphism-aware code\. Specify this option if you use substitution
-groups or \fBxsi:type\fR\.
-.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 \fBname\.xsd\fR this option triggers the
-generation of two additional C++ files in the form: \fBname-pimpl\.hxx\fR
-(parser implementation header file) and \fBname-pimpl\.cxx\fR (parser
-implementation source file)\.
-.IP "\fB--generate-print-impl\fR"
-Generate a sample parser implementation that prints the XML data to
-STDOUT\fR\. For an input file in the form \fBname\.xsd\fR this option triggers
-the generation of two additional C++ files in the form: \fBname-pimpl\.hxx\fR
-(parser implementation header file) and \fBname-pimpl\.cxx\fR (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 \fBname\.xsd\fR this option triggers the generation of an
-additional C++ file in the form \fBname-driver\.cxx\fR\.
-.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\fR \fIelement\fR"
-Indicate that \fIelement\fR is the document root\. This information is used to
-generate the test driver for the sample implementation\.
-.IP "\fB--skel-type-suffix\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB_pskel\fR to construct
-the names of the generated parser skeletons\.
-.IP "\fB--skel-file-suffix\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB-pskel\fR to construct
-the names of the generated parser skeleton files\.
-.IP "\fB--impl-type-suffix\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB_pimpl\fR to construct
-the names of the parser implementations for the built-in XML Schema types as
-well as sample parser implementations\.
-.IP "\fB--impl-file-suffix\fR \fIsuffix\fR"
-Use the provided \fIsuffix\fR instead of the default \fB-pimpl\fR to construct
-the names of the generated sample parser implementation files\.
-\"
-\" NAMING CONVENTION
-\"
-
-.SH NAMING CONVENTION
-The compiler can be instructed to use a particular naming convention in
-the generated code. A number of widely-used conventions can be selected
-using the
-.B --type-naming
-and
-.B --function-naming
-options. A custom naming convention can be achieved using the
-.BR --type-regex ,
-.BR --accessor-regex ,
-.BR --one-accessor-regex ,
-.BR --opt-accessor-regex ,
-.BR --seq-accessor-regex ,
-.BR --modifier-regex ,
-.BR --one-modifier-regex ,
-.BR --opt-modifier-regex ,
-.BR --seq-modifier-regex ,
-.BR --parser-regex ,
-.BR --serializer-regex ,
-.BR --const-regex ,
-.BR --enumerator-regex ,
-and
-.B --element-type-regex
-options.
-
-The
-.B --type-naming
-option specifies the convention that should be used for naming C++ types.
-Possible values for this option are
-.B knr
-(default),
-.BR ucc ,
-and
-.BR java .
-The
-.B knr
-value (stands for K&R) signifies the standard, lower-case naming convention
-with the underscore used as a word delimiter, for example: foo, foo_bar.
-The
-.B ucc
-(stands for upper-camel-case) and
-.B java
-values a synonyms for the same naming convention where the first letter
-of each word in the name is capitalized, for example: Foo, FooBar.
-
-Similarly, the
-.B --function-naming
-option specifies the convention that should be used for naming C++ functions.
-Possible values for this option are
-.B knr
-(default),
-.BR lcc ,
-and
-.BR java .
-The
-.B knr
-value (stands for K&R) signifies the standard, lower-case naming convention
-with the underscore used as a word delimiter, for example: foo(), foo_bar().
-The
-.B lcc
-value (stands for lower-camel-case) signifies a naming convention where the
-first letter of each word except the first is capitalized, for example: foo(),
-fooBar(). The
-.B ucc
-value (stands for upper-camel-case) signifies a naming convention where the
-first letter of each word is capitalized, for example: Foo(), FooBar(). The
-.B java
-naming convention is similar to the lower-camel-case one except that accessor
-functions are prefixed with get, modifier functions are prefixed with set,
-parsing functions are prefixed with parse, and serialization functions are
-prefixed with serialize, for example: getFoo(), setFooBar(), parseRoot(),
-serializeRoot().
-
-Note that the naming conventions specified with the
-.B --type-naming
-and
-.B --function-naming
-options perform only limited transformations on the
-names that come from the schema in the form of type, attribute, and element
-names. In other words, to get consistent results, your schemas should follow
-a similar naming convention as the one you would like to have in the generated
-code. Alternatively, you can use the
-.B --*-regex
-options (discussed below) to perform further transformations on the names
-that come from the schema.
-
-The
-.BR --type-regex ,
-.BR --accessor-regex ,
-.BR --one-accessor-regex ,
-.BR --opt-accessor-regex ,
-.BR --seq-accessor-regex ,
-.BR --modifier-regex ,
-.BR --one-modifier-regex ,
-.BR --opt-modifier-regex ,
-.BR --seq-modifier-regex ,
-.BR --parser-regex ,
-.BR --serializer-regex ,
-.BR --const-regex ,
-.BR --enumerator-regex ,
-and
-.B --element-type-regex
-options allow you to specify extra regular expressions for each name
-category in addition to the predefined set that is added depending on
-the
-.B --type-naming
-and
-.B --function-naming
-options. Expressions that are provided with the
-.B --*-regex
-options are evaluated prior to any predefined expressions. This allows
-you to selectively override some or all of the predefined transformations.
-When debugging your own expressions, it is often useful to see which
-expressions match which names. The
-.B --name-regex-trace
-option allows you to trace the process of applying
-regular expressions to names.
-
-The value for the
-.B --*-regex
-options should be 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 for each category are pushed
-into a category-specific stack with the last specified expression
-considered first. The first match that succeeds is used. For the
-.B --one-accessor-regex
-(accessors with cardinality one),
-.B --opt-accessor-regex
-(accessors with cardinality optional), and
-.B --seq-accessor-regex
-(accessors with cardinality sequence) categories the
-.B --accessor-regex
-expressions are used as a fallback. For the
-.BR --one-modifier-regex ,
-.BR --opt-modifier-regex ,
-and
-.B --seq-modifier-regex
-categories the
-.B --modifier-regex
-expressions are used as a fallback. For the
-.B --element-type-regex
-category the
-.B --type-regex
-expressions are used as a fallback.
-
-The type name expressions
-.RB ( --type-regex )
-are evaluated on the name string that has the following format:
-
-[\fInamespace \fR]\fIname\fR[\fB,\fIname\fR][\fB,\fIname\fR][\fB,\fIname\fR]
-
-The element type name expressions
-.RB ( --element-type-regex ),
-effective only when the
-.B --generate-element-type
-option is specified, are evaluated on the name string that has the following
-format:
-
-.I namespace name
-
-In the type name format the
-.I namespace
-part followed by a space is only present for global type names. For global
-types and elements defined in schemas without a target namespace, the
-.I namespace
-part is empty but the space is still present. In the type name format after
-the initial
-.I name
-component, up to three additional
-.I name
-components can be present, separated by commas. For example:
-
-.B http://example.com/hello type
-
-.B foo
-
-.B foo,iterator
-
-.B foo,const,iterator
-
-The following set of predefined regular expressions is used to transform
-type names when the upper-camel-case naming convention is selected:
-
-.B /(?:[^ ]* )?([^,]+)/\\\\u$1/
-
-.B /(?:[^ ]* )?([^,]+),([^,]+)/\\\\u$1\\\\u$2/
-
-.B /(?:[^ ]* )?([^,]+),([^,]+),([^,]+)/\\\\u$1\\\\u$2\\\\u$3/
-
-.B /(?:[^ ]* )?([^,]+),([^,]+),([^,]+),([^,]+)/\\\\u$1\\\\u$2\\\\u$3\\\\u$4/
-
-The accessor and modifier expressions
-.RB ( --*accessor-regex
-and
-.BR --*modifier-regex )
-are evaluated on the name string that has the following format:
-
-\fIname\fR[\fB,\fIname\fR][\fB,\fIname\fR]
-
-After the initial
-.I name
-component, up to two additional
-.I name
-components can be present, separated by commas. For example:
-
-.B foo
-
-.B dom,document
-
-.B foo,default,value
-
-The following set of predefined regular expressions is used to transform
-accessor names when the
-.B java
-naming convention is selected:
-
-.B /([^,]+)/get\\\\u$1/
-
-.B /([^,]+),([^,]+)/get\\\\u$1\\\\u$2/
-
-.B /([^,]+),([^,]+),([^,]+)/get\\\\u$1\\\\u$2\\\\u$3/
-
-For the parser, serializer, and enumerator categories, the corresponding
-regular expressions are evaluated on local names of elements and on
-enumeration values, respectively. For example, the following predefined
-regular expression is used to transform parsing function names when the
-.B java
-naming convention is selected:
-
-.B /(.+)/parse\\\\u$1/
-
-The const category is used to create C++ constant names for the
-element/wildcard/text content ids in ordered types.
-
-See also the REGEX AND SHELL QUOTING section below.
-
-\"
-\" TYPE MAP
-\"
-.SH TYPE MAP
-Type map files are used in C++/Parser to define a mapping between XML
-Schema and C++ types. 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.
-
-The compiler has a set of predefined mapping rules that map built-in
-XML Schema types to suitable C++ types (discussed below) 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_*
-functions. Optional
-.I cxx-arg-type
-is an argument type for callback functions corresponding to elements and
-attributes of this type. 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 that can be
-presented as the following map files. The string-based XML Schema
-built-in types are mapped to either
-.B std::string
-or
-.B std::wstring
-depending on the character type selected with the
-.B --char-type
-option
-.RB ( char
-by default). The binary XML Schema types are mapped to either
-.B std::unique_ptr<xml_schema::buffer>
-or
-.B std::auto_ptr<xml_schema::buffer>
-depending on the C++ standard selected with the
-.B --std
-option
-.RB ( c++11
-by default).
-
-.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" "long long";
-.br
-
- negativeInteger "long long" "long long";
-.br
- nonPositiveInteger "long long" "long long";
-.br
-
- positiveInteger "unsigned long long" "unsigned long long";
-.br
- nonNegativeInteger "unsigned long long" "unsigned long long";
-.br
-
- float float float;
-.br
- double double double;
-.br
- decimal double double;
-.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
-
- NMTOKENS xml_schema::string_sequence;
-.br
- IDREFS xml_schema::string_sequence;
-.br
-
- QName xml_schema::qname;
-.br
-
- base64Binary std::[unique|auto]_ptr<xml_schema::buffer>
-.br
- std::[unique|auto]_ptr<xml_schema::buffer>;
-.br
- hexBinary std::[unique|auto]_ptr<xml_schema::buffer>
-.br
- std::[unique|auto]_ptr<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
-
-
-The last predefined rule 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.
-
-.\"
-.\" 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 xsd
-will issue diagnostic messages to
-.B STDERR
-and exit with non-zero exit code.
-.SH BUGS
-Send bug reports to the xsd-users@codesynthesis.com mailing list.
-.SH COPYRIGHT
-Copyright (c) 2005-2023 Code Synthesis.
-
-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
-https://www.codesynthesis.com/licenses/fdl-1.2.txt