[mapguide-users] invalid XML document

Zac Spitzer zac.spitzer at gmail.com
Mon Jan 12 22:22:14 EST 2009


this looks wrong

<Url>concat(&apos;http://128.88.31.35:8008/mapguide/UPM/phpscripts/bom/activeWR.php?bl_id=&apos;,
"ID")</Url>

On Tue, Jan 13, 2009 at 2:16 PM, irwan <anakando at yahoo.com> wrote:
>
> does anybody here know what is my xml problem?
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <LayerDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="LayerDefinition-1.1.0.xsd" version="1.1.0">
>  <VectorLayerDefinition>
>
> <ResourceId>Library://UPM/Data/BUILD_BUILD_region.FeatureSource</ResourceId>
>  <FeatureName>Default:BUILD_BUILD_region</FeatureName>
>  <FeatureNameType>FeatureClass</FeatureNameType>
>  <PropertyMapping>
>   <Name>NAME</Name>
>   <Value>NAME</Value>
>  </PropertyMapping>
>  <Geometry>Geometry</Geometry>
>
> <Url>concat(&apos;http://128.88.31.35:8008/mapguide/UPM/phpscripts/bom/activeWR.php?bl_id=&apos;,
> "ID")</Url>
>  <VectorScaleRange>
>   <MaxScale>6958.1596415586</MaxScale>
>   <AreaTypeStyle>
>    <AreaRule>
>     <Filter>FeatId > 10</Filter>
>     <LegendLabel></LegendLabel>
>     <Label>
>      <Unit>Inches</Unit>
>      <SizeContext>DeviceUnits</SizeContext>
>      <SizeX>0.3</SizeX>
>      <SizeY>0.118110236220472</SizeY>
>      <Rotation>0.0</Rotation>
>      <Text>"NAME"</Text>
>      <FontName>Arial Black</FontName>
>      <ForegroundColor>H0H0H0H</ForegroundColor>
>      <BackgroundColor>HHHHHHH</BackgroundColor>
>      <BackgroundStyle>Ghosted</BackgroundStyle>
>      <HorizontalAlignment>&apos;Center&apos;</HorizontalAlignment>
>      <VerticalAlignment>Halfline</VerticalAlignment>
>      <Bold>true</Bold>
>     </Label>
>     <AreaSymbolization2D>
>      <Fill>
>       <FillPattern>Net_45</FillPattern>
>       <ForegroundColor>H0H0H0H</ForegroundColor>
>       <BackgroundColor>HHHHHHH</BackgroundColor>
>      </Fill>
>      <Stroke>
>       <LineStyle>Solid</LineStyle>
>       <Thickness>0.0</Thickness>
>       <Color>FF000000</Color>
>       <Unit>Centimeters</Unit>
>       <SizeContext>DeviceUnits</SizeContext>
>      </Stroke>
>     </AreaSymbolization2D>
>    </AreaRule>
>   </AreaTypeStyle>
>  </VectorScaleRange>
>  <VectorScaleRange>
>   <MinScale>6958.1596415586</MinScale>
>   <AreaTypeStyle>
>    <AreaRule>
>     <LegendLabel></LegendLabel>
>     <AreaSymbolization2D>
>      <Fill>
>       <FillPattern>Net_45</FillPattern>
>       <ForegroundColor>H0H0H0H</ForegroundColor>
>       <BackgroundColor>HHHHHHH</BackgroundColor>
>      </Fill>
>      <Stroke>
>       <LineStyle>Solid</LineStyle>
>       <Thickness>0</Thickness>
>       <Color>ff666666</Color>
>       <Unit>Inches</Unit>
>       <SizeContext>DeviceUnits</SizeContext>
>      </Stroke>
>     </AreaSymbolization2D>
>    </AreaRule>
>   </AreaTypeStyle>
>  </VectorScaleRange>
>  </VectorLayerDefinition>
> </LayerDefinition>
>
>  i create this xml from mapguide studio. i intend to create a new layer
> programatically using this xml file that calling from
> change_layers_via_dom.php code sample. what i do here is changed
> DOMDocument::Load to load my xml file and also change a node value that
> satisfy my query.
>
>    $domDocument = DOMDocument::load('RecentlyBuilt.LayerDefinition.xml');
>    if ($domDocument == NULL)
>    {
>        echo "The layer definition
>          'RecentlyBuilt.LayerDefinition' could not be
>          found.<BR>\n";
>        return;
>    }
>
>    // Change the filter
>    $xpath = new DOMXPath($domDocument);
>    $query = '//AreaRule/Filter';
>    // Get a list of all the <AreaRule><Filter> elements in the XML.
>    $nodes = $xpath->query($query);
>    // Find the correct node and change it
>    foreach ($nodes as $node )
>    {
>        if ($node->nodeValue == 'FeatId > 10')
>        {
>            $node->nodeValue = 'FeatId > 10';
>        }
>    }
>
>    // Change the legend label
>    $query = '//LegendLabel';
>    // Get a list of all the <LegendLabel> elements in the
>    // XML.
>    $nodes = $xpath->query($query);
>    // Find the correct node and change it
>    foreach ($nodes as $node )
>    {
>        if ($node->nodeValue == 'FeatId > 10')
>        {
>            $node->nodeValue = 'FeatId > 10';
>        }
>    }
>
>    // --------------------------------------------------//
>  // ...
>
>    // Add the layer to the map
>    $layerDefinition = $domDocument->saveXML();
>    $newLayer = add_layer_definition_to_map($layerDefinition,
> "RecentlyBuilt", "FeatId > 10", $sessionId, $resourceService, $map);
>    add_layer_to_group($newLayer, "Analysis", "Analysis", $map);
>
>    // --------------------------------------------------//
>    // Turn off the "Square Footage" themed layer (if it
>    // exists) so it does not hide this layer.
>    $layerCollection = $map->GetLayers();
>    if ($layerCollection->Contains("SquareFootage"))
>    {
>        $squareFootageLayer =
>          $layerCollection->GetItem("SquareFootage");
>        $squareFootageLayer->SetVisible(false);
>    }
>
>    // --------------------------------------------------//
>    // Turn on the visibility of this layer.
>    // (If the layer does not already exist in the map, it will be visible
> by default when it is added.
>    // But if the user has already run this script, he or she may have set
> the layer to be invisible.)
>    $layerCollection = $map->GetLayers();
>    if ($layerCollection->Contains("RecentlyBuilt"))
>    {
>        $recentlyBuiltLayer = $layerCollection->GetItem("RecentlyBuilt");
>        $recentlyBuiltLayer->SetVisible(true);
>    }
>
>
>  Once i ran the code, there is nothing happened. then i copy the link to new
> browser, but it show this error message
>
> ERROR: The new XML document is invalid.
>
> Can you tell me what is my problem?
> --
> View this message in context: http://n2.nabble.com/invalid-XML-document-tp2149327p2149327.html
> Sent from the MapGuide Users mailing list archive at Nabble.com.
>
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>



-- 
Zac Spitzer -
http://zacster.blogspot.com
+61 405 847 168


More information about the mapguide-users mailing list