// file : xsd/cxx/tree/options.cli // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file include ; // std::size_t include ; // NarrowString, NarrowStrings include ; namespace CXX { namespace Tree { class options: CXX::options { // Polymorphism. // bool --generate-polymorphic { "Generate polymorphism-aware code. Specify this option if you use substitution groups or \cb{xsi:type}. Use the \cb{--polymorphic-type} or \cb{--polymorphic-type-all} option to specify which type hierarchies are polymorphic." }; NarrowStrings --polymorphic-type { "", "Indicate that 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 . The argument is an XML Schema type name that can be optionally qualified with a namespace in the \c{\i{namespace}\b{#}\i{name}} form." }; bool --polymorphic-type-all { "Indicate that all types should be treated as polymorphic." }; unsigned long --polymorphic-plate = 0 { "", "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." }; // Features. // bool --generate-serialization { "Generate serialization functions. Serialization functions convert the object model back to XML." }; bool --generate-ostream { "Generate ostream insertion operators (\cb{operator<<}) for generated types. This allows one to easily print a fragment or the whole object model for debugging or logging." }; bool --generate-doxygen { "Generate documentation comments suitable for extraction by the Doxygen documentation system. Documentation from annotations is added to the comments if present in the schema." }; bool --generate-comparison { "Generate comparison operators (\cb{operator==} and \cb{operator!=}) for complex types. Comparison is performed member-wise." }; bool --generate-default-ctor { "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." }; bool --generate-from-base-ctor { "Generate constructors that expect an instance of a base type followed by all required members." }; bool --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." }; bool --generate-detach { "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." }; bool --generate-wildcard { "Generate accessors and modifiers as well as parsing and serialization code for XML Schema wildcards (\cb{any} and \cb{anyAttribute}). 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." }; NarrowStrings --generate-insertion { "", "Generate data representation stream insertion operators for the output stream type. Repeat this option to specify more than one stream type. The ACE CDR stream (\cb{ACE_OutputCDR}) and RPC XDR are recognized by the compiler and the necessary \cb{#include} directives are automatically generated. For custom stream types use the \cb{--hxx-prologue*} options to provide the necessary declarations." }; NarrowStrings --generate-extraction { "", "Generate data representation stream extraction constructors for the input stream type. Repeat this option to specify more than one stream type. The ACE CDR stream (\cb{ACE_InputCDR}) and RPC XDR are recognized by the compiler and the necessary \cb{#include} directives are automatically generated. For custom stream types use the \cb{--hxx-prologue*} options to provide the necessary declarations." }; bool --generate-forward { "Generate a separate header file with forward declarations for the types being generated." }; bool --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." }; bool --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." }; bool --generate-element-map { "Generate a root element map that allows uniform parsing and serialization of multiple root elements. This option is only valid together with \cb{--generate-element-type}." }; bool --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 incomplete." }; bool --omit-default-attributes { "Omit attributes with default and fixed values from serialized XML documents." }; // Naming. // NarrowString --type-naming = "knr" { "