DEF Lines
The DEF lines control the generation of the GML application schema. The syntax of a GML DEF line is:
<WriterKeyword>_DEF <feature type> \ [<attribure name> <attribute type>]*
Where the valid values for <attribute type> are: xml_char(width), xml_int32, xml_real32, xml_decimal(width,decimal), xml_boolean, and xml_real64.
The <attribute name> can either be a simple attribute, a list attribute, or a structured attribute.
Simple attributes have no embedded period, and they are mapped into simple type properties in the GML application schema. List attributes end with a “{}” suffix, and are mapped into simple type property declarations whose maxOccurs are set to unbounded.
Structured attributes have embedded periods, each component in a structured attribute is separated by a period, and each component may also be a list. Structured attributes are mapped into complex type properties in the GML application schema. For example, the structured FME attributes, “changeHistory.Date”, and “changeHistory.Reason” are mapped into a changeHistory element whose complex type is defined as a sequence of Date and Reason elements both of which are defined as simple types.
For example, the DEF line:
GML_DEF F1 \ code xml_int32 \ changeHistory.Date xml_char(10) \ changeHistory.Reason xml_char(254)
Generates the following complex type definition:
<complexType name="F1Type"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence> <element name="code" minOccurs="0" type="integer"/> <element name="changeHistory" minOccurs="0"> <complexType> <sequence> <element name="Date" minOccurs="0"> <simpleType> <restriction base="string"> <maxLength value="10"/> </restriction> </simpleType> </element> <element name="Reason" minOccurs="0"> <simpleType> <restriction base="string"> <maxLength value="254"/> </restriction> </simpleType> </element> </sequence> </complexType> </element> </sequence> </extension> </complexContent> </complexType>