home | help
XSDCXX(1)		     General Commands Manual		       XSDCXX(1)

NAME
     xsd - W3C XML Schema to C++ Compiler

SYNOPSIS
     xsdcxx command [ options ] file [ file ...]
     xsdcxx help [ command ]
     xsdcxx version

DESCRIPTION
     xsdcxx generates vocabulary-specific, statically-typed C++ mapping from W3C
     XML Schema definitions. Particular mapping to produce is selected by a com-
     mand.   Each  mapping  has a number of mapping-specific options that should
     appear, if any, after the command.  Input files should be	W3C  XML  Schema
     definitions.  The	exact set of the generated files depends on the selected
     mapping and options.

COMMANDS
     cxx-tree
	    Generate the C++/Tree mapping. For	each  input  file  in  the  form
	    name.xsd  the  following  C++  files are generated: name.hxx (header
	    file), name.ixx (inline file, generated only if  the  --generate-in-
	    line  option is specified), name.cxx (source file), and name-fwd.hxx
	    (forward declaration file, generated only if the  --generate-forward
	    option is specified).

     cxx-parser
	    Generate  the  C++/Parser  mapping.  For each input file in the form
	    name.xsd the  following  C++  files  are  generated:  name-pskel.hxx
	    (parser  skeleton  header file), name-pskel.ixx (parser skeleton in-
	    line file, generated only if the --generate-inline option is  speci-
	    fied),  and  name-pskel.cxx  (parser  skeleton  source file). If the
	    --generate-noop-impl or --generate-print-impl option  is  specified,
	    the  following additional sample implementation files are generated:
	    name-pimpl.hxx  (parser  implementation  header  file)   and   name-
	    pimpl.cxx  (parser	implementation	source file). If the --generate-
	    test-driver option is specified, the additional name-driver.cxx test
	    driver file is generated.

     help   Print usage information and exit. Use

	       xsdcxx help command

	    for command-specific help.

     versionPrint version and exit.

