The difference between the xml structure for feeding components is not
same as flex and this is what I am confused.
Thank you for the detailed description Alex and Greg.
Serkan
29.04.2020 19:10 tarihinde Alex Harui yazdı:
Serkan,
An XMLList literal with one node is indistinguishable from an XML
literal. The JS runtime does not understand XMLList and XML so we
test by asking the browser to parse the literal. XMLList literals
with more than one child will not parse and that’s how we know it is
XMLList and not XML.
-Alex
*From: *serkan <[email protected]>
*Reply-To: *"[email protected]" <[email protected]>
*Date: *Wednesday, April 29, 2020 at 1:28 AM
*To: *"[email protected]" <[email protected]>, Greg Dove
<[email protected]>
*Subject: *Re: TypeError: Error #1088: The markup in the document
following the root element must be well-formed.
Hi Greg,
The exception is in try catch. So I can live with it :)
I am going to ignore it but for your note and to be clear that we are
at the same point, here are the two samples with exception and
without exception.
with exception :
<fx:Declarations>
<fx:XMLList id="menuDataXMLList">
<menuitem label="configFiles" id="configfiles">
<menuitem label="pinaraProperties"
id="pinaraProperties"/>
</menuitem>
<menuitem label="management" id="admin">
<menuitem label="suspendApp" id="suspendApp"/>
</menuitem>
</fx:XMLList>
</fx:Declarations>
without exception
<fx:Declarations>
<fx:XMLList id="menuDataXMLList">
<menuroot>
<menuitem label="configFiles" id="configfiles">
<menuitem label="pinaraProperties"
id="pinaraProperties"/>
</menuitem>
<menuitem label="management" id="admin">
<menuitem label="suspendApp" id="suspendApp"/>
</menuitem>
</menuroot>
</fx:XMLList>
</fx:Declarations>
Thanks,
Serkan
29.04.2020 07:33 tarihinde Greg Dove yazdı:
You might see this sort of error during first use of XML in some
browsers via the debug console. Royale's XML class uses some
native parsing support in the browser, but because different
browsers report parsing errors in different ways, an initial
parsing test is done with a known error to prepare for possible
future errors from user code. That test is dones inside a
try/catch block, but for some reason it still gets passed to the
console in certain browsers even though it has no adverse affect
on the running code. If this is the cause of what you are seeing
then you can safely ignore it (I can't be 100% sure, but it sort
of sounds like it might be that)
On Wed, Apr 29, 2020 at 4:26 PM serkan <[email protected]
<mailto:[email protected]>> wrote:
This error is thrown in only debugger not in console.
But this exception does not prevent the menu to be constructed.
I discovered that it is because of the inline xml which has no
root element. When i add root element the exception goes away.
But this time the menu is not constructed.
So I replaced the line
menuBarData.source = menuDataXMLList;
with the line
menuBarData.source = menuDataXMLList.children();
To make it work again.
I guess it should not be required to get the children of the
xml for setting the menu data.
Is there something to be fixed on XML parsing of menu component ?
Thanks,
Serkan
Source :
<?xml version="1.0" encoding="latin5" ?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7C5972bec79d5e484990b508d7ec17559b%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637237457281649276&sdata=aHdkvFImrlsbsI8Q50INppoAmAq%2F3fab5AK%2Bv4k2V7w%3D&reserved=0>
xmlns:s="library://ns.apache.org/royale/spark
<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fspark&data=02%7C01%7Caharui%40adobe.com%7C5972bec79d5e484990b508d7ec17559b%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637237457281649276&sdata=ImwUFkt5EuB%2FV5qeiWxMVXxkshzAntnjwFqZUgssl0M%3D&reserved=0>"
xmlns:mx="library://ns.apache.org/royale/mx
<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fmx&data=02%7C01%7Caharui%40adobe.com%7C5972bec79d5e484990b508d7ec17559b%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637237457281659269&sdata=qIpjOEE6ogzsHYN4j%2Bwlo8gwlP1OY2oQggUBatL3t0Y%3D&reserved=0>"
height="288" width="179"
>
<fx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.events.FlexEvent;
import mx.collections.XMLListCollection;
import mx.events.MenuEvent;
import mx.controls.Menu;
[Bindable]
public var menuBarData:XMLListCollection = new
XMLListCollection();
protected function
pinaraMenuBar_creationCompleteHandler(event:FlexEvent):void
{
var tmpXmlList:XMLListCollection = new
XMLListCollection();
menuBarData.source = menuDataXMLList;
menuBarData.refresh();
}
protected function
tlosMenuBar_itemClickHandler(event:MenuEvent):void {
}
]]>
</fx:Script>
<fx:Declarations>
<fx:XMLList id="menuDataXMLList">
<menuroot>
<menuitem label="configFiles" id="configfiles">
<menuitem label="pinaraProperties"
id="pinaraProperties"/>
</menuitem>
<menuitem label="management" id="admin">
<menuitem label="suspendApp" id="suspendApp"/>
</menuitem>
</menuroot>
</fx:XMLList>
</fx:Declarations>
<mx:MenuBar id="pinaraMenuBar" width="100%" color="#0D173C"
dataProvider="{menuBarData}"
fontFamily="Arial" fontWeight="bold" horizontalCenter="0"
itemClick="tlosMenuBar_itemClickHandler(event)"
labelField="@label"
creationComplete="pinaraMenuBar_creationCompleteHandler(event)"/>
</s:Application>