I have an array structure that have to be converted to MXML. I know of PEAR XML_Serialize extension but it seems the output format it produces is a bit different.
PHP generated XML:
<zone columns="3">
<select column="1" />
<select column="4" />
</zone>
MXML format:
<mx:zone columns="3">
<mx:select column="1" />
<mx:select column="4" />
</mx:zone>
Is that "mx:" prefix required for all the tags? If yes, can I make the XML_Serialize
put it before each tag (without renaming my data structure fields to "mx:something")?
Here are my options for XML_Serialize
:
$aOptions = array('addDecl' => true, 'indent' => " ", 'rootName' => 'template',
'scalarAsAttributes' => true, 'mode' => 'simplexml');
You're missing the namespace declaration in your serializer. Add a namespace to your serializer like this:
$serializer->setOption('namespace', array('mx', 'http://ns.adobe.com/mxml/2009'));
You could also add it your $aOptions array:
$aOptions = array(
'addDecl' => true,
'indent' => " ",
'rootName' => 'template',
'scalarAsAttributes' => true,
'mode' => 'simplexml',
'namespace' =>array('mx', 'http://ns.adobe.com/mxml/2009')
);
In regard to whether the namespace is required - this really depends on what your XML declarations look like. If the default namespace is set to MXML already, then no - its not required.