OPTIONS
     Command-specific options, if any, should  appear  after  the  corresponding
     command.

   common options
     --std version
	    Specify  the C++ standard that the generated code should conform to.
	    Valid values are c++98, c++11 (default), c++14,  c++17,  c++20,  and
	    c++23.

	    The  C++ standard affects various aspects of the generated code that
	    are discussed in more detail in various mapping-specific  documenta-
	    tion.  Overall, when C++11 is selected, the generated code relies on
	    the move semantics and uses std::unique_ptr  instead  of  deprecated
	    std::auto_ptr.   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 re-
	    quired.  The XSD compiler will automatically add the necessary macro
	    defines to the generated header files that will switch  the  header-
	    only XSD runtime library (libxsd) 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 XSD_CXX11 macro for your entire project.

     --char-type type
	    Generate  code  using the provided character type instead of the de-
	    fault char. Valid values are char and wchar_t.

     --char-encoding enc
	    Specify the character encoding that should be used in the  generated
	    code.   Valid values for the char character type are utf8 (default),
	    iso8859-1, lcp (Xerces-C++ local code page), and custom. If you pass
	    custom as the value then you will need to include the transcoder im-
	    plementation header for your encoding at the beginning of the gener-
	    ated header files (see the --hxx-prologue option).

	    For the wchar_t character type the only valid value is auto and  the
	    encoding  is automatically selected between UTF-16 and UTF-32/UCS-4,
	    depending on the wchar_t type size.

     --output-dir dir
	    Write generated files to dir instead of the current directory.

     --generate-inline
	    Generate simple functions inline. This option triggers  creation  of
	    the inline file.

     --generate-xml-schema
	    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  --ex-
	    tern-xml-schema  option  to include this file in the generated files
	    for other schemas.

     --extern-xml-schema file
	    Include a header file derived from file instead  of  generating  the
	    XML  Schema namespace mapping inline. The provided file need not ex-
	    ist and is only used to derive the name of the included header file.
	    Use the --generate-xml-schema option to generate this header file.

     --namespace-map xns=cns
	    Map XML Schema namespace xns to C++ namespace cns. Repeat  this  op-
	    tion  to specify mapping for more than one XML Schema namespace. For
	    example, the following option:

	    --namespace-map http://example.com/foo/bar=foo::bar

	    Will map the http://example.com/foo/bar XML Schema namespace to  the
	    foo::bar C++ namespace.

     --namespace-regex regex
	    Add  regex	to the list of regular expressions used to translate XML
	    Schema namespace names to C++ namespace names. regex is a  Perl-like
	    regular  expression in the form /pattern/replacement/. Any character
	    can be used as a delimiter instead of '/'. Escaping of the delimiter
	    character in pattern or 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

	    filename namespace

	    For  example, if you have file hello.xsd with namespace http://exam-
	    ple.com/hello and you run xsd on this file, then the string in ques-
	    tion will be:

	    hello.xsd. http://example.com/hello

	    For the built-in XML Schema namespace the string is:

	    XMLSchema.xsd http://www.w3.org/2001/XMLSchema

	    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 ex-
	    pression is considered.

	    2. All '/' are replaced with '::'.

	    3.	The  result  is  verified  to  be  a valid C++ scope name (e.g.,
	    foo::bar). If this test succeeds, the result is used as a C++  name-
	    space name.

	    As	an example, the following expression maps XML  Schema namespaces
	    in the form http://example.com/foo/bar to C++ namespaces in the form
	    foo::bar:

	    %.* http://example.com/(.+)%$1%

	    See also the REGEX AND SHELL QUOTING section below.

     --namespace-regex-trace
	    Trace the process of applying regular expressions specified with the
	    --namespace-regex option. Use this option to find out why your regu-
	    lar expressions don't do what you expected them to do.

     --reserved-name n[=r]
	    Add name n to the list of names that should not be used  as  identi-
	    fiers.  The name can optionally be followed by = and the replacement
	    name r that should be used instead. All the C++ keywords are already
	    in this list.

     --include-with-brackets
	    Use angle brackets (<>) instead of quotes ("") in generated #include
	    directives.

     --include-prefix prefix
	    Add prefix to generated #include directive paths.

	    For example, if you had the following import element in your schema

	    <import namespace="..." schemaLocation="base.xsd"/>

	    and  compiled this fragment with --include-prefix schemas/, then the
	    include directive in the generated code would be:

	    #include "schemas/base.hxx"

     --include-regex regex
	    Add regex to the list of regular expressions used to transform  #in-
	    clude  directive  paths.  regex is a Perl-like regular expression in
	    the form /pattern/replacement/. Any character can be used as  a  de-
	    limiter  instead of '/'. Escaping of the delimiter character in pat-
	    tern or 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
	    schemas/foo/bar to paths in the form generated/foo/bar:

	    %schemas/(.+)%generated/$1%

	    See also the REGEX AND SHELL QUOTING section below.

     --include-regex-trace
	    Trace the process of applying regular expressions specified with the
	    --include-regex option. Use this option to find out why your regular
	    expressions don't do what you expected them to do.

     --guard-prefix prefix
	    Add  prefix  to  generated	header	inclusion  guards. The prefix is
	    transformed to upper case and characters that are illegal in a  pre-
	    processor  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.

     --hxx-suffix suffix
	    Use the provided suffix instead of the default .hxx to construct the
	    name of the header file. Note that this suffix is also used to  con-
	    struct  names  of  header  files  corresponding to included/imported
	    schemas.

     --ixx-suffix suffix
	    Use the provided suffix instead of the default .ixx to construct the
	    name of the inline file.

     --cxx-suffix suffix
	    Use the provided suffix instead of the default .cxx to construct the
	    name of the source file.

     --fwd-suffix suffix
	    Use the provided suffix instead of the default -fwd.hxx to construct
	    the name of the forward declaration file.

     --hxx-regex regex
	    Use the provided expression to construct  the  name  of  the  header
	    file.   regex  is  a  Perl-like regular expression in the form /pat-
	    tern/replacement/. Note that this expression is also  used	to  con-
	    struct  names  of  header  files  corresponding to included/imported
	    schemas. See also the REGEX AND SHELL QUOTING section below.

     --ixx-regex regex
	    Use the provided expression to construct  the  name  of  the  inline
	    file.   regex  is  a  Perl-like regular expression in the form /pat-
	    tern/replacement/. See also the REGEX AND SHELL QUOTING section  be-
	    low.

     --cxx-regex regex
	    Use  the  provided	expression  to	construct the name of the source
	    file.  regex is a Perl-like regular expression  in	the  form  /pat-
	    tern/replacement/.	See also the REGEX AND SHELL QUOTING section be-
	    low.

     --fwd-regex regex
	    Use the provided expression to construct the name of the forward de-
	    claration file. regex is a Perl-like regular expression in the  form
	    /pattern/replacement/.  See also the REGEX AND SHELL QUOTING section
	    below.

     --hxx-prologue text
	    Insert text at the beginning of the header file.

     --ixx-prologue text
	    Insert text at the beginning of the inline file.

     --cxx-prologue text
	    Insert text at the beginning of the source file.

     --fwd-prologue text
	    Insert text at the beginning of the forward declaration file.

     --prologue text
	    Insert text at the beginning of each generated file for which  there
	    is no file-specific prologue.

     --hxx-epilogue text
	    Insert text at the end of the header file.

     --ixx-epilogue text
	    Insert text at the end of the inline file.

     --cxx-epilogue text
	    Insert text at the end of the source file.

     --fwd-epilogue text
	    Insert text at the end of the forward declaration file.

     --epilogue text
	    Insert  text at the end of each generated file for which there is no
	    file-specific epilogue.

     --hxx-prologue-file file
	    Insert the content of the file at the beginning of the header file.

     --ixx-prologue-file file
	    Insert the content of the file at the beginning of the inline file.

     --cxx-prologue-file file
	    Insert the content of the file at the beginning of the source file.

     --fwd-prologue-file file
	    Insert the content of the file at the beginning of the forward  dec-
	    laration file.

     --prologue-file file
	    Insert  the  content  of the file at the beginning of each generated
	    file for which there is no file-specific prologue file.

     --hxx-epilogue-file file
	    Insert the content of the file at the end of the header file.

     --ixx-epilogue-file file
	    Insert the content of the file at the end of the inline file.

     --cxx-epilogue-file file
	    Insert the content of the file at the end of the source file.

     --fwd-epilogue-file file
	    Insert the content of the file at the end of the forward declaration
	    file.

     --epilogue-file file
	    Insert the content of the file at the end of each generated file for
	    which there is no file-specific epilogue file.

     --export-symbol symbol
	    Insert symbol in places where DLL export/import  control  statements
	    (__declspec(dllexport/dllimport)) are necessary.

     --export-xml-schema
	    Export/import  types  in  the  XML Schema namespace using the export
	    symbol provided with the --export-symbol option.  The  XSD_NO_EXPORT
	    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.

     --export-maps
	    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 --import-maps. This option is only valid to-
	    gether with --generate-polymorphic. The XSD_NO_EXPORT 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.

     --import-maps
	    Import  polymorphism  support maps to a Win32 DLL or executable into
	    which this generated code is linked. See  the  --export-maps  option
	    documentation  for details. This options is only valid together with
	    --generate-polymorphic. The XSD_NO_EXPORT 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.

     --generate-dep
	    Generate make dependency information. This option triggers the  cre-
	    ation  of  the  .d 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 nor-
	    mally  included into the main makefile to implement automatic depen-
	    dency tracking. See also the --dep-* options.

	    Note also that automatic dependency generation is not  supported  in
	    the file-per-type mode (--file-per-type). In this case, all the gen-
	    erated  files are produced with a single compiler invocation and de-
	    pend on all the schemas. As a result, it is easier to establish such
	    a dependency manually, perhaps with the help of the --file-list* op-
	    tions.

     --generate-dep-only
	    Generate make dependency information only.

     --dep-phony
	    Generate phony targets for included/imported schema  files,  causing
	    each  to depend on nothing. Such dummy rules work around make errors
	    caused by the removal of schema files without also updating the  de-
	    pendency file to match.

     --dep-target target
	    Change the target of the dependency rule. By default it contains all
	    the generated C++ files as well as the dependency file itself, with-
	    out  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.

     --dep-suffix suffix
	    Use  suffix  instead  of the default .d to construct the name of the
	    dependency file. See also --dep-file.

     --dep-file path
	    Use path as the generated dependency file path instead  of	deriving
	    it	from  the  input  file name. Write the dependency information to
	    stdout if path is -. See also --dep-regex.

     --dep-regex regex
	    Use the provided expression to construct the name of the  dependency
	    file.   regex  is  a  Perl-like regular expression in the form /pat-
	    tern/replacement/. See also the REGEX AND SHELL QUOTING section  be-
	    low.

     --disable-warning warn
	    Disable  printing  warning with id warn. If all is specified for the
	    warning id then all warnings are disabled.

     --options-file file
	    Read additional options from file. Each option should appearing on a
	    separate line optionally followed by  space  and  an  option  value.
	    Empty lines and lines starting with # are ignored. Option values can
	    be	enclosed in double (") or single (') 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 '"x"'. Non-leading and non-trail-
	    ing quotes are interpreted as being part of the option value.

	    The semantics of providing options in a file is equivalent	to  pro-
	    viding the same set of options in the same order on the command line
	    at	the  point  where  the --options-file 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.

     --show-sloc
	    Show the number of generated physical source lines of code (SLOC).

     --sloc-limit num
	    Check  that  the  number  of generated physical source lines of code
	    (SLOC) does not exceed num.

     --proprietary-license
	    Indicate that the generated code is licensed under a proprietary li-
	    cense instead of the GPL.

     --custom-literals file
	    Load custom XML string to C++ literal mappings from file. This mech-
	    anism 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 custom-
	    literals.xsd XML Schema file that can be found in the  documentation
	    directory.

     --preserve-anonymous
	    Preserve  anonymous  types. By default anonymous types are automati-
	    cally named with names derived from the  enclosing	elements/attrib-
	    utes.  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.

     --show-anonymous
	    Show  elements  and attributes that are of anonymous types. This op-
	    tion only makes sense together with the --preserve-anonymous option.

     --anonymous-regex regex
	    Add regex to the list of regular expressions used  to  derive  names
	    for anonymous types from the enclosing attributes/elements. regex is
	    a  Perl-like  regular  expression in the form /pattern/replacement/.
	    Any character can be used as a delimiter instead of '/'. Escaping of
	    the delimiter character in pattern or 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

	    filename namespace xpath

	    For instance:

	    hello.xsd http://example.com/hello element

	    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:

	    %.* .* (.+/)*(.+)%\u$2%

	    See also the REGEX AND SHELL QUOTING section below.

     --anonymous-regex-trace
	    Trace the process of applying regular expressions specified with the
	    --anonymous-regex option. Use this option to find out why your regu-
	    lar expressions don't do what you expected them to do.

     --location-map ol=nl
	    Map  the  original	schema	location ol that is specified in the XML
	    Schema include or import elements to new schema location nl.  Repeat
	    this  option  to map more than one schema location. For example, the
	    following option maps  the	http://example.com/foo.xsd  URL  to  the
	    foo.xsd local file.

	    --location-map http://example.com/foo.xsd=foo.xsd

     --location-regex regex
	    Add  regex to the list of regular expressions used to map schema lo-
	    cations that are specified in the XML Schema include or import  ele-
	    ments.   regex  is	a Perl-like regular expression in the form /pat-
	    tern/replacement/. Any character can be used as a delimiter  instead
	    of	'/'.  Escaping of the delimiter character in pattern or replace-
	    ment 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
	    http://example.com/foo/bar.xsd to local files in the form bar.xsd:

	    %http://.+/(.+)%$1%

	    See also the REGEX AND SHELL QUOTING section below.

     --location-regex-trace
	    Trace the process of applying regular expressions specified with the
	    --location-regex option. Use this option to find out why your  regu-
	    lar expressions don't do what you expected them to do.

     --file-per-type
	    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 im-
	    ported schemas. This compilation mode is primarily useful when  some
	    of	your schemas cannot be compiled separately or have cyclic depen-
	    dencies which involve type inheritance.  Other  options  related  to
	    this  mode	are: --type-file-regex, --schema-file-regex, --fat-type-
	    file, and --file-list.

     --type-file-regex regex
	    Add regex to the list of regular expressions used to translate  type
	    names  to  file  names when the --file-per-type option is specified.
	    regex is a Perl-like regular expression  in  the  form  /pattern/re-
	    placement/. Any character can be used as a delimiter instead of '/'.
	    Escaping of the delimiter character in pattern or 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

	    namespace type-name

	    For example, the following expression maps type foo that is  defined
	    in the http://example.com/bar namespace to file name bar-foo:

	    %http://example.com/(.+) (.+)%$1-$2%

	    See also the REGEX AND SHELL QUOTING section below.

     --type-file-regex-trace
	    Trace the process of applying regular expressions specified with the
	    --type-file-regex option. Use this option to find out why your regu-
	    lar expressions don't do what you expected them to do.

     --schema-file-regex regex
	    Add  regex	to  the  list  of  regular expressions used to translate
	    schema file names when  the  --file-per-type  option  is  specified.
	    regex  is  a  Perl-like  regular expression in the form /pattern/re-
	    placement/. Any character can be used as a delimiter instead of '/'.
	    Escaping of the delimiter character in pattern or 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  di-
	    rectory part, if any, is used to derive the #include directive paths
	    as	well  as  the  generated C++ file paths. This option, along with
	    --type-file-regex 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
	    foo/1.0.0/ subdirectory to the files in the foo/ subdirectory.  As a
	    result, the #include directive paths for such schemas will be in the
	    foo/schema.hxx form and the generated C++ files will be placed  into
	    the foo/ subdirectory:

	    %.*/foo/1.0.0/(.+)%foo/$1%

	    See also the REGEX AND SHELL QUOTING section below.

     --schema-file-regex-trace
	    Trace the process of applying regular expressions specified with the
	    --schema-file-regex  option.  Use  this  option to find out why your
	    regular expressions don't do what you expected them to do.

     --fat-type-file
	    Generate code corresponding to global elements into type  files  in-
	    stead  of  schema  files when the --type-file-regex option is speci-
	    fied. 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.

     --file-list file
	    Write a list of generated C++ files to file or to stdout if file  is
	    -.	This option is primarily useful in the file-per-type compilation
	    mode (--file-per-type) to create a list of generated C++ files,  for
	    example, as a makefile fragment.

     --file-list-only
	    Only write the list of C++ files that would be generated without ac-
	    tually  generating	them. This option only makes sense together with
	    --file-list.

     --file-list-prologue text
	    Insert text at the beginning of the file list. As a convenience, all
	    occurrences of the \n character sequence in text are  replaced  with
	    new  lines. This option can, for example, be used to assign the gen-
	    erated file list to a makefile variable.

     --file-list-epilogue text
	    Insert text at the end of the file list. As a convenience,	all  oc-
	    currences of the \n character sequence in text are replaced with new
	    lines.

     --file-list-delim text
	    Delimit file names written to the file list with text instead of new
	    lines.  As	a  convenience,  all occurrences of the \n character se-
	    quence in text are replaced with new lines.

   cxx-tree command options
     --generate-polymorphic
	    Generate polymorphism-aware code. Specify this  option  if	you  use
	    substitution  groups  or  xsi:type.  Use  the  --polymorphic-type or
	    --polymorphic-type-all option to specify which type hierarchies  are
	    polymorphic.

     --polymorphic-type type
	    Indicate  that  type  is a root of a polymorphic type hierarchy. The
	    compiler can often automatically determine which types are	polymor-
	    phic  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
	    type. The type argument is an XML Schema type name that can  be  op-
	    tionally qualified with a namespace in the namespace#name form.

     --polymorphic-type-all
	    Indicate that all types should be treated as polymorphic.

     --polymorphic-plate num
	    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.

     --ordered-type type
	    Indicate that element order in type 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 cap-
	    ture the order of elements and, for mixed content, of text.

	    The type argument is an XML Schema type name that can be  optionally
	    qualified  with  a	namespace in the namespace#name 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.

     --ordered-type-derived
	    Automatically  treat  types  derived  from ordered bases as also or-
	    dered. This is primarily useful if you would like to be able to  it-
	    erate over the complete content using the content order container.

     --ordered-type-mixed
	    Automatically treat complex types with mixed content as ordered.

     --ordered-type-all
	    Indicate that element order in all types is significant.

     --order-container type
	    Specify  a	custom class template that should be used as a container
	    for the content order  in  ordered	types  instead	of  the  default
	    std::vector.  See  --ordered-type  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 ele-
	    ment 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
	    --hxx-prologue* options.

     --generate-serialization
	    Generate  serialization  functions.  Serialization functions convert
	    the object model back to XML.

     --generate-ostream
	    Generate ostream  insertion  operators  (operator<<)  for  generated
	    types.   This allows one to easily print a fragment or the whole ob-
	    ject model for debugging or logging.

     --generate-doxygen
	    Generate documentation comments suitable for extraction by the Doxy-
	    gen documentation system. Documentation from annotations is added to
	    the comments if present in the schema.

     --generate-comparison
	    Generate comparison operators (operator== and operator!=)  for  com-
	    plex types. Comparison is performed member-wise.

     --generate-default-ctor
	    Generate default constructors even for types that have required mem-
	    bers.  Required members of an instance constructed using such a con-
	    structor are not initialized and accessing them results in undefined
	    behavior.

     --generate-from-base-ctor
	    Generate  constructors  that  expect an instance of a base type fol-
	    lowed by all required members.

     --suppress-assignment
	    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.

     --generate-detach
	    Generate detach functions for required elements and attributes.  De-
	    tach  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.

     --generate-wildcard
	    Generate accessors and modifiers as well as parsing  and  serializa-
	    tion  code for XML Schema wildcards (any and anyAttribute). XML con-
	    tent matched by wildcards is presented as DOM fragments.  Note  that
	    you  need to initialize the Xerces-C++ runtime if you are using this
	    option.

     --generate-any-type
	    Extract and store content of the XML Schema anyType type  as  a  DOM
	    fragment. Note that you need to initialize the Xerces-C++ runtime if
	    you are using this option.

     --generate-insertion os
	    Generate  data  representation stream insertion operators for the os
	    output stream type. Repeat this option  to	specify  more  than  one
	    stream  type.   The  ACE  CDR stream (ACE_OutputCDR) and RPC XDR are
	    recognized by the compiler and the necessary #include directives are
	    automatically generated. For custom stream types use the  --hxx-pro-
	    logue* options to provide the necessary declarations.

     --generate-extraction is
	    Generate  data representation stream extraction constructors for the
	    is input stream type. Repeat this option to specify  more  than  one
	    stream type.  The ACE CDR stream (ACE_InputCDR) and RPC XDR are rec-
	    ognized  by  the  compiler and the necessary #include directives are
	    automatically generated. For custom stream types use the  --hxx-pro-
	    logue* options to provide the necessary declarations.

     --generate-forward
	    Generate  a  separate  header file with forward declarations for the
	    types being generated.

     --suppress-parsing
	    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.

     --generate-element-type
	    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.

     --generate-element-map
	    Generate  a root element map that allows uniform parsing and serial-
	    ization of multiple root elements. This option  is	only  valid  to-
	    gether with --generate-element-type.

     --generate-intellisense
	    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  incom-
	    plete.

     --omit-default-attributes
	    Omit  attributes  with  default and fixed values from serialized XML
	    documents.

     --type-naming style
	    Specify the type naming convention that should be used in the gener-
	    ated code.	Valid styles are knr (default), ucc, and java.	See  the
	    NAMING CONVENTION section below for more information.

     --function-naming style
	    Specify  the  function  naming convention that should be used in the
	    generated code. Valid styles are knr (default), lcc, ucc, and  java.
	    See the NAMING CONVENTION section below for more information.

     --type-regex regex
	    Add  regex	to the list of regular expressions used to translate XML
	    Schema type names to C++ type names. See the NAMING CONVENTION  sec-
	    tion below for more information.

     --accessor-regex regex
	    Add  regex	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.

     --one-accessor-regex regex
	    Add  regex	to the list of regular expressions used to translate XML
	    Schema names of elements/attributes with cardinality one to C++  ac-
	    cessor  function  names. See the NAMING CONVENTION section below for
	    more information.

     --opt-accessor-regex regex
	    Add regex 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.

     --seq-accessor-regex regex
	    Add  regex	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.

     --modifier-regex regex
	    Add regex 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.

     --one-modifier-regex regex
	    Add regex to the list of regular expressions used to  translate  XML
	    Schema names of elements/attributes with cardinality one to C++ mod-
	    ifier  function  names.  See the NAMING CONVENTION section below for
	    more information.

     --opt-modifier-regex regex
	    Add regex 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.

     --seq-modifier-regex regex
	    Add  regex	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.

     --parser-regex regex
	    Add regex 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.

     --serializer-regex regex
	    Add regex 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.

     --const-regex regex
	    Add regex to the list of regular expressions used to  translate  XML
	    Schema-derived  names  to C++ constant names. See the NAMING CONVEN-
	    TION section below for more information.

     --enumerator-regex regex
	    Add regex 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.

     --element-type-regex regex
	    Add regex to the list of regular expressions used to  translate  XML
	    Schema  element names to C++ element type names. See the NAMING CON-
	    VENTION section below for more information.

     --name-regex-trace
	    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.

     --root-element-first
	    Treat  only  the first global element as a document root. By default
	    all global elements are considered document roots.

     --root-element-last
	    Treat only the last global element as a document  root.  By  default
	    all global elements are considered document roots.

     --root-element-all
	    Treat all global elements as document roots. This is the default be-
	    havior.   By  explicitly specifying this option you can suppress the
	    warning that is issued if more than one global element is defined.

     --root-element-none
	    Do not treat any global elements as document roots. By  default  all
	    global elements are considered document roots.

     --root-element element
	    Treat only element as a document root. Repeat this option to specify
	    more than one root element.

     --custom-type map
	    Use  a custom C++ type instead of the generated class. The map argu-
	    ment is in the form name[=type[/base]], where name is a type name as
	    defined in XML Schema and type is a C++ type  name	that  should  be
	    used  instead.  If type is not present or empty then the custom type
	    is assumed to have the same name and be defined in	the  same  name-
	    space  as  the generated class would have. If base is specified then
	    the generated class is still generated but with that name.

     --custom-type-regex regex
	    Use custom C++ types instead of the generated classes. The regex ar-
	    gument is in the form /name-pat/[type-sub/[base-sub/]], where  name-
	    pat  is  a	regex pattern that will be matched against type names as
	    defined in XML Schema and type-sub is a C++ type  name  substitution
	    that  should be used instead. If type-sub is not present or its sub-
	    stitution 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 base-sub is present and its substitu-
	    tion 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.

     --parts num
	    Split generated source code into num  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 insuf-
	    ficient memory).

     --parts-suffix suffix
	    Use suffix instead of the default '-' to separate the file name from
	    the part number.

   cxx-parser command options
     --type-map mapfile
	    Read XML Schema to C++ type mapping information from 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 void. See the TYPE MAP section  be-
	    low for more information.

     --xml-parser parser
	    Use parser as the underlying XML parser. Valid values are xerces for
	    Xerces-C++ (default) and expat for Expat.

     --generate-validation
	    Generate validation code. The validation code ("perfect parser") en-
	    sures that instance documents conform to the schema. Validation code
	    is	generated  by default when the selected underlying XML parser is
	    non-validating (expat).

     --suppress-validation
	    Suppress the generation of validation code. Validation is suppressed
	    by default when the selected underlying  XML  parser  is  validating
	    (xerces).

     --generate-polymorphic
	    Generate  polymorphism-aware  code.  Specify  this option if you use
	    substitution groups or xsi:type.

     --generate-noop-impl
	    Generate a sample parser implementation that does nothing (no opera-
	    tion). The sample implementation can then be filled with the  appli-
	    cation-specific  code.   For an input file in the form name.xsd this
	    option triggers the generation of two additional C++  files  in  the
	    form:  name-pimpl.hxx  (parser implementation header file) and name-
	    pimpl.cxx (parser implementation source file).

     --generate-print-impl
	    Generate a sample parser implementation that prints the XML data  to
	    STDOUT.  For an input file in the form name.xsd this option triggers
	    the generation of two  additional  C++  files  in  the  form:  name-
	    pimpl.hxx  (parser	implementation	header	file) and name-pimpl.cxx
	    (parser implementation source file).

     --generate-test-driver
	    Generate a test driver for the sample parser implementation. For  an
	    input  file in the form name.xsd this option triggers the generation
	    of an additional C++ file in the form name-driver.cxx.

     --force-overwrite
	    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.

     --root-element-first
	    Indicate that the first global element is the  document  root.  This
	    information  is  used to generate the test driver for the sample im-
	    plementation.

     --root-element-last
	    Indicate that the last global element is the document root. This in-
	    formation is used to generate the test driver for the sample  imple-
	    mentation.

     --root-element element
	    Indicate that element is the document root. This information is used
	    to generate the test driver for the sample implementation.

     --skel-type-suffix suffix
	    Use  the  provided suffix instead of the default _pskel to construct
	    the names of the generated parser skeletons.

     --skel-file-suffix suffix
	    Use the provided suffix instead of the default -pskel  to  construct
	    the names of the generated parser skeleton files.

     --impl-type-suffix suffix
	    Use  the  provided suffix instead of the default _pimpl to construct
	    the names of the parser implementations for the built-in XML  Schema
	    types as well as sample parser implementations.

     --impl-file-suffix suffix
	    Use  the  provided suffix instead of the default -pimpl to construct
	    the names of the generated sample parser implementation files.

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 --type-naming and --function-naming options. A custom naming convention
     can  be  achieved using the --type-regex, --accessor-regex, --one-accessor-
     regex, --opt-accessor-regex, --seq-accessor-regex, --modifier-regex, --one-
     modifier-regex, --opt-modifier-regex, --seq-modifier-regex, --parser-regex,
     --serializer-regex, --const-regex, --enumerator-regex, and  --element-type-
     regex options.

     The  --type-naming  option specifies the convention that should be used for
     naming C++ types.	Possible values for this option are knr (default),  ucc,
     and  java.   The  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 ucc (stands for upper-camel-case) and java val-
     ues  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  --function-naming	option	specifies  the	convention  that
     should  be  used for naming C++ functions.  Possible values for this option
     are knr (default), lcc, and java.	The 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 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 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 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 seri-
     alization	functions  are	prefixed  with serialize, for example: getFoo(),
     setFooBar(), parseRoot(), serializeRoot().

     Note that the naming  conventions	specified  with  the  --type-naming  and
     --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  fol-
     low  a  similar  naming convention as the one you would like to have in the
     generated code. Alternatively, you can use the --*-regex options (discussed
     below) to perform further transformations on the names that come  from  the
     schema.

     The  --type-regex,  --accessor-regex, --one-accessor-regex, --opt-accessor-
     regex, --seq-accessor-regex, --modifier-regex, --one-modifier-regex, --opt-
     modifier-regex, --seq-modifier-regex,  --parser-regex,  --serializer-regex,
     --const-regex,  --enumerator-regex,  and --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  --type-naming  and
     --function-naming options. Expressions that are provided with the --*-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 ex-
     pressions match which names. The --name-regex-trace option  allows  you  to
     trace the process of applying regular expressions to names.

     The  value  for the --*-regex options should be a perl-like regular expres-
     sion in the form /pattern/replacement/.  Any character can be used as a de-
     limiter instead of /.  Escaping of the delimiter character  in  pattern  or
     replacement is not supported. All the regular expressions for each category
     are  pushed  into a category-specific stack with the last specified expres-
     sion considered first. The first match  that  succeeds  is  used.	For  the
     --one-accessor-regex (accessors with cardinality one), --opt-accessor-regex
     (accessors  with cardinality optional), and --seq-accessor-regex (accessors
     with cardinality sequence) categories the --accessor-regex expressions  are
     used as a fallback. For the --one-modifier-regex, --opt-modifier-regex, and
     --seq-modifier-regex  categories  the --modifier-regex expressions are used
     as a fallback. For the --element-type-regex category the  --type-regex  ex-
     pressions are used as a fallback.

     The  type	name expressions (--type-regex) are evaluated on the name string
     that has the following format:

     [namespace  ]name[,name][,name][,name]

     The element type name expressions	(--element-type-regex),  effective  only
     when  the --generate-element-type option is specified, are evaluated on the
     name string that has the following format:

     namespace name

     In the type name format the 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 namespace part  is  empty	but  the
     space is still present. In the type name format after the initial name com-
     ponent, up to three additional name components can be present, separated by
     commas. For example:

     http://example.com/hello type

     foo

     foo,iterator

     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:

     /(?:[^ ]* )?([^,]+)/\u$1/

     /(?:[^ ]* )?([^,]+),([^,]+)/\u$1\u$2/

     /(?:[^ ]* )?([^,]+),([^,]+),([^,]+)/\u$1\u$2\u$3/

     /(?:[^ ]* )?([^,]+),([^,]+),([^,]+),([^,]+)/\u$1\u$2\u$3\u$4/

     The accessor and modifier expressions (--*accessor-regex  and  --*modifier-
     regex) are evaluated on the name string that has the following format:

     name[,name][,name]

     After  the initial name component, up to two additional name components can
     be present, separated by commas. For example:

     foo

     dom,document

     foo,default,value

     The following set of predefined regular expressions is  used  to  transform
     accessor names when the java naming convention is selected:

     /([^,]+)/get\u$1/

     /([^,]+),([^,]+)/get\u$1\u$2/

     /([^,]+),([^,]+),([^,]+)/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 enumer-
     ation values, respectively. For example, the following  predefined  regular
     expression is used to transform parsing function names when the java naming
     convention is selected:

     /(.+)/parse\u$1/

     The  const  category  is  used  to  create  C++ constant names for the ele-
     ment/wildcard/text content ids in ordered types.

     See also the REGEX AND SHELL QUOTING section below.

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 post_* functions in parser skeletons corresponding  to  XML
     Schema  types as well as argument types for callbacks corresponding to ele-
     ments 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
     void.   By  providing  your own type maps you can override these predefined
     rules.  The format of the type map file is presented below:

	    namespace schema-namespace [ cxx-namespace ]
	    {
	      ( include file-name; )*
	      ([ type ] schema-type cxx-ret-type [ cxx-arg-type ]; )*
	    }

     Both schema-namespace and schema-type are regex  patterns	while  cxx-name-
     space,  cxx-ret-type, and cxx-arg-type are regex pattern substitutions. All
     names can be optionally enclosed in " ", for  example,  to  include  white-
     spaces.

     schema-namespace determines XML Schema namespace. Optional cxx-namespace is
     prefixed  to  every  C++ type name in this namespace declaration.	cxx-ret-
     type is a C++ type name that is used as a return type for the post_*  func-
     tions.  Optional  cxx-arg-type  is  an argument type for callback functions
     corresponding to elements and attributes of this type. If	cxx-arg-type  is
     not specified, it defaults to cxx-ret-type if cxx-ret-type ends with * or &
     (that  is,  it  is a pointer or a reference) and const cxx-ret-type& other-
     wise.  file-name is a file name either in the " " or  <  >  format  and  is
     added with the #include directive to the generated code.

     The  # character starts a comment that ends with a new line or end of file.
     To specify a name that contains # enclose it in " ". For example:

	    namespace http://www.example.com/xmlns/my my
	    {
	      include "my.hxx";

	      # Pass apples by value.
	      #
	      apple apple;

	      # Pass oranges as pointers.
	      #
	      orange orange_t*;
	    }

     In the example above, for	the  http://www.example.com/xmlns/my#orange  XML
     Schema type, the my::orange_t* C++ type will be used as both return and ar-
     gument 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:

	    include "my.hxx";
	    apple apple;

	    namespace http://www.example.com/xmlns/my
	    {
	      orange "const orange_t*";
	    }

     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 std::string or std::wstring  depending  on  the  character
     type selected with the --char-type option (char by default). The binary XML
     Schema  types  are  mapped to either std::unique_ptr<xml_schema::buffer> or
     std::auto_ptr<xml_schema::buffer> depending on the  C++  standard	selected
     with the --std option (c++11 by default).

	    namespace http://www.w3.org/2001/XMLSchema
	    {
	      boolean bool bool;

	      byte "signed char" "signed char";
	      unsignedByte "unsigned char" "unsigned char";

	      short short short;
	      unsignedShort "unsigned short" "unsigned short";

	      int int int;
	      unsignedInt "unsigned int" "unsigned int";

	      long "long long" "long long";
	      unsignedLong "unsigned long long" "unsigned long long";

	      integer "long long" "long long";

	      negativeInteger "long long" "long long";
	      nonPositiveInteger "long long" "long long";

	      positiveInteger "unsigned long long" "unsigned long long";
	      nonNegativeInteger "unsigned long long" "unsigned long long";

	      float float float;
	      double double double;
	      decimal double double;

	      string std::string;
	      normalizedString std::string;
	      token std::string;
	      Name std::string;
	      NMTOKEN std::string;
	      NCName std::string;
	      ID std::string;
	      IDREF std::string;
	      language std::string;
	      anyURI std::string;

	      NMTOKENS xml_schema::string_sequence;
	      IDREFS xml_schema::string_sequence;

	      QName xml_schema::qname;

	      base64Binary std::[unique|auto]_ptr<xml_schema::buffer>
			   std::[unique|auto]_ptr<xml_schema::buffer>;
	      hexBinary std::[unique|auto]_ptr<xml_schema::buffer>
			std::[unique|auto]_ptr<xml_schema::buffer>;

	      date xml_schema::date;
	      dateTime xml_schema::date_time;
	      duration xml_schema::duration;
	      gDay xml_schema::gday;
	      gMonth xml_schema::gmonth;
	      gMonthDay xml_schema::gmonth_day;
	      gYear xml_schema::gyear;
	      gYearMonth xml_schema::gyear_month;
	      time xml_schema::time;
	    }

     The last predefined rule maps anything that wasn't mapped by previous rules
     to void:

	    namespace .*
	    {
	      .* void void;
	    }

     When  you	provide  your own type maps with the --type-map option, they are
     evaluated first. This allows you to selectively override predefined rules.

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 exam-
     ple, 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  deal-
     ing  with	this on POSIX systems is to use ' ' instead. Unfortunately, Win-
     dows shell does not remove ' '  from arguments when they are passed to  ap-
     plications.  As a result you may have to use ' ' for POSIX and " " for Win-
     dows ($ is not treated as a special character on Windows).

     Alternatively, you can save regular expression options into a file, one op-
     tion per line, and use this file with the --options-file option. With  this
     approach you don't need to worry about shell quoting.

DIAGNOSTICS
     If the input file is not a valid W3C XML Schema definition, xsdcxx will is-
     sue diagnostic messages to STDERR and exit with non-zero exit code.

BUGS
     Send bug reports to the xsd-users@codesynthesis.com mailing list.

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 In-
     variant Sections, no Front-Cover Texts and no Back-Cover Texts. Copy of the
     license   can   be    obtained    from    https://www.codesynthesis.com/li-
     censes/fdl-1.2.txt

XSDCXX 4.2.0			  January 2023			       XSDCXX(1)

home | help