# GML 3.2 Encoding Rule

## 1. Source

GML 3.2, Annex E

## 2. Encoding Rule Identifier

The GML 3.2 encoding rule has the identifier "iso19136_2007".

## 3. Conversion Rules

### 3.1. Overview

The following is a list of schema conversion rules that apply to the GML 3.2 encoding rule. These are in addition to the common conversion rules.

Rule | Description
--- | ---
rule-xsd-cls-codelist-asDictionary | If a the tagged value asDictionary of a code list is not 'true', create a global type for the code list; otherwise reference code list values using gml:CodeType
rule-xsd-all-naming-gml | Use the naming strategy for schema components as specified by GML 3.2
rule-xsd-cls-noPropertyType | If a the tagged value noPropertyType of a feature type, class, data type or union type is 'true', the property type creation is suppressed
rule-xsd-cls-byValuePropertyType | If a the tagged value byValuePropertyType of a feature type or class is 'true', an additional by-value property type is created
rule-xsd-cls-standard-gml-property-types | Reuse property types or create anonymous property types according to GML 3.2
rule-xsd-pkg-gmlProfileSchema | Include gmlProfileSchema appinfo, if the tagged value is set on the application schema package
rule-xsd-prop-defaultCodeSpace | Include defaultCodeSpace appinfo, if applicable
rule-xsd-prop-inlineOrByReference | Take tagged value inlineOrByReference on properties into account when setting the type of a property element
rule-xsd-prop-reverseProperty | Include reversePropertyName appinfo, if applicable
rule-xsd-prop-targetElement | Include targetElement appinfo, if a property is byReference
rule-xsd-cls-global-enumeration | Convert enumerations to global types

### 3.2. rule-xsd-cls-codelist-asDictionary

If a the tagged value asDictionary of a code list is not 'true', create a global type for the code list; otherwise reference code list values using gml:CodeType

### 3.3. rule-xsd-all-naming-gml

Use the naming strategy for schema components as specified by GML 3.2

### 3.4. rule-xsd-cls-noPropertyType

If a the tagged value noPropertyType of a feature type, class, data type or union type is 'true', the property type creation is suppressed

### 3.5. rule-xsd-cls-byValuePropertyType

If a the tagged value byValuePropertyType of a feature type or class is 'true', an additional by-value property type is created

### 3.6. rule-xsd-cls-standard-gml-property-types

Reuse property types or create anonymous property types according to GML 3.2

### 3.7. rule-xsd-pkg-gmlProfileSchema

Include gmlProfileSchema appinfo, if the tagged value is set on the application schema package

### 3.8. rule-xsd-prop-defaultCodeSpace

Include defaultCodeSpace appinfo, if applicable

### 3.9. rule-xsd-prop-inlineOrByReference

Take tagged value inlineOrByReference on properties into account when setting the type of a property element

### 3.10. rule-xsd-prop-reverseProperty

Include reversePropertyName appinfo, if applicable

### 3.11. rule-xsd-prop-targetElement

Include targetElement appinfo, if a property is byReference

### 3.12. rule-xsd-cls-global-enumeration

Convert enumerations to global types