<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.6618.4">
<TITLE>svn commit: r1038 - RFC 10 Make Schemas More Amenable to Interim Enhancements</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P><FONT SIZE=2 FACE="Arial">Revision: 1038</FONT>
<BR><FONT SIZE=2 FACE="Arial">Author: trevorwekel</FONT>
<BR><FONT SIZE=2 FACE="Arial">Date: 8:10:06 PM, Monday, January 08, 2007</FONT>
<BR><FONT SIZE=2 FACE="Arial">Message:</FONT>
<BR><FONT SIZE=2 FACE="Arial">RFC 10 - Make Schemas More Amenable to Interim Enhancements</FONT>
<BR><FONT SIZE=2 FACE="Arial">----</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/AttributeRelate.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/CalculatedProperty.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/ChannelBand.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Extension.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/FeatureSource.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/FeatureTypeStyle.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Fill.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/GridColor.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/GridScaleRange.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/HillShade.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Label.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/LayerDefinition.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Makefile.am</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/MdfModel.vcproj</FONT>
<BR><FONT SIZE=2 FACE="Arial">Added : /trunk/MgDev/Common/MdfModel/MdfRootObject.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Added : /trunk/MgDev/Common/MdfModel/MdfRootObject.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/NameStringPair.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/RelateProperty.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Rule.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Stroke.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/SupplementalSpatialContextInfo.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Symbol.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/Symbolization.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfModel/VectorScaleRange.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/FSDSAX2Parser.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/FSDSAX2Parser.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOAreaRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOAreaSymbolization2D.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOAreaTypeStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOAttributeRelate.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOBlockSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOCalculatedProperty.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOChannelBand.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IODrawingLayerDefinition.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOExtension.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOFeatureSource.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOFill.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOFontSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOGridColor.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Added : /trunk/MgDev/Common/MdfParser/IOGridColorBands.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOGridColorRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOGridColorStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOGridLayerDefinition.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOGridScaleRange.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOGridSurfaceStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOHillShade.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOImageSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOLabel.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOLineRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOLineSymbolization2D.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOLineTypeStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOMarkSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IONameStringPair.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOPointRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOPointSymbolization2D.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOPointTypeStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IORelateProperty.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOStroke.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOSupplementalSpatialContextInfo.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Added : /trunk/MgDev/Common/MdfParser/IOUnknown.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Added : /trunk/MgDev/Common/MdfParser/IOUnknown.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOUtil.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOUtil.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOVectorLayerDefinition.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOVectorScaleRange.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/IOW2DSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/Makefile.am</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/MdfParser.vcproj</FONT>
<BR><FONT SIZE=2 FACE="Arial">Added : /trunk/MgDev/Common/MdfParser/SAX2ElementHandler.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/SAX2ElementHandler.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/SAX2Parser.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/MdfParser/SAX2Parser.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/Schema/FeatureSource-1.0.0.xsd</FONT>
<BR><FONT SIZE=2 FACE="Arial">Modified : /trunk/MgDev/Common/Schema/LayerDefinition-1.0.0.xsd</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/Schema/FeatureSource-1.0.0.xsd</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/Schema/FeatureSource-1.0.0.xsd (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/Schema/FeatureSource-1.0.0.xsd (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -54,9 +54,11 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The feature class that is being extended; this is the class whose attributes are used for joining other attribute classes</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:attribute name="version" type="xs:string"></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -79,6 +81,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Text for value of parameter</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:simpleType name="RelateTypeEnum"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -112,6 +115,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Expression for the property</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="RelatePropertyType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -126,6 +130,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Name of property (field) in attribute class</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="AttributeRelateType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -165,6 +170,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Force 1 : 1 in the case of 1 : many </xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="SpatialContextType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -182,6 +188,15 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Coordinate system used for this spatial context</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">-</xs:schema></FONT>
<BR><FONT SIZE=2 FACE="Arial">\ No newline at end of file</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:complexType name="ExtendedDataType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>A type allocating space for future, additional, and validatable data for this feature source</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:any maxOccurs="unbounded" processContents="lax"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">+</xs:schema></FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/Schema/LayerDefinition-1.0.0.xsd</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/Schema/LayerDefinition-1.0.0.xsd (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/Schema/LayerDefinition-1.0.0.xsd (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -90,6 +90,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The zoomed out part of the scale range. Assume application's maximum value if the value is not specified. Exclusive.</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -140,6 +141,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The stylization to be applied to the features for a given scale range.</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -188,6 +190,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="PointTypeStyleType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -210,6 +213,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>One or more PointRules defining the PointTypeStyle</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="PointRuleType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -235,6 +239,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:choice minOccurs="0"></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="PointSymbolization2D" type="PointSymbolization2DType"/></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="PointSymbolizationType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -246,33 +251,36 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The different types of point geometries.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Mark" type="MarkSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>Predefined shape such as square or circle.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Image" type="ImageSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <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></FONT></P>
<P><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Font" type="FontSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>Specify the symbol using a font character.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="W2D" type="W2DSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>Vector symbol defined using a W2D stream.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Block" type="BlockSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>Vector symbol specifed from a block.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Mark" type="MarkSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>Predefined shape such as square or circle.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Image" type="ImageSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <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></FONT></P>
<P><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Font" type="FontSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>Specify the symbol using a font character.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="W2D" type="W2DSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>Vector symbol defined using a W2D stream.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Block" type="BlockSymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>Vector symbol specifed from a block.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="LineTypeStyleType"></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -284,6 +292,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Rules to define a theme.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="LineRuleType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -309,6 +318,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:choice minOccurs="0" maxOccurs="unbounded"></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="LineSymbolization2D" type="StrokeType"/></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="AreaSymbolizationType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -333,6 +343,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The style of the polygon edge.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -347,6 +358,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Rules to define a theme.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="AreaRuleType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -376,6 +388,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="StrokeType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -392,6 +405,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Unit of measurement that the thickness is specified in</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="FillType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -406,6 +420,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The background color. Not applicable to solid fills. </xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:simpleType name="BackgroundStyleType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -514,6 +529,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -583,6 +599,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>No edge is drawin if not specified.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -602,6 +619,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The name to show the end user.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:simpleType name="ShapeType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -623,32 +641,35 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:extension base="SymbolType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Image"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>Reference to the image.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="ResourceId"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>The reference to the resource.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="LibraryItemName" minOccurs="0"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>If ResourceId specifies a library, this identifies the name of a library item.</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Content" type="xs:hexBinary"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>BinHex data for image. </xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Image"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>Reference to the image.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ResourceId"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>The reference to the resource.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="LibraryItemName" minOccurs="0"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>If ResourceId specifies a library, this identifies the name of a library item.</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Content" type="xs:hexBinary"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>BinHex data for image. </xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -669,6 +690,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="Italic" type="xs:boolean" minOccurs="0"/></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="Underlined" type="xs:boolean" minOccurs="0"/></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="ForegroundColor" type="xs:string"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -711,6 +733,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>If specified all text in the symbol is drawn in this color.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -734,6 +757,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Static color.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -760,6 +784,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="GridScaleRange" type="GridScaleRangeType" maxOccurs="unbounded"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:extension></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexContent></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -794,6 +819,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Default is 255. Range is 0:255.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="GridColorBandsType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -810,15 +836,18 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The color to use for a grid rule.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="ExplicitColor" type="xs:string"></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:documentation>Explicit ARGB color.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Band" type="xs:string"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">- <xs:element name="Bands" type="GridColorBandsType"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">- </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExplicitColor" type="xs:string"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>Explicit ARGB color.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Band" type="xs:string"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="Bands" type="GridColorBandsType"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:choice></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="GridColorRuleType"></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -841,6 +870,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="Color" type="GridColorType"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="HillshadeType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -868,6 +898,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>Default is 1. Applied to band prior to computing hillshade.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="GridColorStylizationType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -892,6 +923,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:element name="ColorRule" type="GridColorRuleType" minOccurs="0" maxOccurs="unbounded"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="GridSurfaceStylizationType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -919,6 +951,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>The color that will show if there is no ColorStyle defined at a pixel.</xs:documentation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:complexType name="GridScaleRangeType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -947,6 +980,15 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> <xs:documentation>When the user has zoomed in by this amount, a request for more detailed raster data is made.</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial"> </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:element></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" /></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:complexType name="ExtendedDataType"></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:documentation>A type allocating space for future, additional, and validatable data for this feature source</xs:documentation></FONT></P>
<P><FONT SIZE=2 FACE="Arial">+ </xs:annotation></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <xs:any maxOccurs="unbounded" processContents="lax"/></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:sequence></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </xs:complexType></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </xs:schema></FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOCalculatedProperty.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOCalculatedProperty.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOCalculatedProperty.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,11 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, CalculatedProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Expression);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOCalculatedProperty::IOCalculatedProperty()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : m_pCalculatedProperty(NULL), m_pExtension(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -39,10 +44,21 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOCalculatedProperty::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"CalculatedProperty") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eCalculatedProperty:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pCalculatedProperty = new CalculatedProperty();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -58,6 +74,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_pCalculatedProperty->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pExtension->GetCalculatedProperties()->Adopt(m_pCalculatedProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_pCalculatedProperty = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -81,6 +100,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(pCalculatedProperty->GetExpression());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</Expression>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pCalculatedProperty->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pCalculatedProperty->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</CalculatedProperty>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOPointTypeStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOPointTypeStyle.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOPointTypeStyle.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, PointTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, PointRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, DisplayAsText);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, AllowOverpost);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOPointTypeStyle::IOPointTypeStyle()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_pointTypeStyle = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -42,17 +48,30 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOPointTypeStyle::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"PointTypeStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case ePointTypeStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_pointTypeStyle = new PointTypeStyle();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case ePointRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOPointRule *IO = new IOPointRule(this->_pointTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"PointRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOPointRule *IO = new IOPointRule(this->_pointTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOPointTypeStyle::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -67,6 +86,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_pointTypeStyle->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange->GetFeatureTypeStyles()->Adopt(this->_pointTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -99,6 +121,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pointTypeStyle->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pointTypeStyle->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</PointTypeStyle>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/MdfParser.vcproj</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/MdfParser.vcproj (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/MdfParser.vcproj (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -328,6 +328,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <File</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ RelativePath=".\IOGridColorBands.cpp"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <File</FONT>
<BR><FONT SIZE=2 FACE="Arial"> RelativePath=".\IOGridColorRule.cpp"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -536,6 +540,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <File</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ RelativePath=".\IOUnknown.cpp"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <File</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ RelativePath=".\IOUnknown.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <File</FONT>
<BR><FONT SIZE=2 FACE="Arial"> RelativePath=".\IOUtil.cpp"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -580,6 +592,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <File</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ RelativePath=".\SAX2ElementHandler.cpp"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <File</FONT>
<BR><FONT SIZE=2 FACE="Arial"> RelativePath=".\SAX2ElementHandler.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOLabel.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOLabel.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOLabel.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,29 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Label);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, AdvancedPlacement);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ScaleLimit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Text);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, FontName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, ForegroundColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, BackgroundColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, BackgroundStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(9, HorizontalAlignment);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(10, VerticalAlignment);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(11, Bold);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(12, Italic);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(13, Underlined);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(14, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(15, SizeContext);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(16, SizeX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(17, SizeY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(18, InsertionPointX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(19, InsertionPointY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(20, Rotation);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(21, MaintainAspect);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOLabel::IOLabel()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_label = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -44,16 +67,30 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOLabel::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Label") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLabel:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_label = new Label();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAdvancedPlacement:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (this->_label) </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_label->GetSymbol()->SetAdvancedPlacement(true);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_handlingPlacement = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"AdvancedPlacement" && this->_label) // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->_label->GetSymbol()->SetAdvancedPlacement(true);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_handlingPlacement = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOLabel::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -126,6 +163,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_label->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->rule->AdoptLabel(this->_label);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->rule= NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -231,6 +271,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</AdvancedPlacement>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!label->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(label->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</Label>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOBlockSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOBlockSymbol.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOBlockSymbol.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -25,13 +25,41 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // When a BlockSymbol is successfully parsed by this class, it must be accessed by the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // parent class and then managed appropriately. It will not be deleted by this class.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Inherited Symbol Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, SizeContext);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, SizeX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, SizeY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, InsertionPointX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, InsertionPointY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, Rotation);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, MaintainAspect);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Local Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(9, Block);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(10, DrawingName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(11, BlockName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(12, BlockColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(13, LayerColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOBlockSymbol::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (this->m_currElemName == L"Block") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eBlock:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_symbol = new BlockSymbol();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -54,6 +82,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_symbol->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -92,6 +123,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</LayerColor>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!symbol->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(symbol->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</Block>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IONameStringPair.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IONameStringPair.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IONameStringPair.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, PropertyMapping);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Parameter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Value);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IONameStringPair::IONameStringPair()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : _nameStringPair(NULL), layer(NULL), featureSource(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -46,21 +52,32 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IONameStringPair::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (NULL != layer)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"PropertyMapping") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case ePropertyMapping:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (NULL != layer)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_nameStringPair = new NameStringPair(L"", L"");</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (NULL != featureSource)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Parameter") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eParameter:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (NULL != featureSource)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_nameStringPair = new NameStringPair(L"", L"");</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -76,6 +93,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_nameStringPair->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (NULL != this->layer)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->layer->GetPropertyMappings()->Adopt(this->_nameStringPair);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> else if (NULL != this->featureSource)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -101,4 +121,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "<Value>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(nameStringPair->GetValue());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</Value>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!nameStringPair->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(nameStringPair->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOVectorScaleRange.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOVectorScaleRange.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOVectorScaleRange.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -26,6 +26,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, VectorScaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, AreaTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, LineTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, PointTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, MinScale);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, MaxScale);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOVectorScaleRange::IOVectorScaleRange()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_scaleRange = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -45,29 +53,46 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOVectorScaleRange::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"VectorScaleRange") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eVectorScaleRange:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_scaleRange = new VectorScaleRange();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAreaTypeStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOAreaTypeStyle *IO = new IOAreaTypeStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLineTypeStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOLineTypeStyle *IO = new IOLineTypeStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case ePointTypeStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOPointTypeStyle *IO = new IOPointTypeStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"AreaTypeStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOAreaTypeStyle *IO = new IOAreaTypeStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"LineTypeStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOLineTypeStyle *IO = new IOLineTypeStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"PointTypeStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOPointTypeStyle *IO = new IOPointTypeStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOVectorScaleRange::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -82,6 +107,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_scaleRange->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->layer->GetScaleRanges()->Adopt(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->layer = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -135,6 +163,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!scaleRange->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(scaleRange->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</VectorScaleRange>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOGridLayerDefinition.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOGridLayerDefinition.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOGridLayerDefinition.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,15 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, GridLayerDefinition);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, GridScaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ResourceId);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, FeatureName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Geometry);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, Filter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, Opacity);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridLayerDefinition::IOGridLayerDefinition():_layer(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -38,16 +47,29 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridLayerDefinition::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"GridLayerDefinition") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eGridLayerDefinition:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eGridScaleRange:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOGridScaleRange *IO = new IOGridScaleRange(this->_layer);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"GridScaleRange") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOGridScaleRange *IO = new IOGridScaleRange(this->_layer);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridLayerDefinition::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -68,6 +90,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_layer->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_layer = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -122,6 +147,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!gridLayer->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(gridLayer->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</GridLayerDefinition>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOGridColorBands.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOGridColorBands.cpp (revision 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOGridColorBands.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -0,0 +1,146 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Copyright (C) 2004-2006 Autodesk, Inc.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is free software; you can redistribute it and/or</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// modify it under the terms of version 2.1 of the GNU Lesser</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// General Public License as published by the Free Software Foundation.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is distributed in the hope that it will be useful,</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// but WITHOUT ANY WARRANTY; without even the implied warranty of</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Lesser General Public License for more details.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// You should have received a copy of the GNU Lesser General Public</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// License along with this library; if not, write to the Free Software</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "stdafx.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "IOGridColor.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "IOChannelBand.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "IOExtra.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace XERCES_CPP_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Bands);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, RedBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, GreenBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, BlueBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// IOGridColorBands</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+IOGridColorBands::IOGridColorBands():color(NULL),redChannel(NULL), greenChannel(NULL), blueChannel(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+IOGridColorBands::IOGridColorBands(GridColorRule * colorRule): IOGridColor(colorRule),color(NULL),</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ redChannel(NULL), greenChannel(NULL), blueChannel(NULL)</FONT></P>
<P><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+IOGridColorBands::~IOGridColorBands()</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void IOGridColorBands::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eBands:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->color = new GridColorBands();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eRedBand:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ redChannel = new ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOChannelBand* pIO = new IOChannelBand(redChannel, m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eGreenBand:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ greenChannel = new ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOChannelBand* pIO = new IOChannelBand(greenChannel, m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eBlueBand:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ blueChannel = new ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOChannelBand* pIO = new IOChannelBand(blueChannel, m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void IOGridColorBands::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void IOGridColorBands::EndElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->color->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->color->SetRedBand(*redChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->color->SetGreenBand(*greenChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->color->SetBlueBand(*blueChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->colorRule->AdoptGridColor(color);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->colorRule = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->color = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ delete this;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void IOGridColorBands::Write(MdfStream &fd, GridColorBands * pColor)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << "<Bands>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ inctab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::auto_ptr<IOChannelBand> spIO;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ spIO.reset(new IOChannelBand(L"RedBand")); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ spIO->Write(fd, &(pColor->GetRedBand()));</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ spIO.reset(new IOChannelBand(L"GreenBand")); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ spIO->Write(fd, &(pColor->GetGreenBand()));</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ spIO.reset(new IOChannelBand(L"BlueBand")); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ spIO->Write(fd, &(pColor->GetBlueBand()));</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pColor->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pColor->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << "</Bands>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Property changes on: E:\MgDev\OS\Common\MdfParser\IOGridColorBands.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">___________________________________________________________________</FONT>
<BR><FONT SIZE=2 FACE="Arial">Name: svn:eol-style</FONT>
<BR><FONT SIZE=2 FACE="Arial"> + native</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/SAX2ElementHandler.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/SAX2ElementHandler.cpp (revision 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/SAX2ElementHandler.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -0,0 +1,32 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Copyright (C) 2004-2006 Autodesk, Inc.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is free software; you can redistribute it and/or</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// modify it under the terms of version 2.1 of the GNU Lesser</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// General Public License as published by the Free Software Foundation.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is distributed in the hope that it will be useful,</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// but WITHOUT ANY WARRANTY; without even the implied warranty of</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Lesser General Public License for more details.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// You should have received a copy of the GNU Lesser General Public</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// License along with this library; if not, write to the Free Software</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "stdafx.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "SAX2ElementHandler.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "IOUnknown.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace XERCES_CPP_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void SAX2ElementHandler::ParseUnknownXml(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOUnknown *IO = new IOUnknown(&m_unknownXml);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Property changes on: E:\MgDev\OS\Common\MdfParser\SAX2ElementHandler.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">___________________________________________________________________</FONT>
<BR><FONT SIZE=2 FACE="Arial">Name: svn:eol-style</FONT>
<BR><FONT SIZE=2 FACE="Arial"> + native</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOGridColorStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOGridColorStyle.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOGridColorStyle.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -25,6 +25,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, ColorStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, HillShade);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ColorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, TransparencyColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, BrightnessFactor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, ContrastFactor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridColorStyle::IOGridColorStyle():colorStyle(NULL), scaleRange(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -40,23 +48,38 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridColorStyle::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"ColorStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eColorStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->colorStyle = new GridColorStyle();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eHillShade:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOHillShade *IO = new IOHillShade(this->colorStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eColorRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOGridColorRule *IO = new IOGridColorRule(this->colorStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"HillShade") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOHillShade *IO = new IOHillShade(this->colorStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"ColorRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOGridColorRule *IO = new IOGridColorRule(this->colorStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridColorStyle::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -73,6 +96,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->colorStyle->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange->AdoptColorStyle(this->colorStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -132,6 +158,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pColorStyle->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pColorStyle->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</ColorStyle>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/SAX2Parser.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/SAX2Parser.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/SAX2Parser.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -69,18 +69,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Unfortunately, the SAX2 Parser doesn't necessarily send all the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // characters that appear inside a tag in one call of characters()-</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // for example with escape characters it separates them into separate calls.</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // Therefore, m_strbuffer is used to accumulate the characters, openTag and</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // prevOpenTag are used to determine if we're still reading characters in the</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // same open tag, and tagOpen and charsInTag are used in the case when you have</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // no characters in between a tag (i.e. <Metadata></Metadata>) to make sure</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // that whitespace or line returns don't get assigned to it instead.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Therefore, m_strbuffer is used to accumulate the characters. tagOpen is</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // used in the case when you have characters outside a tag (i.e. <Metadata></Metadata>)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // to make sure that whitespace or line returns don't get assigned to it instead.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> std::wstring m_strbuffer;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ bool m_tagOpen;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">- std::wstring m_openTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- std::wstring m_prevOpenTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MdfString m_strParserError;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- bool m_tagOpen;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- bool m_charsInTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void WriteDefinition(MdfStream &fd,</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MapDefinition* map,</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOLineTypeStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOLineTypeStyle.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOLineTypeStyle.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, LineTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, LineRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOLineTypeStyle::IOLineTypeStyle()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_lineTypeStyle = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -42,17 +46,30 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOLineTypeStyle::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"LineTypeStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLineTypeStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->_lineTypeStyle = new LineTypeStyle(); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_lineTypeStyle = new LineTypeStyle();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLineRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOLineRule *IO = new IOLineRule(this->_lineTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"LineRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOLineRule *IO = new IOLineRule(this->_lineTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOLineTypeStyle::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -64,6 +81,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_lineTypeStyle->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange->GetFeatureTypeStyles()->Adopt(this->_lineTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -86,6 +106,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!lineTypeStyle->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(lineTypeStyle->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</LineTypeStyle>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOFeatureSource.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOFeatureSource.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOFeatureSource.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -26,6 +26,16 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "IOExtension.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "IOSupplementalSpatialContextInfo.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, FeatureSource);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Parameter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Extension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, SupplementalSpatialContextInfo);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Provider);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, ConfigurationDocument);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, LongTransaction);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOFeatureSource::IOFeatureSource()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : m_pFeatureSource(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -43,32 +53,45 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOFeatureSource::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"FeatureSource") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId) {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFeatureSource:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eParameter:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IONameStringPair *IO = new IONameStringPair(this->m_pFeatureSource);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eExtension:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOExtension *IO = new IOExtension(this->m_pFeatureSource);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eSupplementalSpatialContextInfo:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOSupplementalSpatialContextInfo *IO =</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ new IOSupplementalSpatialContextInfo(this->m_pFeatureSource);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Parameter") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IONameStringPair *IO = new IONameStringPair(this->m_pFeatureSource);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Extension") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOExtension *IO = new IOExtension(this->m_pFeatureSource);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"SupplementalSpatialContextInfo") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOSupplementalSpatialContextInfo *IO =</FONT>
<BR><FONT SIZE=2 FACE="Arial">- new IOSupplementalSpatialContextInfo(this->m_pFeatureSource);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOFeatureSource::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -85,6 +108,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_pFeatureSource->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_pFeatureSource = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -141,7 +167,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> spIO->Write(fd, pFeatureSource->GetExtensions()->GetAt(x));</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pFeatureSource->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pFeatureSource->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</FeatureSource>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IORelateProperty.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IORelateProperty.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IORelateProperty.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,11 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, RelateProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, FeatureClassProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, AttributeClassProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IORelateProperty::IORelateProperty()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : m_pRelateProperty(NULL), m_pAttributeRelate(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -39,10 +44,21 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IORelateProperty::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"RelateProperty") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eRelateProperty:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pRelateProperty = new RelateProperty();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -65,6 +81,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_pRelateProperty->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pAttributeRelate->GetRelateProperties()->Adopt(m_pRelateProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_pRelateProperty = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -89,7 +108,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(pRelateProperty->GetAttributeClassProperty());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</AttributeClassProperty>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pRelateProperty->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pRelateProperty->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</RelateProperty>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOUtil.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOUtil.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOUtil.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -73,5 +73,8 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return false;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::string startStr(const std::string elementName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::string endStr(const std::string elementName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> END_NAMESPACE_MDFPARSER</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #endif // _IOUTIL_H</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOAreaSymbolization2D.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOAreaSymbolization2D.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOAreaSymbolization2D.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,11 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, AreaSymbolization2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Fill);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Stroke);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOAreaSymbolization2D::IOAreaSymbolization2D()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_areaSymbolization = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -43,28 +48,43 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOAreaSymbolization2D::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"AreaSymbolization2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAreaSymbolization2D:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_areaSymbolization = new AreaSymbolization2D();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // delete the fill and edge that are created by default - recreate if present when parsing</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete this->_areaSymbolization->OrphanFill();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete this->_areaSymbolization->OrphanEdge();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFill:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_areaSymbolization->AdoptFill(new Fill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOFill *IO = new IOFill(this->_areaSymbolization->GetFill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eStroke:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_areaSymbolization->AdoptEdge(new Stroke());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOStroke *IO = new IOStroke(this->_areaSymbolization->GetEdge(), m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Fill") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->_areaSymbolization->AdoptFill(new Fill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOFill *IO = new IOFill(this->_areaSymbolization->GetFill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Stroke") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->_areaSymbolization->AdoptEdge(new Stroke());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOStroke *IO = new IOStroke(this->_areaSymbolization->GetEdge(), m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOAreaSymbolization2D::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -76,6 +96,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_areaSymbolization->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->_areaSymbolization != NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->areaRule->AdoptSymbolization(this->_areaSymbolization);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -99,6 +122,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (areaSymbolization != NULL && areaSymbolization->GetEdge() != NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOStroke::Write(fd, areaSymbolization->GetEdge(), "Stroke"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!areaSymbolization->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(areaSymbolization->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</AreaSymbolization2D>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOGridColor.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOGridColor.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOGridColor.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Color);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Bands);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ExplicitColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Band);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridColor::IOGridColor():colorRule(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -39,16 +45,29 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridColor::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Color") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eColor:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eBands:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOGridColorBands* pIO = new IOGridColorBands(colorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Bands") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOGridColorBands* pIO = new IOGridColorBands(colorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridColor::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -71,6 +90,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->colorRule->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->colorRule = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -107,95 +129,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete pIO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">- dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "</Color>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">-}</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-//</FONT>
<BR><FONT SIZE=2 FACE="Arial">-// IOGridColorBands</FONT>
<BR><FONT SIZE=2 FACE="Arial">-//</FONT>
<BR><FONT SIZE=2 FACE="Arial">-IOGridColorBands::IOGridColorBands():color(NULL),redChannel(NULL), greenChannel(NULL), blueChannel(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial">-{</FONT>
<BR><FONT SIZE=2 FACE="Arial">-}</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-IOGridColorBands::IOGridColorBands(GridColorRule * colorRule): IOGridColor(colorRule),color(NULL),</FONT>
<BR><FONT SIZE=2 FACE="Arial">- redChannel(NULL), greenChannel(NULL), blueChannel(NULL)</FONT></P>
<P><FONT SIZE=2 FACE="Arial">-{</FONT>
<BR><FONT SIZE=2 FACE="Arial">-}</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-IOGridColorBands::~IOGridColorBands()</FONT>
<BR><FONT SIZE=2 FACE="Arial">-{</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-}</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-void IOGridColorBands::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial">-{</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Bands") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pColor->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->color = new GridColorBands();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pColor->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"RedBand") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- redChannel = new ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOChannelBand* pIO = new IOChannelBand(redChannel, m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"GreenBand") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- greenChannel = new ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOChannelBand* pIO = new IOChannelBand(greenChannel, m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"BlueBand") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- blueChannel = new ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOChannelBand* pIO = new IOChannelBand(blueChannel, m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(pIO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- pIO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">-}</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">-void IOGridColorBands::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">-{</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-}</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-void IOGridColorBands::EndElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial">-{</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->color->SetRedBand(*redChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->color->SetGreenBand(*greenChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->color->SetBlueBand(*blueChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->colorRule->AdoptGridColor(color);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->colorRule = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->color = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">- delete this;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">-}</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">-void IOGridColorBands::Write(MdfStream &fd, GridColorBands * pColor)</FONT>
<BR><FONT SIZE=2 FACE="Arial">-{</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<Bands>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- inctab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- std::auto_ptr<IOChannelBand> spIO;</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- spIO.reset(new IOChannelBand(L"RedBand")); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- spIO->Write(fd, &(pColor->GetRedBand()));</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- spIO.reset(new IOChannelBand(L"GreenBand")); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- spIO->Write(fd, &(pColor->GetGreenBand()));</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- spIO.reset(new IOChannelBand(L"BlueBand")); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- spIO->Write(fd, &(pColor->GetBlueBand()));</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "</Bands>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << "</Color>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOFill.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOFill.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOFill.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Fill);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, FillPattern);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ForegroundColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, BackgroundColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOFill::IOFill()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_fill = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -39,8 +45,21 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOFill::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Fill") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFill:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOFill::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -57,6 +76,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_fill->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_fill = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -84,6 +106,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(fill->GetBackgroundColor());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</BackgroundColor>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!fill->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(fill->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</Fill>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOAreaTypeStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOAreaTypeStyle.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOAreaTypeStyle.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, AreaTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, AreaRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOAreaTypeStyle::IOAreaTypeStyle()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_areaTypeStyle = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -42,17 +46,30 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOAreaTypeStyle::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"AreaTypeStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAreaTypeStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_areaTypeStyle = new AreaTypeStyle();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAreaRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOAreaRule *IO = new IOAreaRule(this->_areaTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"AreaRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOAreaRule *IO = new IOAreaRule(this->_areaTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOAreaTypeStyle::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -64,6 +81,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_areaTypeStyle->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange->GetFeatureTypeStyles()->Adopt(this->_areaTypeStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -86,6 +106,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!areaTypeStyle->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(areaTypeStyle->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</AreaTypeStyle>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOHillShade.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOHillShade.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOHillShade.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, HillShade);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Band);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Azimuth);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Altitude);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, ScaleFactor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOHillShade::IOHillShade():colorStyle(NULL),hillShade(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -37,10 +44,21 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOHillShade::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"HillShade") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eHillShade:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->hillShade = new HillShade();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -60,6 +78,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->hillShade->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->colorStyle->AdoptHillShade(this->hillShade);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->colorStyle = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -97,6 +118,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</ScaleFactor>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pHillShade->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pHillShade->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</HillShade>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOChannelBand.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOChannelBand.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOChannelBand.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,18 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// From Grid Color - Start Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, RedBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, GreenBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, BlueBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Local Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Band);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, LowBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, HighBand);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, LowChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, HighChannel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOChannelBand::IOChannelBand(const std::wstring &strElemName)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : m_pChannel(NULL), m_strElemName(strElemName)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -39,11 +51,24 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOChannelBand::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == m_strElemName)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eRedBand:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eGreenBand:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eBlueBand:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (NULL == this->m_pChannel)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pChannel = new ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -70,6 +95,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_pChannel->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_pChannel = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -115,6 +143,11 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</HighChannel>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pChannel->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pChannel->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</" << EncodeString(this->m_strElemName) << '>' << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOAreaRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOAreaRule.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOAreaRule.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, AreaRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, AreaSymbolization2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Label);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, LegendLabel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Filter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOAreaRule::IOAreaRule()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_areaRule = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -43,24 +50,38 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOAreaRule::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"AreaRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAreaRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_areaRule = new AreaRule();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAreaSymbolization2D:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOAreaSymbolization2D *IO = new IOAreaSymbolization2D(this->_areaRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLabel:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOLabel *IO = new IOLabel(this->_areaRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"AreaSymbolization2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOAreaSymbolization2D *IO = new IOAreaSymbolization2D(this->_areaRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Label") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOLabel *IO = new IOLabel(this->_areaRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOAreaRule::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -75,6 +96,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_areaRule->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->areaTypeStyle->GetRules()->Adopt(this->_areaRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->areaTypeStyle= NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -116,6 +140,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IO->Write(fd, symbolization);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!areaRule->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(areaRule->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</AreaRule>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IODrawingLayerDefinition.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IODrawingLayerDefinition.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IODrawingLayerDefinition.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,15 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, DrawingLayerDefinition);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Opacity);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ResourceId);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Sheet);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, LayerFilter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, MinScale);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, MaxScale);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IODrawingLayerDefinition::IODrawingLayerDefinition()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_layer = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -40,9 +49,20 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IODrawingLayerDefinition::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"DrawingLayerDefinition") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eDrawingLayerDefinition:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -66,6 +86,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_layer->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_layer = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -123,6 +146,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</MaxScale>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!drawingLayer->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(drawingLayer->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</DrawingLayerDefinition>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOPointSymbolization2D.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOPointSymbolization2D.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOPointSymbolization2D.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -28,6 +28,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, PointSymbolization2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Mark);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Image);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Font);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, W2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, Block);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOPointSymbolization2D::IOPointSymbolization2D()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_PointSymbolization2D = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -49,23 +57,37 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOPointSymbolization2D::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"PointSymbolization2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (m_currElemId == ePointSymbolization2D)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_PointSymbolization2D = new PointSymbolization2D();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ else if (m_currElemId == eUnknown)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> else</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Mark") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eMark:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->ioSymbol = new IOMarkSymbol();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Image") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eImage:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->ioSymbol = new IOImageSymbol();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Font") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFont:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->ioSymbol = new IOFontSymbol();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"W2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eW2D:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->ioSymbol = new IOW2DSymbol();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Block") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eBlock:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->ioSymbol = new IOBlockSymbol();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->ioSymbol)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->push(this->ioSymbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -84,6 +106,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->_PointSymbolization2D != NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_PointSymbolization2D->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->pointRule->AdoptSymbolization(this->_PointSymbolization2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->ioSymbol != NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -122,6 +147,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> else if (blockSymbol)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOBlockSymbol::Write(fd, blockSymbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!PointSymbolization2D->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(PointSymbolization2D->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</PointSymbolization2D>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOExtension.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOExtension.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOExtension.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Extension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, CalculatedProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, AttributeRelate);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, FeatureClass);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOExtension::IOExtension()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : m_pExtension(NULL), m_pFeatureSource(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -41,26 +48,37 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOExtension::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Extension") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_pExtension = new Extension();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId) {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eExtension:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_pExtension = new Extension();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eCalculatedProperty:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOCalculatedProperty *IO = new IOCalculatedProperty(this->m_pExtension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAttributeRelate:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOAttributeRelate *IO = new IOAttributeRelate(this->m_pExtension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"CalculatedProperty") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOCalculatedProperty *IO = new IOCalculatedProperty(this->m_pExtension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"AttributeRelate") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOAttributeRelate *IO = new IOAttributeRelate(this->m_pExtension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOExtension::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -75,6 +93,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_pExtension->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pFeatureSource->GetExtensions()->Adopt(m_pExtension);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_pExtension = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -112,7 +133,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> spIO->Write(fd, pExtension->GetAttributeRelates()->GetAt(x));</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pExtension->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pExtension->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</Extension>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOGridColorRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOGridColorRule.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOGridColorRule.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -25,6 +25,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, ColorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Color);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Label);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, LegendLabel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Filter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridColorRule::IOGridColorRule():colorStyle(NULL), colorRule(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -40,23 +47,38 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridColorRule::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"ColorRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eColorRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->colorRule = new GridColorRule();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eColor:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOGridColor *IO = new IOGridColor(this->colorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLabel:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOLabel *IO = new IOLabel(this->colorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Color") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOGridColor *IO = new IOGridColor(this->colorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Label") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOLabel *IO = new IOLabel(this->colorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridColorRule::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -71,6 +93,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->colorRule->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->colorStyle->GetRules()->Adopt(this->colorRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->colorStyle = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -110,6 +135,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> pIO->Write(fd, pColorRule->GetGridColor());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete pIO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pColorRule->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pColorRule->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</ColorRule>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOUtil.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOUtil.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOUtil.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -159,4 +159,20 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return std::string("false"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+std::string startStr(const std::string elementName)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::string out("<"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ out.append(elementName); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ out.append(">"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ return out;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+std::string endStr(const std::string elementName)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::string out("</"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ out.append(elementName); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ out.append(">"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ return out;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> END_NAMESPACE_MDFPARSER</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOLineRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOLineRule.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOLineRule.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, LineRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, LineSymbolization2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Label);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, LegendLabel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Filter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOLineRule::IOLineRule()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_lineRule = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -43,23 +50,38 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOLineRule::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"LineRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLineRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_lineRule = new LineRule();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLineSymbolization2D:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOLineSymbolization2D *IO = new IOLineSymbolization2D(this->_lineRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLabel:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOLabel *IO = new IOLabel(this->_lineRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"LineSymbolization2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOLineSymbolization2D *IO = new IOLineSymbolization2D(this->_lineRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Label") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOLabel *IO = new IOLabel(this->_lineRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOLineRule::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -74,6 +96,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_lineRule->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->lineTypeStyle->GetRules()->Adopt(this->_lineRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->lineTypeStyle= NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -116,6 +141,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!lineRule->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(lineRule->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</LineRule>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOW2DSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOW2DSymbol.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOW2DSymbol.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -25,6 +25,23 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // When a W2DSymbol is successfully parsed by this class, it must be accessed by the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // parent class and then managed appropriately. It will not be deleted by this class.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Inherited Symbol Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, SizeContext);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, SizeX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, SizeY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, InsertionPointX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, InsertionPointY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, Rotation);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, MaintainAspect);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Local Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(9, W2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(10, W2DSymbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(11, FillColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(12, LineColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(13, TextColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOW2DSymbol::IOW2DSymbol() : IOSymbol()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_ioResourceRef = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -33,17 +50,30 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOW2DSymbol::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (this->m_currElemName == L"W2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eW2D:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_symbol = new W2DSymbol(L"", L"");</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eW2DSymbol:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_ioResourceRef = new IOResourceRef(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(this->m_ioResourceRef);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_ioResourceRef->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (this->m_currElemName == L"W2DSymbol") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_ioResourceRef = new IOResourceRef(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(this->m_ioResourceRef);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_ioResourceRef->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOW2DSymbol::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -63,6 +93,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_symbol->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // copy the values found by the IOResourceRef into our symbol</FONT>
<BR><FONT SIZE=2 FACE="Arial"> W2DSymbol* symbol = static_cast<W2DSymbol*>(this->m_symbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->m_ioResourceRef)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -112,6 +145,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</TextColor>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!symbol->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(symbol->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</W2D>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOFontSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOFontSymbol.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOFontSymbol.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -25,13 +25,43 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // When a FontSymbol is successfully parsed by this class, it must be accessed by the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // parent class and then managed appropriately. It will not be deleted by this class.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Inherited Symbol Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, SizeContext);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, SizeX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, SizeY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, InsertionPointX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, InsertionPointY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, Rotation);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, MaintainAspect);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Local Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(9, Font);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(10, FontName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(11, Character);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(12, Bold);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(13, Italic);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(14, Underlined);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(15, ForegroundColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOFontSymbol::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (this->m_currElemName == L"Font") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFont:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_symbol = new FontSymbol();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -58,6 +88,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_symbol->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -112,6 +145,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(symbol->GetForegroundColor());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</ForegroundColor>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!symbol->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(symbol->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</Font>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOLineSymbolization2D.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOLineSymbolization2D.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOLineSymbolization2D.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, LineSymbolization2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, LineStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Thickness);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Color);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOLineSymbolization2D::IOLineSymbolization2D()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_lineSymbolization = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -42,10 +49,21 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOLineSymbolization2D::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"LineSymbolization2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLineSymbolization2D:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_lineSymbolization = new LineSymbolization2D();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -68,6 +86,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_lineSymbolization->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->lineRule->GetSymbolizations()->Adopt(this->_lineSymbolization);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->lineRule= NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -81,5 +102,38 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: Stroke</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (lineSymbolization->GetStroke())</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOStroke::Write(fd, lineSymbolization->GetStroke(), "LineSymbolization2D"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sLineSymbolization2D) << std::endl;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ inctab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ //Property: LineStyle</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sLineStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << EncodeString(lineSymbolization->GetStroke()->GetLineStyle());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sLineStyle) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ //Property: Thickness</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sThickness);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << EncodeString(lineSymbolization->GetStroke()->GetThickness());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sThickness) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ //Property: ForegroundColor</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << EncodeString(lineSymbolization->GetStroke()->GetColor());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sColor) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ //Property: Unit</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sUnit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::auto_ptr<MdfString> str(LengthConverter::UnitToEnglish(lineSymbolization->GetStroke()->GetUnit()));</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << EncodeString(*str);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sUnit) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!lineSymbolization->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(lineSymbolization->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << endStr(sLineSymbolization2D) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/FSDSAX2Parser.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/FSDSAX2Parser.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/FSDSAX2Parser.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -69,19 +69,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Unfortunately, the SAX2 Parser doesn't necessarily send all the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // characters that appear inside a tag in one call of characters()-</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // for example with escape characters it separates them into separate calls.</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // Therefore, m_strbuffer is used to accumulate the characters, openTag and</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // prevOpenTag are used to determine if we're still reading characters in the </FONT>
<BR><FONT SIZE=2 FACE="Arial">- // same open tag, and tagOpen and charsInTag are used in the case when you have </FONT>
<BR><FONT SIZE=2 FACE="Arial">- // no characters in between a tag (i.e. <Metadata></Metadata>) to make sure</FONT>
<BR><FONT SIZE=2 FACE="Arial">- // that whitespace or line returns don't get assigned to it instead.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Therefore, m_strbuffer is used to accumulate the characters. tagOpen is</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // used in the case when you have characters outside a tag (i.e. <Metadata></Metadata>)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // to make sure that whitespace or line returns don't get assigned to it instead.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> std::wstring m_strbuffer;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- </FONT>
<BR><FONT SIZE=2 FACE="Arial">- std::wstring m_openTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- std::wstring m_prevOpenTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- MdfString m_strParserError;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> bool m_tagOpen;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- bool m_charsInTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MdfString m_strParserError;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void WriteDefinition(FeatureSource *pFeatureSource, MdfStream &fd);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> // error handling override</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOUnknown.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOUnknown.h (revision 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOUnknown.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -0,0 +1,43 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Copyright (C) 2004-2006 Autodesk, Inc.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is free software; you can redistribute it and/or</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// modify it under the terms of version 2.1 of the GNU Lesser</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// General Public License as published by the Free Software Foundation.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is distributed in the hope that it will be useful,</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// but WITHOUT ANY WARRANTY; without even the implied warranty of</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Lesser General Public License for more details.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// You should have received a copy of the GNU Lesser General Public</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// License along with this library; if not, write to the Free Software</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#ifndef _IOUNKNOWN_H</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#define _IOUNKNOWN_H</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "SAX2ElementHandler.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace XERCES_CPP_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+BEGIN_NAMESPACE_MDFPARSER</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class IOUnknown : public SAX2ElementHandler</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ private:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::wstring* _xml;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ public:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOUnknown(std::wstring* xml);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ~IOUnknown();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ virtual void StartElement(const wchar_t *name, HandlerStack *handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ virtual void ElementChars(const wchar_t *ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ virtual void EndElement(const wchar_t *name, HandlerStack *handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+};</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+END_NAMESPACE_MDFPARSER</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#endif // _IOUNKNOWN_H</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Property changes on: E:\MgDev\OS\Common\MdfParser\IOUnknown.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">___________________________________________________________________</FONT>
<BR><FONT SIZE=2 FACE="Arial">Name: svn:eol-style</FONT>
<BR><FONT SIZE=2 FACE="Arial"> + native</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOStroke.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOStroke.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOStroke.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Stroke);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, LineStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Thickness);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Color);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOStroke::IOStroke(std::wstring elementName)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_stroke = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -42,9 +49,25 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOStroke::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Note: this->m_elementName is not part of the Element Map, so the</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // eStroke value is substituted - but sStroke will not be the correct</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // string, and cannot not be used in place of m_elementName.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_currElemName == this->m_elementName)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = eStroke;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ else</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (eUnknown == m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOStroke::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -66,6 +89,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_stroke->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_stroke = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -99,6 +125,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(*str);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</Unit>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!stroke->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(stroke->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</" << name << ">" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOImageSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOImageSymbol.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOImageSymbol.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -25,6 +25,20 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // When a ImageSymbol is successfully parsed by this class, it must be accessed by the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // parent class and then managed appropriately. It will not be deleted by this class.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Inherited Symbol Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, SizeContext);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, SizeX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, SizeY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, InsertionPointX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, InsertionPointY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, Rotation);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, MaintainAspect);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Local Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(9, Image);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(10, Content);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOImageSymbol::IOImageSymbol() : IOSymbol()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_ioResourceRef = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -33,6 +47,8 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOImageSymbol::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // it's a pain to have the "Image" element contain an "Image" element</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->m_currElemName == L"Image" && this->m_startElemName != L"Image") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -45,6 +61,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->push(this->m_ioResourceRef);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_ioResourceRef->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ else if (eUnknown == m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOImageSymbol::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -60,6 +80,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_symbol->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // copy the values found by the IOResourceRef into our symbol</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ImageSymbol* symbol = static_cast<ImageSymbol*>(this->m_symbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->m_ioResourceRef)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -95,6 +118,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</Content>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!symbol->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(symbol->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</Image>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOVectorLayerDefinition.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOVectorLayerDefinition.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOVectorLayerDefinition.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,11 +24,26 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, VectorLayerDefinition);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, PropertyMapping);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, VectorScaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, Opacity);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, ResourceId);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, FeatureName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, FeatureNameType);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, Geometry);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(9, Url);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(10, ToolTip);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(11, Filter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOVectorLayerDefinition::IOVectorLayerDefinition()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_layer = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOVectorLayerDefinition::IOVectorLayerDefinition(VectorLayerDefinition *layer)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_layer = layer;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -41,53 +56,88 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOVectorLayerDefinition::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"VectorLayerDefinition") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId) {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eVectorLayerDefinition:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case ePropertyMapping:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IONameStringPair *IO = new IONameStringPair(this->_layer);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eVectorScaleRange:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOVectorScaleRange *IO = new IOVectorScaleRange(this->_layer);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"PropertyMapping") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IONameStringPair *IO = new IONameStringPair(this->_layer);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"VectorScaleRange") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOVectorScaleRange *IO = new IOVectorScaleRange(this->_layer);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOVectorLayerDefinition::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"Opacity") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (this->_layer)->SetOpacity(wstrToDouble(ch));</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"ResourceId") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (this->_layer)->SetResourceID(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"FeatureName") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (this->_layer)->SetFeatureName(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"FeatureNameType") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (::wcscmp(ch, L"FeatureClass") == 0) // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- _layer->SetFeatureNameType(VectorLayerDefinition::FeatureClass);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (::wcscmp(ch, L"NamedExtension") == 0) // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- _layer->SetFeatureNameType(VectorLayerDefinition::NamedExtension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId) {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eOpacity:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (this->_layer)->SetOpacity(wstrToDouble(ch));</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eResourceId:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (this->_layer)->SetResourceID(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFeatureName:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (this->_layer)->SetFeatureName(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFeatureNameType:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (::wcscmp(ch, L"FeatureClass") == 0) // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _layer->SetFeatureNameType(VectorLayerDefinition::FeatureClass);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ else if (::wcscmp(ch, L"NamedExtension") == 0) // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _layer->SetFeatureNameType(VectorLayerDefinition::NamedExtension);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eGeometry:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (this->_layer)->SetGeometry(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUrl:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (this->_layer)->SetUrl(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eToolTip:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (this->_layer)->SetToolTip(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFilter:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (this->_layer)->SetFilter(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Geometry") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (this->_layer)->SetGeometry(ch); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Url") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (this->_layer)->SetUrl(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"ToolTip") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (this->_layer)->SetToolTip(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Filter") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (this->_layer)->SetFilter(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOVectorLayerDefinition::EndElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_layer->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_layer = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -100,74 +150,74 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "<LayerDefinition xmlns:xsi=\"<A HREF="http://www.w3.org/2001/XMLSchema-instance\">http://www.w3.org/2001/XMLSchema-instance\</A>" xmlns:xsd=\"<A HREF="http://www.w3.org/2001/XMLSchema\">http://www.w3.org/2001/XMLSchema\</A>" xsi:noNamespaceSchemaLocation=\"LayerDefinition-1.0.0.xsd\" version=\"1.0.0\">" << std::endl; // NOXLATE</FONT></P>
<P><FONT SIZE=2 FACE="Arial"> inctab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<VectorLayerDefinition>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sVectorLayerDefinition) << std::endl;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> inctab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: ResourceId</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<ResourceId>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sResourceId); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(featureLayer->GetResourceID());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</ResourceId>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sResourceId) << std::endl;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: Opacity (optional)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (featureLayer->GetOpacity() != 1.0)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<Opacity>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sOpacity); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << DoubleToStr(featureLayer->GetOpacity());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</Opacity>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sOpacity) << std::endl;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: FeatureName</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<FeatureName>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sFeatureName); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(featureLayer->GetFeatureName());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</FeatureName>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sFeatureName) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: FeatureNameType</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<FeatureNameType>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sFeatureNameType); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (featureLayer->GetFeatureNameType() == VectorLayerDefinition::FeatureClass)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "FeatureClass"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> else</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "NamedExtension"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</FeatureNameType>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sFeatureNameType) << std::endl;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: Filter</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (featureLayer->GetFilter().length() > 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<Filter>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sFilter); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(featureLayer->GetFilter());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</Filter>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sFilter) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: PropertyMappings</FONT>
<BR><FONT SIZE=2 FACE="Arial"> for (int x = 0; x < featureLayer->GetPropertyMappings()->GetCount(); x++)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<PropertyMapping>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sPropertyMapping) << std::endl;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> inctab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IONameStringPair * IO = new IONameStringPair();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IO->Write(fd, featureLayer->GetPropertyMappings()->GetAt(x));</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "</PropertyMapping>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << endStr(sPropertyMapping) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: Geometry</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<Geometry>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sGeometry); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(featureLayer->GetGeometry());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</Geometry>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sGeometry) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: Url</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (featureLayer->GetUrl().length() > 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<Url>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sUrl); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(featureLayer->GetUrl());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</Url>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sUrl) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: ToolTip</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (featureLayer->GetToolTip().length() > 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "<ToolTip>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << startStr(sToolTip); </FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(featureLayer->GetToolTip());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << "</ToolTip>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << endStr(sToolTip) << std::endl; </FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Property: VectorScaleRange</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -178,8 +228,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!featureLayer->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(featureLayer->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- fd << tab() << "</VectorLayerDefinition>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << tab() << endStr(sVectorLayerDefinition) << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</LayerDefinition>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOSupplementalSpatialContextInfo.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOSupplementalSpatialContextInfo.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOSupplementalSpatialContextInfo.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, SupplementalSpatialContextInfo);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, CoordinateSystem);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOSupplementalSpatialContextInfo::IOSupplementalSpatialContextInfo()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : _ssContextInfo(NULL), featureSource(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -40,13 +44,24 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOSupplementalSpatialContextInfo::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (NULL != featureSource)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"SupplementalSpatialContextInfo") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eSupplementalSpatialContextInfo:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (NULL != featureSource)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_ssContextInfo = new SupplementalSpatialContextInfo(L"", L"");</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -62,6 +77,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_ssContextInfo->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (NULL != this->featureSource)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->featureSource->GetSupplementalSpatialContextInfo()->Adopt(this->_ssContextInfo);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -83,4 +101,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "<CoordinateSystem>"; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(ssContextInfo->GetCoordinateSystem());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</CoordinateSystem>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!ssContextInfo->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(ssContextInfo->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOGridScaleRange.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOGridScaleRange.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOGridScaleRange.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -27,6 +27,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, GridScaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, SurfaceStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ColorStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, MinScale);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, MaxScale);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, RebuildFactor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridScaleRange::IOGridScaleRange():_scaleRange(NULL), layer(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -42,25 +50,37 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridScaleRange::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"GridScaleRange") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eGridScaleRange:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_scaleRange = new GridScaleRange();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"SurfaceStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eSurfaceStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridSurfaceStyle *IO = new IOGridSurfaceStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"ColorStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eColorStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridColorStyle *IO = new IOGridColorStyle(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -78,6 +98,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_scaleRange->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->layer->GetScaleRanges()->Adopt(this->_scaleRange);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->layer = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -131,6 +154,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << DoubleToStr(scaleRange->GetRebuildFactor());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</RebuildFactor>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!scaleRange->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(scaleRange->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</GridScaleRange>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOGridSurfaceStyle.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOGridSurfaceStyle.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOGridSurfaceStyle.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, SurfaceStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, Band);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, ZeroValue);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, ScaleFactor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, DefaultColor);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridSurfaceStyle::IOGridSurfaceStyle():surfaceStyle(NULL), scaleRange(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -38,10 +45,21 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOGridSurfaceStyle::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"SurfaceStyle") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eSurfaceStyle:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->surfaceStyle = new GridSurfaceStyle();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -61,7 +79,10 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- //this->scaleRange->GetGridStyles()->Adopt(this->surfaceStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->surfaceStyle->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ //this->scaleRange->GetGridStyles()->Adopt(this->surfaceStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange->AdoptSurfaceStyle(this->surfaceStyle);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->scaleRange = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -102,6 +123,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << EncodeString(pSurfaceStyle->GetDefaultColor());</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << "</DefaultColor>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pSurfaceStyle->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pSurfaceStyle->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</SurfaceStyle>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOMarkSymbol.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOMarkSymbol.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOMarkSymbol.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -27,6 +27,23 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // When a MarkSymbol is successfully parsed by this class, it must be accessed by the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // parent class and then managed appropriately. It will not be deleted by this class.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Inherited Symbol Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, Unit);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, SizeContext);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, SizeX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, SizeY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, InsertionPointX);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, InsertionPointY);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, Rotation);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, MaintainAspect);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Local Elements</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(9, Mark);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(10, Fill);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(11, Edge);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(12, Shape);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOMarkSymbol::IOMarkSymbol() : IOSymbol()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_ioStroke = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -36,30 +53,47 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOMarkSymbol::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (this->m_currElemName == L"Mark") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- MarkSymbol* markSymbol = new MarkSymbol(MarkSymbol::Square);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- delete markSymbol->OrphanFill();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- delete markSymbol->OrphanEdge();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_symbol = markSymbol;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eMark:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MarkSymbol* markSymbol = new MarkSymbol(MarkSymbol::Square);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ delete markSymbol->OrphanFill();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ delete markSymbol->OrphanEdge();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_symbol = markSymbol;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eFill:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MarkSymbol* symbol = static_cast<MarkSymbol*>(this->m_symbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ symbol->AdoptFill(new Fill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_ioFill = new IOFill(symbol->GetFill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(this->m_ioFill);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_ioFill->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eEdge:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MarkSymbol* symbol = static_cast<MarkSymbol*>(this->m_symbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ symbol->AdoptEdge(new Stroke());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_ioStroke = new IOStroke(symbol->GetEdge(), this->m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(this->m_ioStroke);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_ioStroke->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (this->m_currElemName == L"Fill") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- MarkSymbol* symbol = static_cast<MarkSymbol*>(this->m_symbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- symbol->AdoptFill(new Fill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_ioFill = new IOFill(symbol->GetFill());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(this->m_ioFill);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_ioFill->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (this->m_currElemName == L"Edge") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- MarkSymbol* symbol = static_cast<MarkSymbol*>(this->m_symbol);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- symbol->AdoptEdge(new Stroke());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_ioStroke = new IOStroke(symbol->GetEdge(), this->m_currElemName);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(this->m_ioStroke);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- this->m_ioStroke->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOMarkSymbol::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -88,6 +122,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (this->m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_symbol->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_startElemName = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -124,6 +161,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (symbol->GetEdge() != NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOStroke::Write(fd, symbol->GetEdge(), "Edge"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!symbol->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(symbol->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</Mark>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOPointRule.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOPointRule.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOPointRule.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, PointRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, PointSymbolization2D);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, Label);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, LegendLabel);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Filter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOPointRule::IOPointRule()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_pointRule = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -43,23 +50,38 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOPointRule::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"PointRule") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case ePointRule:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->_pointRule = new PointRule();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case ePointSymbolization2D:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOPointSymbolization2D *IO = new IOPointSymbolization2D(this->_pointRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eLabel:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOLabel *IO = new IOLabel(this->_pointRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"PointSymbolization2D") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOPointSymbolization2D *IO = new IOPointSymbolization2D(this->_pointRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else if (m_currElemName == L"Label") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IOLabel *IO = new IOLabel(this->_pointRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOPointRule::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -74,6 +96,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->_pointRule->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->pointTypeStyle->GetRules()->Adopt(this->_pointRule);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->pointTypeStyle= NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -117,6 +142,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> delete IO;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pointRule->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pointRule->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</PointRule>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/FSDSAX2Parser.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/FSDSAX2Parser.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/FSDSAX2Parser.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -28,6 +28,8 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> FSDSAX2Parser::FSDSAX2Parser()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_tagOpen = false;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> Flush();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> Initialize();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -61,7 +63,6 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_Parser->setFeature(XMLUni::fgSAX2CoreValidation, false);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_Parser->setContentHandler(this);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_Parser->setErrorHandler(this);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_prevOpenTag = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_strbuffer = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -171,7 +172,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> const Attributes& attributes)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> std::wstring str = X2W(localname);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_openTag = str;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_strbuffer = L""; // discard any text between start tags</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_tagOpen = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // If the stack is empty, then check to see if we've encountered the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // start of one of the below definitions. Allocate space for the object</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // we will be creating, create the appropriate IO object, passing in the reference</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -193,29 +196,15 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> (m_HandlerStack->top())->StartElement(str.c_str(), m_HandlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_tagOpen = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_charsInTag = false;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void FSDSAX2Parser::characters(const XMLCh* const chars</FONT>
<BR><FONT SIZE=2 FACE="Arial"> , const unsigned int length)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_openTag.compare(m_prevOpenTag) != 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (!m_HandlerStack->empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_charsInTag)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (m_HandlerStack->top())->ElementChars(m_strbuffer.c_str());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_strbuffer = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_strbuffer += X2W(chars);</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_prevOpenTag = m_openTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // The character data may be split into multiple calls, so just store it for now.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Also, do not record text outside of start/end tags</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_tagOpen)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_charsInTag = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_strbuffer += X2W(chars);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void FSDSAX2Parser::endElement(const XMLCh* const uri,</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -223,9 +212,15 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> const XMLCh* const qname)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_tagOpen = false;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_prevOpenTag = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (!m_HandlerStack->empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Now is the time to make the ElementChars() call.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!m_strbuffer.empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (m_HandlerStack->top())->ElementChars(m_strbuffer.c_str());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_strbuffer = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> (m_HandlerStack->top())->EndElement(X2W(localname), m_HandlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOUnknown.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOUnknown.cpp (revision 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOUnknown.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -0,0 +1,71 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Copyright (C) 2004-2006 Autodesk, Inc.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is free software; you can redistribute it and/or</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// modify it under the terms of version 2.1 of the GNU Lesser</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// General Public License as published by the Free Software Foundation.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is distributed in the hope that it will be useful,</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// but WITHOUT ANY WARRANTY; without even the implied warranty of</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Lesser General Public License for more details.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// You should have received a copy of the GNU Lesser General Public</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// License along with this library; if not, write to the Free Software</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "stdafx.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "IOUnknown.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace XERCES_CPP_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+IOUnknown::IOUnknown(std::wstring* xml)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml = xml;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_startElemName.clear();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+IOUnknown::~IOUnknown()</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void IOUnknown::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (m_startElemName.empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml->append(L"<"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml->append(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml->append(L">"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ else</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOUnknown *IO = new IOUnknown(_xml);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void IOUnknown::ElementChars(const wchar_t *ch)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml->append(ch);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void IOUnknown::EndElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml->append(L"</"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml->append(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _xml->append(L">"); // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ delete this;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Property changes on: E:\MgDev\OS\Common\MdfParser\IOUnknown.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">___________________________________________________________________</FONT>
<BR><FONT SIZE=2 FACE="Arial">Name: svn:eol-style</FONT>
<BR><FONT SIZE=2 FACE="Arial"> + native</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/Makefile.am</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/Makefile.am (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/Makefile.am (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -27,6 +27,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOFill.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOFontSymbol.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridColor.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOGridColorBands.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridColorRule.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridColorStyle.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOGridLayerDefinition.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -53,11 +54,13 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOStroke.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOSupplementalSpatialContextInfo.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOSymbol.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOUnknown.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOUtil.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOVectorLayerDefinition.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOVectorScaleRange.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOW2DSymbol.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MdfParser.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ SAX2ElementHandler.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> SAX2Parser.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> noinst_HEADERS = \</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -105,6 +108,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOStroke.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOSupplementalSpatialContextInfo.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOSymbol.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ IOUnknown.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOUtil.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOVectorLayerDefinition.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOVectorScaleRange.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/IOAttributeRelate.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/IOAttributeRelate.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/IOAttributeRelate.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -24,6 +24,16 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFPARSER_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+CREATE_ELEMENT_MAP;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(1, AttributeRelate);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(2, RelateProperty);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(3, AttributeClass);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(4, ResourceId);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(5, Name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(6, AttributeNameDelimiter);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(7, RelateType);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ELEM_MAP_ENTRY(8, ForceOneToOne);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IOAttributeRelate::IOAttributeRelate()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> : m_pAttributeRelate(NULL), m_pExtension(NULL)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -41,19 +51,29 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> void IOAttributeRelate::StartElement(const wchar_t *name, HandlerStack *handlerStack)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_currElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"AttributeRelate") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_currElemId = _ElementIdFromName(name);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ switch (m_currElemId)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eAttributeRelate:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_startElemName = name;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pAttributeRelate = new AttributeRelate();</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- else</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_currElemName == L"RelateProperty") // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eRelateProperty:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IORelateProperty *IO = new IORelateProperty(this->m_pAttributeRelate);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->push(IO);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> IO->StartElement(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ case eUnknown:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ParseUnknownXml(name, handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ default:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ break;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -77,6 +97,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_startElemName == name)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!UnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_pAttributeRelate->SetUnknownXml(UnknownXml());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_pExtension->GetAttributeRelates()->Adopt(m_pAttributeRelate);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> handlerStack->pop();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> this->m_pAttributeRelate = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -127,6 +150,12 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> spIO->Write(fd, pAttributeRelate->GetRelateProperties()->GetAt(x));</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Write any previously found unknown XML</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!pAttributeRelate->GetUnknownXml().empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ fd << toCString(pAttributeRelate->GetUnknownXml()); </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> dectab();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> fd << tab() << "</AttributeRelate>" << std::endl; // NOXLATE</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/SAX2ElementHandler.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/SAX2ElementHandler.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/SAX2ElementHandler.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,7 +20,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include <string></FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include <stack></FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include <vector></FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfParser.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "UnicodeString.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace XERCES_CPP_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -44,20 +46,57 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> class MDFPARSER_API SAX2ElementHandler {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial">- virtual ~SAX2ElementHandler() {};</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ virtual ~SAX2ElementHandler() {}</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> virtual void StartElement(const wchar_t *name, HandlerStack *handlerStack) = 0;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> virtual void ElementChars(const wchar_t *ch) = 0;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> virtual void EndElement(const wchar_t *name, HandlerStack *handlerStack) = 0;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> protected:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ void ParseUnknownXml(const wchar_t *name, HandlerStack *handlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::wstring& UnknownXml() { return m_unknownXml; }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::wstring m_unknownXml;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // m_startElemName stores the name of the XML tag that initiated</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // the creation of this SAX2ElementHandler object.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> std::wstring m_startElemName;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // m_currElemName stores the name of the last XML start tag.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> std::wstring m_currElemName;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+ int m_currElemId;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> };</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">+// For each element type, the following macros define a method, _ElementIdFromName()</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// and two variables, eElementName - an integer ID which can be used in case</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// statements, and sElementName - a std::string which can be used in serialization.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// CREATE_ELEMENT_MAP is called first, and then ELEM_MAP_ENTRY for each element</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// type. The IDs provided to ELEM_MAP_ENTRY must be consecutive, starting from 1.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#define CREATE_ELEMENT_MAP \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ static std::vector<std::wstring> _elementMap; \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ static std::string _CreateMapEntry(const wchar_t* wName, const char* sName) \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ { \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ _elementMap.push_back(wName); \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ return sName; \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ } \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ static int _ElementIdFromName(const wchar_t* name) \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ { \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ std::vector<std::wstring>::const_iterator iter = _elementMap.begin(); \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ int id = 1; \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ for (iter++; iter != _elementMap.end(); iter++) \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ { \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (0 == ::wcscmp(iter->c_str(), name)) \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ return id; \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ id++; \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ } \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ return 0; \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ } \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ELEM_MAP_ENTRY(0, Unknown)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#define ELEM_MAP_ENTRY(ID, NAME) \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ static const std::string s##NAME = _CreateMapEntry(L###NAME, #NAME); \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ static const int e##NAME = ID</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> END_NAMESPACE_MDFPARSER</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #endif // _SAX2ELEMENTHANDLER_H</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfParser/SAX2Parser.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfParser/SAX2Parser.cpp (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfParser/SAX2Parser.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -50,7 +50,6 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_Parser = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_HandlerStack = NULL;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_tagOpen = false;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_charsInTag = false;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> Flush();</FONT>
<BR><FONT SIZE=2 FACE="Arial"> Initialize();</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -95,7 +94,6 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_Parser->setFeature(XMLUni::fgXercesSchemaFullChecking, false);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_Parser->setFeature(XMLUni::fgSAX2CoreValidation, false); // true for validation</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_Parser->setContentHandler(this);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_prevOpenTag = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_strbuffer = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -341,7 +339,9 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> const Attributes& attributes)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> std::wstring str = X2W(localname);</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_openTag = str;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_strbuffer = L""; // discard any text between start tags</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_tagOpen = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // If the stack is empty, then check to see if we've encountered the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // start of one of the below definitions. Allocate space for the object</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // we will be creating, create the appropriate IO object, passing in the reference</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -386,30 +386,16 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> (m_HandlerStack->top())->StartElement(str.c_str(), m_HandlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_tagOpen = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_charsInTag = false;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> void SAX2Parser::characters(const XMLCh* const chars,</FONT>
<BR><FONT SIZE=2 FACE="Arial"> const unsigned int length)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_openTag.compare(m_prevOpenTag) != 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (!m_HandlerStack->empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">- {</FONT>
<BR><FONT SIZE=2 FACE="Arial">- if (m_charsInTag)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- (m_HandlerStack->top())->ElementChars(m_strbuffer.c_str());</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_strbuffer = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">- }</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_strbuffer += X2W(chars);</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_prevOpenTag = m_openTag;</FONT>
<BR><FONT SIZE=2 FACE="Arial">-</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // The character data may be split into multiple calls, so just store it for now.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Also, do not record text outside of start/end tags</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (m_tagOpen)</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_charsInTag = true;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_strbuffer += X2W(chars);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -418,9 +404,15 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> const XMLCh* const qname)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> m_tagOpen = false;</FONT>
<BR><FONT SIZE=2 FACE="Arial">- m_prevOpenTag = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial"> if (!m_HandlerStack->empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Now is the time to make the ElementChars() call.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ if (!m_strbuffer.empty())</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ (m_HandlerStack->top())->ElementChars(m_strbuffer.c_str());</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ m_strbuffer = L"";</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ }</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial"> (m_HandlerStack->top())->EndElement(X2W(localname), m_HandlerStack);</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial"> }</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/MdfRootObject.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/MdfRootObject.h (revision 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/MdfRootObject.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -0,0 +1,54 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Copyright (C) 2004-2006 Autodesk, Inc.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is free software; you can redistribute it and/or</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// modify it under the terms of version 2.1 of the GNU Lesser</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// General Public License as published by the Free Software Foundation.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is distributed in the hope that it will be useful,</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// but WITHOUT ANY WARRANTY; without even the implied warranty of</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Lesser General Public License for more details.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// You should have received a copy of the GNU Lesser General Public</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// License along with this library; if not, write to the Free Software</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#ifndef MDFROOTOBJECT_H_</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#define MDFROOTOBJECT_H_</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // DESCRIPTION:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Common base class for all MdfModel classes. Provides support for</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // round-tripping unknown XML data from/to future schema versions.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ {</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ public:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Destruction</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ virtual ~MdfRootObject() {}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Operations</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Property : UnknownXml</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ const MdfString& GetUnknownXml() const;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ void SetUnknownXml(const MdfString& pstrUnknownXml);</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ protected:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Construction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Default constructor is protected to make this class abstract.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MdfRootObject() {}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ private:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Data members</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ // Cache for parser, keeping unknown XML for round-tripping.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MdfString m_strUnknownXml;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ };</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+END_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#endif //MDFROOTOBJECT_H_</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Property changes on: E:\MgDev\OS\Common\MdfModel\MdfRootObject.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">___________________________________________________________________</FONT>
<BR><FONT SIZE=2 FACE="Arial">Name: svn:eol-style</FONT>
<BR><FONT SIZE=2 FACE="Arial"> + native</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Stroke.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Stroke.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Stroke.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -21,6 +21,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "SizeContexts.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "LengthConverter.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -30,7 +31,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // concrete classes are used by LineSymbolization and AreaSymbolization to</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // define the stylization for lines and polygon outlines.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API Stroke</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API Stroke : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/FeatureSource.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/FeatureSource.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/FeatureSource.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -22,6 +22,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "NameStringPair.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "Extension.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "SupplementalSpatialContextInfo.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -31,7 +32,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // needed to connect to a feature source. It also contains extensions that</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // contain joins for the feature classes in the feature source.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API FeatureSource</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API FeatureSource : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/GridColor.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/GridColor.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/GridColor.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,6 +20,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include <vector></FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "ChannelBand.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -29,7 +30,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // The grid color is used to stylize the pixel using the given or calculated</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // color.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API GridColor</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API GridColor : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> virtual ~GridColor();</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Fill.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Fill.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Fill.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -19,6 +19,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #define FILL_H_</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -27,7 +28,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Class Fill is an abstract base that defines how to color/paint</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // feature geometry.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //---------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API Fill</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API Fill : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/MdfRootObject.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/MdfRootObject.cpp (revision 0)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/MdfRootObject.cpp (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -0,0 +1,52 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Copyright (C) 2004-2006 Autodesk, Inc.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is free software; you can redistribute it and/or</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// modify it under the terms of version 2.1 of the GNU Lesser</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// General Public License as published by the Free Software Foundation.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// This library is distributed in the hope that it will be useful,</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// but WITHOUT ANY WARRANTY; without even the implied warranty of</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Lesser General Public License for more details.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// You should have received a copy of the GNU Lesser General Public</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// License along with this library; if not, write to the Free Software</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// DESCRIPTION:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// The MdfRootObject class implementation. MdfRootObject is an abstract class.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "stdafx.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "Base64.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+using namespace MDFMODEL_NAMESPACE;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// PURPOSE: Accessor for the UnknownXml property cached by an XML Parser.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// The Xml stream is then serialized when writing to a future</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// schema version - to support round-tripping.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// RETURNS:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+const MdfString& MdfRootObject::GetUnknownXml()const</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ return this->m_strUnknownXml;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// PURPOSE: Accessor to the UnknownXml property cached in this MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// by an Xml Parser. It is stored here in case it is needed</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// during serialization.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// PARAMETERS:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// Input:</FONT>
<BR><FONT SIZE=2 FACE="Arial">+// pstrUnknownXml - an Xml stream containing unknown elements.</FONT>
<BR><FONT SIZE=2 FACE="Arial">+//-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">+void MdfRootObject::SetUnknownXml(const MdfString& strUnknownXml)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+{</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ this->m_strUnknownXml = strUnknownXml;</FONT>
<BR><FONT SIZE=2 FACE="Arial">+}</FONT>
<BR><FONT SIZE=2 FACE="Arial">+</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Property changes on: E:\MgDev\OS\Common\MdfModel\MdfRootObject.cpp</FONT>
<BR><FONT SIZE=2 FACE="Arial">___________________________________________________________________</FONT>
<BR><FONT SIZE=2 FACE="Arial">Name: svn:eol-style</FONT>
<BR><FONT SIZE=2 FACE="Arial"> + native</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Extension.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Extension.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Extension.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -21,6 +21,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "AttributeRelate.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "CalculatedProperty.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -28,7 +29,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // DESCRIPTION:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Extension class defines the joins between feature classes</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API Extension</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API Extension : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Label.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Label.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Label.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,6 +20,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "TextSymbol.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -31,7 +32,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // text label. Other types of Symbols can be used by themselves, or in</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // combination, to create more intricate labels.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API Label</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API Label : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Orientation Enum is used to control the orientation of a Label with</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/NameStringPair.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/NameStringPair.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/NameStringPair.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,6 +20,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfOwnerCollection.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -28,7 +29,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Class NameStringPair represents a pair of strings. The first is the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // name and the second is the associated text.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // ------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API NameStringPair</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API NameStringPair : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Constructors,</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/LayerDefinition.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/LayerDefinition.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/LayerDefinition.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -19,6 +19,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #define LAYERDEFINITION_H_</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -31,7 +32,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // LayerDefinitions are encapsulated by MapLayer objects that make up a Map. They</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // are referenced primarily by their Uri.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API LayerDefinition</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API LayerDefinition : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/VectorScaleRange.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/VectorScaleRange.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/VectorScaleRange.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -21,6 +21,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfOwnerCollection.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "FeatureTypeStyle.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -33,7 +34,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // collection. Each will result in the drawing of some of the layer's geometric</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // primitives and/or their labels.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API VectorScaleRange</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API VectorScaleRange : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Represents the maximum value for the map scale.</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Symbolization.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Symbolization.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Symbolization.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -19,6 +19,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #define SYMBOLIZATION_H_</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -29,7 +30,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Class Fill is an abstract base that defines how to color/paint</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // feature geometry.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //---------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API Symbolization</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API Symbolization : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/MdfModel.vcproj</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/MdfModel.vcproj (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/MdfModel.vcproj (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -514,6 +514,14 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial"> <File</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ RelativePath=".\MdfRootObject.cpp"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <File</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ RelativePath=".\MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ ></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">+ <File</FONT>
<BR><FONT SIZE=2 FACE="Arial"> RelativePath=".\NameStringPair.cpp"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ></FONT>
<BR><FONT SIZE=2 FACE="Arial"> </File></FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/SupplementalSpatialContextInfo.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/SupplementalSpatialContextInfo.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/SupplementalSpatialContextInfo.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,6 +20,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfOwnerCollection.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -29,7 +30,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // for a spatial context when the coordinate system is missing from the</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // feature source.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // ------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API SupplementalSpatialContextInfo</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API SupplementalSpatialContextInfo : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //Constructors, </FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/GridScaleRange.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/GridScaleRange.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/GridScaleRange.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -23,6 +23,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "GridSurfaceStyle.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "GridColorStyle.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include <vector></FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -35,7 +36,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // collection. Each will result in the drawing of some of the layer's geometric</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // primitives and/or their labels.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API GridScaleRange</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API GridScaleRange : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Represents the maximum value for the map scale.</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/RelateProperty.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/RelateProperty.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/RelateProperty.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,6 +20,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfOwnerCollection.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> namespace MdfModel</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -29,7 +30,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // RelateProperty class defines the calculated properties from attributes</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // from the same feature class</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API RelateProperty</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API RelateProperty : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/ChannelBand.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/ChannelBand.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/ChannelBand.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -19,6 +19,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #define CHANNELBAND_H_</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include <vector></FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -27,7 +28,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Class ChannelBand is used to map the band's value to a valid color channel value.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // It defines how to scale numbers into a color channel.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-----------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API ChannelBand</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API ChannelBand : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> ChannelBand();</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/HillShade.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/HillShade.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/HillShade.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -19,6 +19,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #define HILLSHADE_H_</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include <vector></FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -27,7 +28,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Class HillShade is used to specify how to shade given a band and a light</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // source.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API HillShade</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API HillShade : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> HillShade();</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/AttributeRelate.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/AttributeRelate.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/AttributeRelate.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,6 +20,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "RelateProperty.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -28,7 +29,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // AttributeRelate class defines the attribute class in the target feature</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // source</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API AttributeRelate</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API AttributeRelate : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Symbol.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Symbol.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Symbol.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -21,6 +21,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "SizeContexts.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "LengthConverter.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -32,7 +33,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // point geometric primitives. Its use of expressions for its properties</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // allows it to support multivariate theming. Symbol is an abstract class.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API Symbol</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API Symbol : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/CalculatedProperty.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/CalculatedProperty.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/CalculatedProperty.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -20,6 +20,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfOwnerCollection.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -28,7 +29,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // CalculatedProperty class defines the calculated properties from attributes</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // from the same feature class</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API CalculatedProperty</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API CalculatedProperty : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Rule.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Rule.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Rule.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -21,6 +21,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfOwnerCollection.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "Label.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> namespace MdfParser</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -39,7 +40,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Filtering criteria takes the form of a tree that uses logical operators</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // to combine attribute-based and geometry-based filters.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API Rule</FONT>
<BR><FONT SIZE=2 FACE="Arial">+class MDFMODEL_API Rule : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> friend class MdfParser::IOAreaRule;</FONT>
<BR><FONT SIZE=2 FACE="Arial"> friend class MdfParser::IOLineRule;</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/FeatureTypeStyle.h</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/FeatureTypeStyle.h (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/FeatureTypeStyle.h (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -21,6 +21,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfModel.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "MdfOwnerCollection.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> #include "Rule.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial">+#include "MdfRootObject.h"</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial"> BEGIN_NAMESPACE_MDFMODEL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -35,7 +36,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // It is possible for FeatureTypeStyle's concrete classes to contain</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // only Labels.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> //-------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">- class MDFMODEL_API FeatureTypeStyle</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ class MDFMODEL_API FeatureTypeStyle : public MdfRootObject</FONT>
<BR><FONT SIZE=2 FACE="Arial"> {</FONT>
<BR><FONT SIZE=2 FACE="Arial"> public:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> // Construction, destruction, initialization.</FONT>
<BR><FONT SIZE=2 FACE="Arial">Index: E:/MgDev/OS/Common/MdfModel/Makefile.am</FONT>
<BR><FONT SIZE=2 FACE="Arial">===================================================================</FONT>
<BR><FONT SIZE=2 FACE="Arial">--- E:/MgDev/OS/Common/MdfModel/Makefile.am (revision 1037)</FONT>
<BR><FONT SIZE=2 FACE="Arial">+++ E:/MgDev/OS/Common/MdfModel/Makefile.am (revision 1038)</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -43,6 +43,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MapLayerGroupCommon.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MarkSymbol.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MdfModel.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MdfRootObject.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> NameStringPair.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> PointRule.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> PointSymbolization2D.cpp \</FONT>
<BR><FONT SIZE=2 FACE="Arial">@@ -104,6 +105,7 @@</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MarkSymbol.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MdfModel.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> MdfOwnerCollection.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial">+ MdfRootObject.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> NameStringPair.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> PointRule.h \</FONT>
<BR><FONT SIZE=2 FACE="Arial"> PointSymbolization2D.h \</FONT>
</P>
</BODY>
</HTML>