private void addLayerElement(LayerBase layer, XmlDocument doc, XmlElement layersElement)
{
XmlElement layerElement = doc.CreateElement("layer");
layersElement.AppendChild(layerElement);
addAttribute(doc, layerElement, "title", layer.Title);
addAttribute(doc, layerElement, "description", layer.Description);
addAttribute(doc, layerElement, "alias", layer.Alias);
addAttribute(doc, layerElement, "visible", layer.Visible ? "1" : "0");
addAttribute(doc, layerElement, "controllable", layer.Controllable ? "1" : "0");
addAttribute(doc, layerElement, "cacheable", layer.Cacheable ? "1" : "0");
addAttribute(doc, layerElement, "minimum_visible_scale", layer.MinVisibleScale.ToString(CultureInfo.InvariantCulture));
addAttribute(doc, layerElement, "maximum_visible_scale", layer.MaxVisibleScale.ToString(CultureInfo.InvariantCulture));
FeatureLayer fl = layer as FeatureLayer;
if (fl != null)
{
addAttribute(doc, layerElement, "type", "vector");
#pragma warning disable 618
addAttribute(doc, layerElement, "datasource", fl.DataSource);
addAttribute(doc, layerElement, "datasource_type", ((int)fl.DataSourceType).ToString(CultureInfo.InvariantCulture));
#pragma warning restore 618
addAttribute(doc, layerElement, "shapes_selectable", fl.FeaturesSelectable ? "1" : "0");
addAttribute(doc, layerElement, "dynamic_data_load", fl.AreFeaturesAutoLoadable ? "1" : "0");
addTitleStyleElement(fl.TitleStyle, doc, layerElement);
addPolygonStyleElement(fl.PolygonStyle, doc, layerElement);
addPolylineStyleElement(fl.PolylineStyle, doc, layerElement);
addPointStyleElement(fl.PointStyle, doc, layerElement);
addIndiciesElements(fl, doc, layerElement);
addLegendElement(fl, doc, layerElement);
addAutoTitleSettingsElement(fl, doc, layerElement);
addDataProviderElement(fl, doc, layerElement);
addAppDataElement(fl, doc, layerElement);
if (fl.FeatureLayerExtensions.Count>0)
{
addFeatureLayerExtesions(fl.FeatureLayerExtensions, doc, layerElement);
}
}
RasterLayer rl = layer as RasterLayer;
if (rl != null)
{
addAttribute(doc, layerElement, "type", "raster");
addRasterbindingElement(rl, doc, layerElement);
addRasterStyleElement(rl, doc, layerElement);
addDataProviderElement(rl, doc, layerElement);
addAppDataElement(rl, doc, layerElement);
}
}