C Code Generated for XSD Types

If C code generation is selected, the following items are generated for each XSD type:

A sample section from a C header file is as follows:

    * Name
   typedef struct EXTERN Name {
      OSXMLSTRING givenName;
      OSXMLSTRING initial;
      OSXMLSTRING familyName;

      /* namespace attributes - list of OSXMLNamespace */
      OSRTDList _nsAttrs;
   } Name;

   EXTERN int XmlET_Name
      (OSCTXT* pctxt, Name* pvalue,
      const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);

   EXTERN int XmlDT_Name (OSCTXT* pctxt, Name* pvalue);

   EXTERN int XmlVT_Name (OSCTXT* pctxt);
   EXTERN int Init_Name (OSCTXT* pctxt, Name* pvalue);
   EXTERN void Print_Name (const char* name, Name* pvalue);

This corresponds to the following XSD type definition:

   <xsd:complexType name="Name">
         <xsd:element name="givenName" type="xsd:string"/>
         <xsd:element name="initial" type="xsd:string"/>
         <xsd:element name="familyName" type="xsd:string"/>

In this case, the NameC struct typedef corresponds to the NameXSD complex type definition.

The XmlET_Namefunction prototype is the XML encode function for the type. The XmlDT_Namefunction is the pull-parser decode function for this type. The XmlVT_Namefunction is the pull-parser validation function for this type (only generated if -genvalidwas specified). If -saxwas specified, there would be no generated type function because decoding is handled by SAX handler functions.

The Init_Namefunction prototype is the declaration of the initialization function for this type. This function is called to initialize a variable of the type before encoding or decoding. It initializes all fields to zero or to the field's fixed or default value as specified in the XSD source file.

The Print_Namefunction prototype is for a print utility function. This is an optional function that was generated by using the -printcommand line qualifier. It prints the contents of a variable of the generated type to the standard output device.