The Generated Data Classes
To see the code generated for the
WeatherSummary.wsdl, ensure that your environment is set up as discussed in
Chapter 2, Setup in the
HydraExpress User Guide, open a command prompt, and navigate to the directory
<installdir>\examples\webservicesug\WeatherSummary.
The command:
prompt> rwsfgen example-project.xml
generates code into a code generation directory
WeatherSummaryExample. Because the HydraExpress project file
example-project.xml points to a WSDL file that contains a schema, the generated project structure will include data subdirectories as well as a relevant namespace directory, as illustrated in
Table 4.
In order to simplify this discussion, this table does not list the generated client and server classes, but only the datatype classes.
Table 4 – Relevant files generated for WeatherSummary.wsdl
Directory | Files | Description |
---|
WeatherSummaryExample/ | WeatherSummaryExample.xml | Project file defining all project elements. See The Generated Project Directory. |
app/ | makefile makefile_debug | Makefiles for app directory. Overwrite protected. |
/data | WeatherSummary_types_main.cpp WeatherSummary_types_main.vcproj | Sample application file.Overwrite protected. MSVC project file (Windows only) |
codegen/ | makefile makefile_debug | Makefiles for codegen directory. Overwrite protected. |
/data/ | makefile makefile_debug | Makefiles for data directory. Overwrite protected. |
/wsx | WeatherSummary.cpp WeatherSummaryMarshal.cpp | Source files for the datatype classes sorted into separate namespace directories |
docs/ | index.html | HTML documentation files |
include/ | | |
/WeatherSummaryExample | subdirectory projectname |
| WeatherSummary_typesConverter.h | Conversion utility class header file (to convert the simple types defined in the datamap to and from the underlying string class, string) |
wsx | WeatherSummary.h WeatherSummaryMarshal.h | Header files for the datatype classes |
The docs directory contains HTML documentation. Single-click access is provided through the index.html file in the docs directory.
The generator creates one data type class named WeatherSummary, based on the complexType’s name attribute. The source file for class WeatherSummary is placed into the codegen\data\wsx directory, where wsx is the namespace. The data type header file is placed into the include\WeatherSummary\wsx directory where WeatherSummary is the project name.
Class WeatherSummary provides accessors to work with the data, and also includes unmarshal() methods that populate an instance of the class from a serialized WeatherSummary type element, and marshal() methods for converting an instance of the class to a serialized format. These methods pass the marshaling and unmarshaling logic to the generated external marshaling class, WeatherSummaryMarshal. This class contains the logic to unmarshal and marshal the data and is called by WeatherSummary’s unmarshal() and marshal() methods. Unless you are customizing the marshaling and unmarshaling process in some way, you do not need to explicitly use the marshaling class.
The directory
app\data contains the sample application for manipulating datatypes (
The Data “main” Sample Application), and the directory
include contains relevant include and header files.
NOTE: Source code other than that in the app directory is not overwrite protected. You should never add business logic or make any other changes to the generated source code, as these changes will be lost the next time the code is generated.