NonStop SOAP 4.1 User's Manual
Example 6 An XSD Schema for a Sample DDL file with the @SOAP_OPTIONAL Tag
<xsd:complexType name="patient_data">
<xsd:sequence>
<xsd:element name="id" type="xsd:long" minOccurs="1" maxOccurs="1"/>
<xsd:element name="age" type="xsd:long" minOccurs="1" maxOccurs="1"/>
<xsd:element name="hospital" type="tns:hospital" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="hospital">
<xsd:sequence>
<xsd:element name="hosp_name" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="address" type="tns:address" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="county" type="tns:county" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="address">
<xsd:sequence>
<xsd:element name="street" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="city" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="state" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="zip" type="xsd:long" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="county">
<xsd:sequence>
<xsd:element name="code" type="xsd:long" minOccurs="0" maxOccurs="1"/>
<xsd:element name="details" type="tns:details" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="description" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="details">
<xsd:sequence>
<xsd:element name="county_name" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="status" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
Because the hospital node and all its leaf nodes are specified as optional in the DDL file, the
hospital element and all its child elements also have the XSD schema attribute minOccurs set
to 0 in the WSDL file and the XML schema file.
Example 7 and Example 8 show valid XML message representations based on the XML schema
shown in Example 6.
220 NonStop SOAP 4 Features










