[mapguide-commits] r1154 - trunk/MgDev/Common/Schema

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Mar 5 20:22:10 EST 2007


Author: waltweltonlair
Date: 2007-03-05 20:22:10 -0500 (Mon, 05 Mar 2007)
New Revision: 1154

Added:
   trunk/MgDev/Common/Schema/LayerDefinition-1.1.0.xsd
Modified:
   trunk/MgDev/Common/Schema/LayerDefinition-1.0.0.xsd
Log:
Add new LayerDefinition-1.1.0.xsd schema which supports new symbolization (RFC14).


Modified: trunk/MgDev/Common/Schema/LayerDefinition-1.0.0.xsd
===================================================================
--- trunk/MgDev/Common/Schema/LayerDefinition-1.0.0.xsd	2007-03-06 01:21:27 UTC (rev 1153)
+++ trunk/MgDev/Common/Schema/LayerDefinition-1.0.0.xsd	2007-03-06 01:22:10 UTC (rev 1154)
@@ -90,7 +90,7 @@
               <xs:documentation>The zoomed out part of the scale range.  Assume application's maximum value if the value is not specified. Exclusive.</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -141,7 +141,7 @@
               <xs:documentation>The stylization to be applied to the features for a given scale range.</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -190,7 +190,7 @@
           </xs:annotation>
         </xs:element>
       </xs:choice>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="PointTypeStyleType">
@@ -213,7 +213,7 @@
           <xs:documentation>One or more PointRules defining the PointTypeStyle</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="PointRuleType">
@@ -239,7 +239,7 @@
       <xs:choice minOccurs="0">
         <xs:element name="PointSymbolization2D" type="PointSymbolization2DType"/>
       </xs:choice>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="PointSymbolizationType">
@@ -279,7 +279,7 @@
           </xs:annotation>
         </xs:element>
       </xs:choice>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="LineTypeStyleType">
@@ -292,7 +292,7 @@
           <xs:documentation>Rules to define a theme.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="LineRuleType">
@@ -318,7 +318,7 @@
       <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:element name="LineSymbolization2D" type="StrokeType"/>
       </xs:choice>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="AreaSymbolizationType">
@@ -343,7 +343,7 @@
               <xs:documentation>The style of the polygon edge.</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -358,7 +358,7 @@
           <xs:documentation>Rules to define a theme.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="AreaRuleType">
@@ -388,7 +388,7 @@
           </xs:annotation>
         </xs:element>
       </xs:choice>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="StrokeType">
@@ -405,7 +405,7 @@
           <xs:documentation>Unit of measurement that the thickness is specified in</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="FillType">
@@ -420,7 +420,7 @@
           <xs:documentation>The background color. Not applicable to solid fills. </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:simpleType name="BackgroundStyleType">
@@ -529,7 +529,7 @@
               </xs:sequence>
             </xs:complexType>
           </xs:element>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -599,7 +599,7 @@
               <xs:documentation>No edge is drawin if not specified.</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -619,7 +619,7 @@
           <xs:documentation>The name to show the end user.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:simpleType name="ShapeType">
@@ -668,7 +668,7 @@
               </xs:annotation>
             </xs:element>
           </xs:choice>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -690,7 +690,7 @@
           <xs:element name="Italic" type="xs:boolean" minOccurs="0"/>
           <xs:element name="Underlined" type="xs:boolean" minOccurs="0"/>
           <xs:element name="ForegroundColor" type="xs:string"/>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -733,7 +733,7 @@
               <xs:documentation>If specified all text in the symbol is drawn in this color.</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -757,7 +757,7 @@
               <xs:documentation>Static color.</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -784,7 +784,7 @@
             </xs:annotation>
           </xs:element>
           <xs:element name="GridScaleRange" type="GridScaleRangeType" maxOccurs="unbounded"/>
-          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -819,7 +819,7 @@
           <xs:documentation>Default is 255.  Range is 0:255.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="GridColorBandsType">
