Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
HydraExpress Web Service Development Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

A.4 Complex Types

HydraExpress creates a C++ class for each complex type. The structure of the classes created follows a few simple rules.

The generated components represent each complex type as a class. The name of the class is the same as the name of the type, except that the first letter of the name is always uppercase. The class provides accessors for elements and attributes within the complex type.

The accessors take or return the type of the element or attribute. Simple type elements that occur only once follow the mapping in Section A.3, as do attributes, which must be simple types and can only occur once. Simple type elements that occur more than once are instances of std::vector instantiated on the C++ type of the element. If the element is itself a complex type, its type is another generated C++ class.

Usually, top-level elements of the XML Schema that define complex types are also represented as a class. These are convenience classes whose sole purpose is to allow the top-level element to be marshaled and unmarshaled more easily. HydraExpress supports an option to suppress these classes for XML Schemas that define a lot of them, in which case marshaling and unmarshaling is done directly through the corresponding type class. See , "Working Without Top-Level Element Classes," in the HydraExpress XML Binding Development Guide.

The code generated by HydraExpress provides a straightforward C++ interface for manipulating the data being exchanged by the service. See the HydraExpress XML Binding Development Guide for details on the interface.



Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved. All Rights Reserved. Rogue Wave is a registered trademark of Rogue Wave Software, Inc. in the United States and other countries. HydraExpress is a trademark of Rogue Wave Software, Inc. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.