@@ -846,7 +846,7 @@
         <xs:element name="Band" type="xs:string"/>
         <xs:element name="Bands" type="GridColorBandsType"/>
       </xs:choice>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="GridColorRuleType">
@@ -870,7 +870,7 @@
         </xs:annotation>
       </xs:element>
       <xs:element name="Color" type="GridColorType"/>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="HillshadeType">
@@ -898,7 +898,7 @@
           <xs:documentation>Default is 1. Applied to band prior to computing hillshade.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="GridColorStylizationType">
@@ -923,7 +923,7 @@
         </xs:annotation>
       </xs:element>
       <xs:element name="ColorRule" type="GridColorRuleType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="GridSurfaceStylizationType">
@@ -951,7 +951,7 @@
           <xs:documentation>The color that will show if there is no ColorStyle defined at a pixel.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
   <xs:complexType name="GridScaleRangeType">
@@ -980,15 +980,15 @@
           <xs:documentation>When the user has zoomed in by this amount, a request for more detailed raster data is made.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
-    <xs:complexType name="ExtendedDataType">
-        <xs:annotation>
-            <xs:documentation>A type allocating space for future, additional, and validatable data for this feature source</xs:documentation>
-        </xs:annotation>
-        <xs:sequence>
-            <xs:any maxOccurs="unbounded" processContents="lax"/>
-        </xs:sequence>
-    </xs:complexType>
+  <xs:complexType name="ExtendedDataType">
+    <xs:annotation>
+      <xs:documentation>A type allocating space for future, additional, and validatable data for this feature source</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:any processContents="lax" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
 </xs:schema>

Added: trunk/MgDev/Common/Schema/LayerDefinition-1.1.0.xsd
===================================================================
--- trunk/MgDev/Common/Schema/LayerDefinition-1.1.0.xsd	                        (rev 0)
+++ trunk/MgDev/Common/Schema/LayerDefinition-1.1.0.xsd	2007-03-06 01:22:10 UTC (rev 1154)
@@ -0,0 +1,1145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+  <xs:include schemaLocation="SymbolDefinition-1.0.0.xsd"/>
+  <xs:element name="LayerDefinition">
+    <xs:annotation>
+      <xs:documentation>The specification of the data source and stylization for a layer.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="LayerDefinitionType">
+          <xs:attribute name="version" type="xs:string" use="required"/>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="LayerDefinitionType">
+    <xs:annotation>
+      <xs:documentation>Encapsulates the definition of a map layer.</xs:documentation>
+    </xs:annotation>
+    <xs:choice>
+      <xs:element name="DrawingLayerDefinition" type="DrawingLayerDefinitionType">
+        <xs:annotation>
+          <xs:documentation>A layer with a drawing (i.e., DWF) data source.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="VectorLayerDefinition" type="VectorLayerDefinitionType">
+        <xs:annotation>
+          <xs:documentation>A layer with a vector data source; and stylization specification for the datum's geometry types.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="GridLayerDefinition" type="GridLayerDefinitionType">
+        <xs:annotation>
+          <xs:documentation>A layer with a raster or grid data source.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:choice>
+  </xs:complexType>
+  <xs:annotation>
+    <xs:documentation>******************** Common types for all layer types ********************</xs:documentation>
+  </xs:annotation>
+  <xs:complexType name="BaseLayerDefinitionType">
+    <xs:annotation>
+      <xs:documentation>Specifies common properties for all layer types.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="ResourceId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Link to the drawing data source.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Opacity" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Opacity at which to display the rendered data.</xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:double">
+            <xs:minInclusive value="0.0"/>
+            <xs:maxInclusive value="1.0"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:annotation>
+    <xs:documentation>******************** Drawing layer ********************</xs:documentation>
+  </xs:annotation>
+  <xs:complexType name="DrawingLayerDefinitionType">
+    <xs:annotation>
+      <xs:documentation>A layer with a drawing (i.e., DWF) data source.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="BaseLayerDefinitionType">
+        <xs:sequence>
+          <xs:element name="Sheet" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>The sheet of the DWF to use.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="LayerFilter" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The layers to show from the specified sheet.  Show all layers if this is not specified.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="MinScale" type="xs:double" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The zoomed in part of the scale range.  Assume 0 if the value is not specified. Inclusive.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="MaxScale" type="xs:double" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The zoomed out part of the scale range.  Assume application's maximum value if the value is not specified. Exclusive.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:annotation>
+    <xs:documentation>******************** Vector layer ********************</xs:documentation>
+  </xs:annotation>
+  <xs:complexType name="VectorLayerDefinitionType">
+    <xs:annotation>
+      <xs:documentation>A layer with a vector data source; and stylization specification for the datum's geometry types.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="BaseLayerDefinitionType">
+        <xs:sequence>
+          <xs:element name="FeatureName" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>Either a feature class or named extension.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="FeatureNameType" type="FeatureNameType"/>
+          <xs:element name="Filter" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>An boolean FDO expression that specifies which features to return. No filter means to pass all features through.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="PropertyMapping" type="NameStringPairType" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Specifies which properties to expose to the user and its corresponding friendly name.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Geometry" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>Specifies the geometry property that should be used to get the geometries.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Url" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>An optional URL locating the VectorLayerDefinition. This is a string FDO expression.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ToolTip" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The text to put into the tooltip for displayed features.  This is a string FDO expression.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="VectorScaleRange" type="VectorScaleRangeType" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>The stylization to be applied to the features for a given scale range.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:simpleType name="FeatureNameType">
+    <xs:annotation>
+      <xs:documentation>Enumeration describing whether the feature are coming from a feature class or named extension</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="FeatureClass"/>
+      <xs:enumeration value="NamedExtension"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="VectorScaleRangeType">
+    <xs:annotation>
+      <xs:documentation>The stylization to be applied to the vector features for a given scale range.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="MinScale" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>The zoomed in part of the scale range.  Assume 0 if the value is not specified. Inclusive.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="MaxScale" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>The zoomed out part of the scale range.  Assume application's maximum value if the value is not specified. Exclusive.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>Note that where there is no style specified for a particular geometry type a default styling should be used. (Verify this)</xs:documentation>
+        </xs:annotation>
+        <xs:element name="AreaTypeStyle" type="AreaTypeStyleType">
+          <xs:annotation>
+            <xs:documentation>Style specification of a polygon geometry type.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="LineTypeStyle" type="LineTypeStyleType">
+          <xs:annotation>
+            <xs:documentation>Style specification of a line geometry type.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="PointTypeStyle" type="PointTypeStyleType">
+          <xs:annotation>
+            <xs:documentation>Style specification of a point geometry type.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="CompositeTypeStyle" type="CompositeTypeStyleType">
+          <xs:annotation>
+            <xs:documentation>A composite style definition.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:choice>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="PointTypeStyleType">
+    <xs:annotation>
+      <xs:documentation>Style specification of a point geometry type. </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="DisplayAsText" type="xs:boolean">
+        <xs:annotation>
+          <xs:documentation>Create a text layer.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="AllowOverpost" type="xs:boolean">
+        <xs:annotation>
+          <xs:documentation>Allows labels from any map layer (including the current layer) to obscure features on the current layer.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="PointRule" type="PointRuleType" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>One or more PointRules defining the PointTypeStyle</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="PointRuleType">
+    <xs:annotation>
+      <xs:documentation>Style rule for a point geometry type.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="LegendLabel" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The label for the Rule to be displayed on the legend</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Filter" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A filter for the Rule. This is a boolean FDO expression.  An features that pass this filter are styles using this rule's stylization.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Label" type="TextSymbolType" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A label for the Rule.  Does not apply to GridColorRule.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:choice minOccurs="0">
+        <xs:element name="PointSymbolization2D" type="PointSymbolization2DType"/>
+      </xs:choice>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="PointSymbolizationType">
+    <xs:annotation>
+      <xs:documentation>Base point symbolization type</xs:documentation>
+    </xs:annotation>
+  </xs:complexType>
+  <xs:complexType name="PointSymbolization2DType">
+    <xs:annotation>
+      <xs:documentation>The different types of point geometries.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="Mark" type="MarkSymbolType">
+          <xs:annotation>
+            <xs:documentation>Predefined shape such as square or circle.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="Image" type="ImageSymbolType">
+          <xs:annotation>
+            <xs:documentation>Raster or image symbol. Note that these do not scale well, but sometimes this is all that you have. Supported formats are application specific.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="Font" type="FontSymbolType">
+          <xs:annotation>
+            <xs:documentation>Specify the symbol using a font character.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="W2D" type="W2DSymbolType">
+          <xs:annotation>
+            <xs:documentation>Vector symbol defined using a W2D stream.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="Block" type="BlockSymbolType">
+          <xs:annotation>
+            <xs:documentation>Vector symbol specifed from a block.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:choice>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="LineTypeStyleType">
+    <xs:annotation>
+      <xs:documentation>Style specification of a line geometry type.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="LineRule" type="LineRuleType" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>Rules to define a theme.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="LineRuleType">
+    <xs:annotation>
+      <xs:documentation>Style rule for a line geometry type.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="LegendLabel" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The label for the Rule to be displayed on the legend</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Filter" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A filter for the Rule. This is a boolean FDO expression.  An features that pass this filter are styles using this rule's stylization.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Label" type="TextSymbolType" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A label for the Rule.  Does not apply to GridColorRule.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element name="LineSymbolization2D" type="StrokeType"/>
+      </xs:choice>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="AreaSymbolizationType">
+    <xs:annotation>
+      <xs:documentation>Symbolization characteristics for areas</xs:documentation>
+    </xs:annotation>
+  </xs:complexType>
+  <xs:complexType name="AreaSymbolizationFillType">
+    <xs:annotation>
+      <xs:documentation>Describes the style of a polygon.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="AreaSymbolizationType">
+        <xs:sequence>
+          <xs:element name="Fill" type="FillType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The style of the polygon fill.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Stroke" type="StrokeType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The style of the polygon edge.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="AreaTypeStyleType">
+    <xs:annotation>
+      <xs:documentation>Style specification of a polygon geometry type.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="AreaRule" type="AreaRuleType" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>Rules to define a theme.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="AreaRuleType">
+    <xs:annotation>
+      <xs:documentation>Style rule for an area geometry type.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="LegendLabel" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The label for the Rule to be displayed on the legend</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Filter" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A filter for the Rule. This is a boolean FDO expression.  An features that pass this filter are styles using this rule's stylization.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Label" type="TextSymbolType" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A label for the Rule.  Does not apply to GridColorRule.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:choice>
+        <xs:element name="AreaSymbolization2D" type="AreaSymbolizationFillType">
+          <xs:annotation>
+            <xs:documentation>The stylization of the polygon geometry.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:choice>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="StrokeType">
+    <xs:annotation>
+      <xs:documentation>Encapsulates the stylization of a line.
+            </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="LineStyle" type="xs:string"/>
+      <xs:element name="Thickness" type="xs:string"/>
+      <xs:element name="Color" type="xs:string"/>
+      <xs:element name="Unit" type="LengthUnitType">
+        <xs:annotation>
+          <xs:documentation>Unit of measurement that the thickness is specified in</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="FillType">
+    <xs:annotation>
+      <xs:documentation>Encapsulates the stylization of the polygon's fill.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="FillPattern" type="xs:string"/>
+      <xs:element name="ForegroundColor" type="xs:string"/>
+      <xs:element name="BackgroundColor" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The background color. Not applicable to solid fills. </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:simpleType name="BackgroundStyleType">
+    <xs:annotation>
+      <xs:documentation>The possible background styles of a TextSymbol.</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Transparent"/>
+      <xs:enumeration value="Opaque"/>
+      <xs:enumeration value="Ghosted"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="SizeContextType">
+    <xs:annotation>
+      <xs:documentation>Whether the sizes are specified as sizes on the earth or on the user's display device.</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="MappingUnits"/>
+      <xs:enumeration value="DeviceUnits"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="LengthUnitType">
+    <xs:annotation>
+      <xs:documentation>The measurement units that linear sizes are specified in.</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Millimeters"/>
+      <xs:enumeration value="Centimeters"/>
+      <xs:enumeration value="Meters"/>
+      <xs:enumeration value="Kilometers"/>
+      <xs:enumeration value="Inches"/>
+      <xs:enumeration value="Feet"/>
+      <xs:enumeration value="Yards"/>
+      <xs:enumeration value="Miles"/>
+      <xs:enumeration value="Points"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="TextSymbolType">
+    <xs:annotation>
+      <xs:documentation>Encapsulates the text label stylization used to label features, and for FontSymbols.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="SymbolType">
+        <xs:sequence>
+          <xs:element name="Text" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>The text of the TextSymbol.  This is a string FDO expression.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="FontName" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>The font to use.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ForegroundColor" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>The color of the text.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="BackgroundColor" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>The text background color.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="BackgroundStyle" type="BackgroundStyleType">
+            <xs:annotation>
+              <xs:documentation>The background style</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="HorizontalAlignment" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>A string FDO expression for the horizontal alignment.  Must evaluate to one of the HorizontalAlignmentType enums. Only applicable to text styles.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="VerticalAlignment" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>A string FDO expression for the vertical alignment. Must evaluate to one of the VerticalAlignmentType enums.  Only applicable to text and line styles.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Bold" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Specifies if the label should be in a bold font.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Italic" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Specifies if the font should be italicized.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Underlined" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Specifies if the text should be underlined.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="AdvancedPlacement" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>If present, a more advanced labeling algorithm for the HTML viewer is used. </xs:documentation>
+            </xs:annotation>
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="ScaleLimit" type="xs:double" minOccurs="0">
+                  <xs:annotation>
+                    <xs:documentation>The maximum amount any label is allowed to shrink in order to fit into the feature.  For example, 0.8 means that the label can shrink until it is 80% of the original size.  1.0 means that the label cannot shrink.  If not specified, the application should assume 1.0.</xs:documentation>
+                  </xs:annotation>
+                </xs:element>
+              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="SymbolType">
+    <xs:annotation>
+      <xs:documentation>Common elements for all symbols</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="Unit" type="LengthUnitType">
+        <xs:annotation>
+          <xs:documentation>The units that the sizes are specified in.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="SizeContext" type="SizeContextType">
+        <xs:annotation>
+          <xs:documentation>Whether the sizes are with respect to the earth or the user's display device.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="SizeX" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Width of the symbol.  This is a double FDO expression. Does not apply to Font symbols.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="SizeY" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Height of the symbol.  This is a double FDO expression.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Rotation" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Amount to rotate the symbol in degrees.  This is a double FDO expression. Does not apply to line labels.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="MaintainAspect" type="xs:boolean" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Hint for the UI only.  When the user enters a constant size for the width or height, the other dimension should be adjusted accordingly. Does not apply to Font symbols or labels.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="InsertionPointX" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>X offset for the symbol specified in symbol space. Does not apply to labels. </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="InsertionPointY" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Y offset for the symbol specified in symbol space.  Does not apply to labels. </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="MarkSymbolType">
+    <xs:annotation>
+      <xs:documentation>Stylization of a predefined shape (ShapeType)</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="SymbolType">
+        <xs:sequence>
+          <xs:element name="Shape" type="ShapeType"/>
+          <xs:element name="Fill" type="FillType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>No fill is drawn if not specified.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Edge" type="StrokeType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>No edge is drawin if not specified.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="NameStringPairType">
+    <xs:annotation>
+      <xs:documentation>Used by vector layer definition to hold properties that can be displayed to the end user, and the friendly name to display it as.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="Name" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The name of the property to expose.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Value" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The name to show the end user.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:simpleType name="ShapeType">
+    <xs:annotation>
+      <xs:documentation>SLD supports square, circle, triangle, star, cross, and X</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Square"/>
+      <xs:enumeration value="Circle"/>
+      <xs:enumeration value="Triangle"/>
+      <xs:enumeration value="Star"/>
+      <xs:enumeration value="Cross"/>
+      <xs:enumeration value="X"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="ImageSymbolType">
+    <xs:annotation>
+      <xs:documentation>Symbols that are comprised of a raster</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="SymbolType">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element name="Image">
+              <xs:annotation>
+                <xs:documentation>Reference to the image.</xs:documentation>
+              </xs:annotation>
+              <xs:complexType>
+                <xs:sequence>
+                  <xs:element name="ResourceId">
+                    <xs:annotation>
+                      <xs:documentation>The reference to the resource.</xs:documentation>
+                    </xs:annotation>
+                  </xs:element>
+                  <xs:element name="LibraryItemName" minOccurs="0">
+                    <xs:annotation>
+                      <xs:documentation>If ResourceId specifies a library, this identifies the name of a library item.</xs:documentation>
+                    </xs:annotation>
+                  </xs:element>
+                </xs:sequence>
+              </xs:complexType>
+            </xs:element>
+            <xs:element name="Content" type="xs:hexBinary">
+              <xs:annotation>
+                <xs:documentation>BinHex data for image. </xs:documentation>
+              </xs:annotation>
+            </xs:element>
+          </xs:choice>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="FontSymbolType">
+    <xs:annotation>
+      <xs:documentation>Symbols that are specified by a Font and charcter</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="SymbolType">
+        <xs:sequence>
+          <xs:element name="FontName" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>If the font is not installed, the actual font used is application dependent.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Character" type="xs:string"/>
+          <xs:element name="Bold" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="Italic" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="Underlined" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="ForegroundColor" type="xs:string"/>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="W2DSymbolType">
+    <xs:annotation>
+      <xs:documentation>A symbol using a W2D stream.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="SymbolType">
+        <xs:sequence>
+          <xs:element name="W2DSymbol">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="ResourceId">
+                  <xs:annotation>
+                    <xs:documentation>The reference to the symbol library.</xs:documentation>
+                  </xs:annotation>
+                </xs:element>
+                <xs:element name="LibraryItemName">
+                  <xs:annotation>
+                    <xs:documentation>The W2D stream in the symbol library.</xs:documentation>
+                  </xs:annotation>
+                </xs:element>
+              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+          <xs:element name="FillColor" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>If specified all polygon fills in the symbol are drawn in this color.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="LineColor" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>If specified all lines in the symbol are drawn in this color.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="TextColor" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>If specified all text in the symbol is drawn in this color.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="BlockSymbolType">
+    <xs:annotation>
+      <xs:documentation>Block symbol</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="SymbolType">
+        <xs:sequence>
+          <xs:element name="DrawingName" type="xs:string"/>
+          <xs:element name="BlockName" type="xs:string"/>
+          <xs:element name="BlockColor" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Static color.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="LayerColor" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Static color.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="CompositeTypeStyleType">
+    <xs:annotation>
+      <xs:documentation>A style specification consisting of composite rules.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="CompositeRule" type="CompositeRuleType" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>One or more CompositeRules defining the CompositeTypeStyle.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="CompositeRuleType">
+    <xs:annotation>
+      <xs:documentation>A style rule containing a composite symbolization.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="LegendLabel" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The label for the Rule to be displayed on the legend.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Filter" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A filter for the Rule. This is a boolean FDO expression.  Any features that pass this filter are styled using this rule's stylization.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="CompositeSymbolization" type="CompositeSymbolizationType">
+        <xs:annotation>
+          <xs:documentation>The symbolization for the Rule.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="CompositeSymbolizationType">
+    <xs:annotation>
+      <xs:documentation>Stylization attributes of a point, line, or area feature.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="SymbolCollection">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="SymbolInstance" type="SymbolInstanceType" maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ParameterOverrides">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="Override" minOccurs="0" maxOccurs="unbounded">
+              <xs:complexType>
+                <xs:sequence>
+                  <xs:element name="SymbolName" type="xs:string">
+                    <xs:annotation>
+                      <xs:documentation>The name of the symbol definition containing the parameter being overridden.</xs:documentation>
+                    </xs:annotation>
+                  </xs:element>
+                  <xs:element name="ParameterIdentifier" type="xs:string">
+                    <xs:annotation>
+                      <xs:documentation>The identifier of the parameter being overridden.</xs:documentation>
+                    </xs:annotation>
+                  </xs:element>
+                  <xs:element name="ParameterValue" type="xs:string">
+                    <xs:annotation>
+                      <xs:documentation>The override value for the parameter.</xs:documentation>
+                    </xs:annotation>
+                  </xs:element>
+                </xs:sequence>
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="SymbolInstanceType">
+    <xs:annotation>
+      <xs:documentation>An instance of a symbol.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="SymbolDefinition" type="SymbolDefinitionType">
+          <xs:annotation>
+            <xs:documentation>An inlined SymbolDefinition, either simple or compound.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="SymbolReference" type="xs:string">
+          <xs:annotation>
+            <xs:documentation>A library reference to an existing SymbolDefinition, either simple or compound.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:choice>
+      <xs:element name="ScaleX" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>The additional amount to scale the symbol horizontally in symbol space.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ScaleY" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>The additional amount to scale the symbol vertically in symbol space.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="InsertionOffsetX" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Specifies the additional amount to offset the symbol horizontally, in mm in device units, after rotation and scaling have been applied.  Applies only to point symbols.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="InsertionOffsetY" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Specifies the additional amount to offset the symbol vertically, in mm in device units, after rotation and scaling have been applied.  Applies only to point symbols.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="SizeContext" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Specifies whether the symbol sizes are with respect to the map or the user's display device.  This must evaluate to either MappingUnits or DeviceUnits.</xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="Device"/>
+            <xs:enumeration value="Mapping"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:element>
+      <xs:element name="DrawLast" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Boolean value which specifies whether the symbol is drawn as part of a final rendering pass (e.g. for labeling).  Defaults to false.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="CheckExclusionRegion" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Boolean value which specifies whether to render this symbol only if its graphical extent does not overlap the exclusion region.  Defaults to false.  If the positioning algorithm generates multiple candidate symbol positions and this setting is true, then only the first non-overlapping candidate is rendered.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="AddToExclusionRegion" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Boolean value which specifies whether the graphical extent for this symbol instance is added to the exclusion region (if it is rendered).  Symbols which check the exclusion region will not draw on top of this symbol.  Defaults to false.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="PositioningAlgorithm" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Specifies the algorithm used to generate candidate positions for the symbol.  This must evaluate to one of: Default or EightSurrounding.  Default means generate one position using the feature geometry (used for normal rendering).  EightSurrounding means generate eight positions surrounding the feature geometry (used when labeling point features).</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:annotation>
+    <xs:documentation>******************** Grid layer ********************</xs:documentation>
+  </xs:annotation>
+  <xs:complexType name="GridLayerDefinitionType">
+    <xs:annotation>
+      <xs:documentation>For raster or grid data</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="BaseLayerDefinitionType">
+        <xs:sequence>
+          <xs:element name="FeatureName" type="xs:string"/>
+          <xs:element name="Geometry" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>Specifies the geometry property that should be used to get the geometries.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Filter" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>An boolean FDO expression that specifies which features to return. No filter means to pass all features through.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="GridScaleRange" type="GridScaleRangeType" maxOccurs="unbounded"/>
+          <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="ChannelBandType">
+    <xs:annotation>
+      <xs:documentation>Defines how to scale numbers into a color channel.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="Band" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Name of the band.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="LowBand" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Default is low value found in band.  Band values less than this are snapped to this number.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="HighBand" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Default is high value found in band.  Band values greater than this are snapped to this number.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="LowChannel" type="xs:unsignedByte" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Default is 0.  Range is 0:255.   LowBand is mapped to this number.  LowChannel can be greater than HighChannel. </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="HighChannel" type="xs:unsignedByte" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Default is 255.  Range is 0:255.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="GridColorBandsType">
+    <xs:annotation>
+      <xs:documentation>Specifies a color using distinct rgb values.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="RedBand" type="ChannelBandType"/>
+      <xs:element name="GreenBand" type="ChannelBandType"/>
+      <xs:element name="BlueBand" type="ChannelBandType"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="GridColorType">
+    <xs:annotation>
+      <xs:documentation>The color to use for a grid rule.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="ExplicitColor" type="xs:string">
+          <xs:annotation>
+            <xs:documentation>Explicit ARGB color.</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="Band" type="xs:string"/>
+        <xs:element name="Bands" type="GridColorBandsType"/>
+      </xs:choice>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="GridColorRuleType">
+    <xs:annotation>
+      <xs:documentation>Encapsulate a style for a grid source</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="LegendLabel" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The label for the Rule to be displayed on the legend</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Filter" type="xs:string" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A filter for the Rule. This is a boolean FDO expression.  An features that pass this filter are styles using this rule's stylization.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Label" type="TextSymbolType" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>A label for the Rule.  Does not apply to GridColorRule.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Color" type="GridColorType"/>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="HillshadeType">
+    <xs:annotation>
+      <xs:documentation>Specify how to shade given a band and a light source.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="Band" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Name of the band used for the computation.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Azimuth" type="xs:double">
+        <xs:annotation>
+          <xs:documentation>Position of the sun in degrees.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Altitude" type="xs:double">
+        <xs:annotation>
+          <xs:documentation>Position of the sun in degrees.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ScaleFactor" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Default is 1. Applied to band prior to computing hillshade.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="GridColorStylizationType">
+    <xs:annotation>
+      <xs:documentation>Specifies how to style each pixel.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="Hillshade" type="HillshadeType" minOccurs="0"/>
+      <xs:element name="TransparencyColor" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>If a pixel color prior to factoring in Hillshade is this value then the pixel is transparent.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="BrightnessFactor" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>If not specified use 0.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ContrastFactor" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>If not specified use 0.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ColorRule" type="GridColorRuleType" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="GridSurfaceStylizationType">
+    <xs:annotation>
+      <xs:documentation>Specifies how to calculate pixel elevations.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="Band" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Band to use for 3D data</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ZeroValue" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>This is used to determine which input value is to be mapped to elevation 0.  Use 0 if not specified.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="Scale" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>This is used to determine how to scale the inputs into a consistent elevation. Use 1 if not specified.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="DefaultColor" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The color that will show if there is no ColorStyle defined at a pixel.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="GridScaleRangeType">
+    <xs:annotation>
+      <xs:documentation>The stylization for a specified scale range.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="MinScale" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>The zoomed in part of the scale range.  Assume 0 if the value is not specified. Inclusive.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="MaxScale" type="xs:double" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>The zoomed out part of the scale range.  Assume application's maximum value if the value is not specified. Exclusive.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="SurfaceStyle" type="GridSurfaceStylizationType" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>Defines the height field of the grid.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ColorStyle" type="GridColorStylizationType" minOccurs="0"/>
+      <xs:element name="RebuildFactor" type="xs:double">
+        <xs:annotation>
+          <xs:documentation>When the user has zoomed in by this amount, a request for more detailed raster data is made.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="ExtendedDataType">
+    <xs:annotation>
+      <xs:documentation>A type allocating space for future, additional, and validatable data for this feature source</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:any processContents="lax" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>


Property changes on: trunk/MgDev/Common/Schema/LayerDefinition-1.1.0.xsd
___________________________________________________________________
Name: svn:eol-style
   + native



More information about the mapguide-commits mailing list